Destructive-action confirmation

A deliberate speed bump before something irreversible: an are-you-sure step, or typing the name of the thing to delete.

type DELETE to confirmare-you-sure stepare you sure popupconfirmation dialog before deletingmake them type the name to delete itstop them nuking the whole project by accidentdelete confirmation modalconfirm before it's gone

See it

Live demo coming soon

What it is

A deliberate speed bump in front of something you cannot take back. The friction is the feature: it converts a reflex into a decision. There is a ladder of it, and the rung should match the blast radius. Undo toast for anything reversible, a plain confirm dialog for small permanent things, a typed confirmation for big ones (GitHub makes you type the full repository name to delete a repo), and a password or 2FA re-prompt for account-level destruction.

Reach for it only when the action is genuinely irreversible or expensive to reverse. If you can implement undo instead, do that: undo is faster for the 99% of cases where the user meant it, and safer for the 1% where they did not.

Gotcha: confirming everything protects nothing. Dialogs on routine deletes train people to hit the primary button without reading, so by the time a real one appears it is already invisible. Two supporting details: label the button with the actual verb and object ('Delete 12 files'), never 'OK', and do not put initial focus on the destructive button, or Enter will do the thing you were trying to prevent.

Ask AI for it

Add a destructive-action confirmation to this delete flow. Open a modal that names exactly what will be destroyed and what it takes with it, require the user to type the resource's exact name before the confirm button enables, and label that button with the verb and object ('Delete project acme-web') styled as the danger action. Put initial focus in the text field, not the button, allow Esc and Cancel to back out, and state plainly that the action cannot be undone.

You might have meant

undoable actionescape hatchguardrails constrained inputerror preventionnudges and friction