Alert Dialog
A confirmation dialog that focuses the least-destructive action and requires an explicit choice.
Group: Overlays · Import path: @orionshub/lucent/alert-dialog · Client component — ships a "use client" boundary.
Import
import { AlertDialog } from '@orionshub/lucent'
import '@orionshub/lucent/styles.css' // once, at your app rootExamples
Confirm action
Show source
export function AlertDialogBasic() {
return (
<AlertDialog.Root>
<AlertDialog.Trigger asChild><Button variant="outline">Delete…</Button></AlertDialog.Trigger>
<AlertDialog.Content>
<AlertDialog.Title>Delete item?</AlertDialog.Title>
<AlertDialog.Description>This action cannot be undone.</AlertDialog.Description>
<div style={{ display: 'flex', justifyContent: 'flex-end', gap: 8, marginBlockStart: 24 }}>
<AlertDialog.Cancel asChild><Button variant="ghost">Cancel</Button></AlertDialog.Cancel>
<AlertDialog.Action asChild><Button>Delete</Button></AlertDialog.Action>
</div>
</AlertDialog.Content>
</AlertDialog.Root>
)
}Props
AlertDialogContent
| Prop | Type | Default | Description |
|---|---|---|---|
overlayClassName | string | undefined | — |
AlertDialogTitle
This component forwards native element props. It exposes no additional public props, or its props are documented inline above.
AlertDialogDescription
This component forwards native element props. It exposes no additional public props, or its props are documented inline above.
Guidance
One-time CSS import
Import the compiled stylesheet once at your app root: import '@orionshub/lucent/styles.css'. Components ship stable class names and read design tokens from CSS custom properties — there is no style runtime. See CSS Import.
Transparency & solid mode
Every glass surface reads --lucent-glass-opacity (0.60–1.0). Dial it at runtime with setGlassOpacity(), or switch to setContrast('solid') for a fully opaque, high-contrast rendering. See Transparency & Solid Mode.
Portal theming
This component renders through a portal to document.body. Because theme tokens are scoped to :root, portalled content stays themed automatically — do not nest it inside a transformed/backdrop-filter ancestor if you portal it manually. See Portal Theming.
Reduced motion
Animations are CSS-only and disabled under @media (prefers-reduced-motion: reduce). See Reduced Motion.
RTL
Authored with CSS logical properties — set dir="rtl" on a parent (or the document) and layout mirrors with no JS. Toggle RTL from the glass-controls panel to preview. See RTL Support.
SSR / Next.js
Client component — ships a "use client" boundary. All components are safe to import in a Server Component tree; interactive ones carry their own "use client" boundary. See SSR & Next.js.