Back to compare picker

Destructive action confirmation vs Confirmation dialog vs Undo vs Warning text

Use destructive action confirmation for a named destructive commit with loss inventory and safe cancellation; use confirmation dialog for other high-consequence decisions, undo for recoverable routine actions, and warning text for consequence copy before the user starts the action.

Learn the decision

Match the interaction to the person's task

Use destructive action confirmation for a named destructive commit with loss inventory and safe cancellation; use confirmation dialog for other high-consequence decisions, undo for recoverable routine actions, and warning text for consequence copy before the user starts the action.

Destructive action confirmation

Use it when: A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.

Make this state clear: Review state that names the destructive verb, target object, and affected scope.

Observe the result: A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.

Study the full pattern →

Confirmation dialog

Use it when: The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Make this state clear: Pre-action state with an explicit consequential trigger.

Observe the result: Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.

Study the full pattern →

Undo

Use it when: The action is common and mistakes are likely.

Make this state clear: Normal state before the user action.

Observe the result: Undo restores the deleted task to the list and reports Quarterly report restored.

Study the full pattern →

Warning text

Use it when: A user must understand a serious consequence before taking or skipping an action.

Make this state clear: Before-action warning state placed immediately before the related control or declaration.

Observe the result: Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.

Study the full pattern →

Practice the judgment: Imagine this situation: A destructive confirmation appears for every archive or dismiss action, making users click through automatically when a real deletion appears. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Destructive action confirmationConfirmation dialogUndoWarning text
UI or UX UI + UX - Final destructive commit reviewUI + UX - Consequential alert decisionUX - Post-action recovery behaviorUI + UX - Severe-consequence warning copy before an action
UI guidance Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.Render warning text as a short high-emphasis statement with a warning icon, visible or hidden warning label, and explicit consequence copy placed before the relevant action, declaration, or instruction.
UX guidance Make the safe path explicit and easy, keep the destructive action unavailable until required review is satisfied, and report whether the object was kept, blocked, or permanently committed.Help the person reach a clear task outcome.Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.Use warning text when users must understand a serious consequence before acting or failing to act, such as a fine, loss of access, permanent deletion, eligibility impact, or legal responsibility.
Good UI Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.Before Submit declaration, a warning with an exclamation icon says the user may be fined if they provide false information.
Bad UI A soft archive action opens the same severe deletion confirmation used for permanent account closure.The red destructive action is enabled immediately and sits where users expect the routine primary button.Undo action disappears before users can activate it.A red sentence says Important below the submit button after the user has already acted.
Good UX A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.Undo restores the deleted task to the list and reports Quarterly report restored.Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.
Bad UX A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.The UI promises undo for a side effect that has already notified external recipients.Users incur a penalty because the warning looked like ordinary hint text.
Best fit A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.The action is common and mistakes are likely.A user must understand a serious consequence before taking or skipping an action.
Avoid when The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.The action is routine and easily reversible.Recovery would restore only part of the user's lost work.The message is a dynamic task status that must be announced when it appears.
Required state Review state that names the destructive verb, target object, and affected scope.Pre-action state with an explicit consequential trigger.Normal state before the user action.Before-action warning state placed immediately before the related control or declaration.
Accessibility burden Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.Make the undo control keyboard reachable and programmatically identifiable.Keep the warning in reading order before the control, declaration, or instruction it qualifies.
Common misuse Labelling the destructive commit OK, Yes, Continue, or Confirm.Asking users to confirm every routine action until they stop reading.Restoring only part of the prior state while implying full recovery.Using warning text for routine hints, explanations, or mild reminders.

Destructive action confirmation

UI or UX
UI + UX - Final destructive commit review
UI guidance
Render a destructive confirmation after the user invokes a destructive command, with a title and final action button that repeat the destructive verb and target, such as Delete workspace or Cancel subscription.
UX guidance
Make the safe path explicit and easy, keep the destructive action unavailable until required review is satisfied, and report whether the object was kept, blocked, or permanently committed.
Good UI
Delete Payments project? lists 4 dashboards, 12 saved views, 3 webhooks, and 8 shared links, offers Keep project, and labels the danger action Delete Payments project.
Bad UI
A soft archive action opens the same severe deletion confirmation used for permanent account closure.
Good UX
A user opens Delete workspace, reviews the object count and webhooks, cancels, and returns to the same workspace with nothing changed.
Bad UX
A user confirms deletion because OK looks like the primary next step, then discovers shared links and child reports were lost.
Best fit
A user has initiated a destructive command that can permanently remove, revoke, reset, deactivate, or cancel something valuable.
Avoid when
The action is a routine reversible archive, hide, dismiss, move, reorder, or trash move.
Required state
Review state that names the destructive verb, target object, and affected scope.
Accessibility burden
Use alertdialog semantics or platform equivalent when the destructive decision requires an immediate response.
Common misuse
Labelling the destructive commit OK, Yes, Continue, or Confirm.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Help the person reach a clear task outcome.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.

Undo

UI or UX
UX - Post-action recovery behavior
UI guidance
Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance
Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI
Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI
Undo action disappears before users can activate it.
Good UX
Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX
The UI promises undo for a side effect that has already notified external recipients.
Best fit
The action is common and mistakes are likely.
Avoid when
Recovery would restore only part of the user's lost work.
Required state
Normal state before the user action.
Accessibility burden
Make the undo control keyboard reachable and programmatically identifiable.
Common misuse
Restoring only part of the prior state while implying full recovery.

Warning text

UI or UX
UI + UX - Severe-consequence warning copy before an action
UI guidance
Render warning text as a short high-emphasis statement with a warning icon, visible or hidden warning label, and explicit consequence copy placed before the relevant action, declaration, or instruction.
UX guidance
Use warning text when users must understand a serious consequence before acting or failing to act, such as a fine, loss of access, permanent deletion, eligibility impact, or legal responsibility.
Good UI
Before Submit declaration, a warning with an exclamation icon says the user may be fined if they provide false information.
Bad UI
A red sentence says Important below the submit button after the user has already acted.
Good UX
Users see the fine or eligibility consequence before checking the declaration and can pause to verify their answer.
Bad UX
Users incur a penalty because the warning looked like ordinary hint text.
Best fit
A user must understand a serious consequence before taking or skipping an action.
Avoid when
The message is a dynamic task status that must be announced when it appears.
Required state
Before-action warning state placed immediately before the related control or declaration.
Accessibility burden
Keep the warning in reading order before the control, declaration, or instruction it qualifies.
Common misuse
Using warning text for routine hints, explanations, or mild reminders.
Decision rules
  • Choose destructive action confirmation when the user has invoked Delete, Remove, Cancel subscription, Deactivate account, Reset keys, or a similar destructive command and the UI must stop final commitment until the object, scope, and loss are reviewed.
  • Choose confirmation dialog when the high-consequence decision is not primarily destructive, such as sending an irreversible invitation, changing a permission, making a purchase, or exposing private data.
  • Choose undo when the action can complete immediately and the exact prior object, membership, order, permissions, and visible counts can be restored before external effects occur.
  • Choose warning text when the user has not started the destructive command yet and only needs a concise severe-consequence warning near a button, declaration, or instruction.
  • A destructive action confirmation must name the destructive verb and target in the title and final button, such as Delete project or Cancel subscription, rather than using OK, Yes, Continue, or Confirm.
  • Use a loss inventory when deletion affects child records, shared links, members, automations, billing, integrations, audit logs, or external recipients.
  • Do not use destructive action confirmation for soft delete to trash when restore is prominent enough; use undo or restore-from-trash behavior instead.
  • Escalate from ordinary destructive confirmation to typed confirmation only for severe broad scope, production data, account closure, workspace deletion, or security-critical destruction.
Inspect live examples
Failure modes
  • A delete command opens a vague Are you sure prompt with OK, so users cannot tell which object or data will be lost.
  • A destructive confirmation appears for every archive or dismiss action, making users click through automatically when a real deletion appears.
  • A reversible trash move is blocked by a severe modal instead of offering restore, slowing routine cleanup without adding safety.
  • Warning copy sits beside the Delete button but no final commit review appears before permanent deletion.
  • The dialog lists a count but omits child objects, shared links, automations, or billing effects that would have changed the user's decision.
  • The destructive button is enabled before required acknowledgement or scope review is complete.

Saved items