Components
Dialog
Modal dialog with animated enter/exit transitions and focus management.
Dialog
A modal dialog overlay with spring-based enter/exit animations and automatic focus management. Built on Base UI Dialog with Motion animations.
Import
import { Dialog, DialogTrigger, DialogPortal, DialogBackdrop, DialogPopup, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '@mks2508/mks-ui/react';Basic Usage
<Dialog>
<DialogTrigger>
<Button>Open Dialog</Button>
</DialogTrigger>
<DialogPortal>
<DialogBackdrop />
<DialogPopup>
<DialogHeader>
<DialogTitle>Are you sure?</DialogTitle>
<DialogDescription>
This action cannot be undone.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<DialogClose>
<Button variant="outline">Cancel</Button>
</DialogClose>
<Button>Confirm</Button>
</DialogFooter>
</DialogPopup>
</DialogPortal>
</Dialog>Animation Direction
The DialogPopup accepts a from prop to control the 3D flip animation direction:
<DialogPopup from="top"> {/* Flips in from top */}
<DialogPopup from="bottom"> {/* Flips in from bottom */}
<DialogPopup from="left"> {/* Flips in from left */}
<DialogPopup from="right"> {/* Flips in from right */}Controlled
const [open, setOpen] = useState(false);
<Dialog open={open} onOpenChange={setOpen}>
<DialogPortal>
<DialogBackdrop />
<DialogPopup>
<DialogHeader>
<DialogTitle>Controlled Dialog</DialogTitle>
</DialogHeader>
<p>This dialog is controlled externally.</p>
</DialogPopup>
</DialogPortal>
</Dialog>
<Button onClick={() => setOpen(true)}>Open</Button>API Reference
| Component | Key Props | Description |
|---|---|---|
Dialog | open, defaultOpen, onOpenChange | Root provider |
DialogTrigger | asChild | Trigger element |
DialogPortal | — | Portal with AnimatePresence |
DialogBackdrop | transition, slots | Animated backdrop overlay |
DialogPopup | from, transition, slots | Modal content with flip animation |
DialogHeader | slots | Header layout |
DialogTitle | slots | Title text |
DialogDescription | slots | Description text |
DialogFooter | slots | Footer with actions |
DialogClose | slots | Close trigger |