Modal

A modal displays content in a layer that overlays the page content.

<Dialog>
  <Button>Open modal</Button>
  <Modal>
    <DialogContent>modal content</DialogContent>
  </Modal>
</Dialog>

Installation

npx shadcn@latest add @dotui/modal

Usage

Use modals to display content in a layer that overlays the page content.

import { Button } from "@/components/ui/button";
import { Dialog, DialogContent } from "@/components/ui/dialog";
import { Modal } from "@/components/ui/modal";
<Dialog>
  <Button>Open Modal</Button>
  <Modal>
    <DialogContent>Modal content</DialogContent>
  </Modal>
</Dialog>

Playground

Use the controls below to experiment with different modal props and see the live preview and code update.

<Dialog>
  <Button>Open Modal</Button>
  <Modal isDismissable>
    <DialogContent>
      <DialogHeader>
        <DialogHeading>Modal Title</DialogHeading>
        <DialogDescription>This is a modal description.</DialogDescription>
      </DialogHeader>
      <DialogBody>
        <p>Modal content goes here.</p>
      </DialogBody>
      <DialogFooter>
        <Button slot="close">Cancel</Button>
        <Button slot="close" variant="primary">Confirm</Button>
      </DialogFooter>
    </DialogContent>
  </Modal>
</Dialog>

API Reference

A modal is an overlay element which blocks interaction with elements outside it.

PropType
boolean
boolean
Element
boolean
boolean
ReactNode | function
((element: Element) => boolean)

Last updated on 1/13/2026

Built with passion by @mehdibha.