Components/Modal / Dialog

Modal / Dialog

A window overlaid on primary content, rendering information and requiring user interaction.

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

PropTypeDefaultDescription
isOpenbooleanfalseWhether the modal is visible.
onClose() => voidundefinedCallback when modal requests to close.