Modal / Dialog
A window overlaid on primary content, rendering information and requiring user interaction.
$ npx ruma-ui add dialog
Installation
npx ruma-ui add dialog
Usage
import { Modal, ModalHeader, ModalTitle, ModalDescription, ModalContent, ModalFooter } from "@/components/ui/modal";
import { Button } from "@/components/ui/button";
import { useState } from "react";
export default function ModalDemo() {
const [open, setOpen] = useState(false);
return (
<div>
<Button onClick={() => setOpen(true)}>Open Dialog</Button>
<Modal isOpen={open} onClose={() => setOpen(false)}>
<ModalHeader>
<ModalTitle>Edit Profile</ModalTitle>
<ModalDescription>Make changes to your profile here.</ModalDescription>
</ModalHeader>
<ModalContent>
<p className="text-sm text-zinc-300">Form fields go here...</p>
</ModalContent>
<ModalFooter>
<Button variant="outline" onClick={() => setOpen(false)}>Cancel</Button>
<Button onClick={() => setOpen(false)}>Save changes</Button>
</ModalFooter>
</Modal>
</div>
);
}API Reference
| Prop | Type | Default | Description |
|---|---|---|---|
| isOpen | boolean | false | Whether the modal is visible. |
| onClose | () => void | undefined | Callback when modal requests to close. |