Dialog
A modal dialog component for displaying content
A modal dialog component built with Ark UI. Use it for confirmations, forms, or any content that should focus the user and block interaction with the rest of the page.
import {
Dialog,
DialogTrigger,
DialogContent,
DialogHeader,
DialogTitle,
DialogDescription,
DialogFooter,
DialogClose,
} from "@/components/ui/dialog";
import { Button } from "@/components/ui/button";
export default function Example() {
return (
<Dialog>
<DialogTrigger asChild>
<Button>Open Dialog</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Are you sure?</DialogTitle>
<DialogDescription>
This action cannot be undone.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<DialogClose asChild>
<Button variant="outline">Cancel</Button>
</DialogClose>
<Button variant="destructive">Delete</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
}
View Code
Destructive actions
For irreversible actions use variant="destructive" on the primary button and a clear description
inside DialogDescription.
Installation
bash
liminal add dialog
Usage
import {
Dialog,
DialogTrigger,
DialogContent,
DialogHeader,
DialogTitle,
DialogDescription,
DialogFooter,
DialogClose,
} from "@/components/ui/dialog";
import { Button } from "@/components/ui/button";
export default function Example() {
return (
<Dialog>
<DialogTrigger asChild>
<Button>Open Dialog</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Are you sure?</DialogTitle>
<DialogDescription>
This action cannot be undone.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<DialogClose asChild>
<Button variant="outline">Cancel</Button>
</DialogClose>
<Button variant="destructive">Delete</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
}
View Code
Examples
Basic
The example above shows the typical structure: Dialog > DialogTrigger + DialogContent. Use DialogClose with asChild to close from a custom button.
API
| Prop | Type | Default | Description |
|---|---|---|---|
| open | boolean | uncontrolled | Allows controlling open/closed state manually. |
| onOpenChange | (details) => void | - | Callback fired when the dialog open state changes. |
| DialogClose asChild | boolean | false | Renders a custom button/link to close the dialog. |