Alert Dialog

A modal that interrupts the user to confirm a consequential action. Same modal depth as Dialog, but it must be dismissed with an explicit choice.

The high-stakes case — a destructive action you must confirm.

tsx
import { Button } from "@/registry/seam/ui/button"
import {
  AlertDialog,
  AlertDialogAction,
  AlertDialogCancel,
  AlertDialogContent,
  AlertDialogDescription,
  AlertDialogFooter,
  AlertDialogHeader,
  AlertDialogTitle,
  AlertDialogTrigger,
} from "@/registry/seam/ui/alert-dialog"

export default function AlertDialogDemo() {
  return (
    <AlertDialog>
      <AlertDialogTrigger
        render={<Button variant="destructive">Delete account</Button>}
      />
      <AlertDialogContent>
        <AlertDialogHeader>
          <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
          <AlertDialogDescription>
            This permanently deletes your account and all associated data.
          </AlertDialogDescription>
        </AlertDialogHeader>
        <AlertDialogFooter>
          <AlertDialogCancel render={<Button variant="ghost">Cancel</Button>} />
          <AlertDialogAction
            render={<Button variant="destructive">Delete</Button>}
          />
        </AlertDialogFooter>
      </AlertDialogContent>
    </AlertDialog>
  )
}
bunx --bun @seamui/cli@latest add alert-dialog

Notes

  • Unlike Dialog, backdrop click and Escape don't dismiss it — the user must pick AlertDialogCancel or AlertDialogAction.
  • Focus is trapped while open and restored on close.

Press feedback, reduced motion, and haptics follow the global policy — see Motion and Haptics.