Components

Modal

A dialog rendered on top of an overlay. Compound API with ModalTrigger, ModalContent, ModalOverlay, ModalHeader, ModalBody, ModalFooter, and ModalClose.

import { Modal, Button } from "@empreint/ui";
import { X } from "lucide-react";

<Modal>
	<ModalTrigger>
		<Button>Publish</Button>
	</ModalTrigger>
	<ModalOverlay />
	<ModalContent>
		<ModalHeader>
			Publish article
			<ModalClose>
				<Button variant="ghost" size="1" aria-label="Close">
					<X size={18} />
				</Button>
			</ModalClose>
		</ModalHeader>
		<ModalBody>Your article will be visible to everyone once published.</ModalBody>
		<ModalFooter>
			<ModalClose>
				<Button variant="secondary">Cancel</Button>
			</ModalClose>
			<ModalClose>
				<Button variant="primary">Publish</Button>
			</ModalClose>
		</ModalFooter>
	</ModalContent>
</Modal>

Props

Modal and its sub-components accept children and className. ModalTrigger and ModalClose accept a single child element (via Slot).

CSS Variables

Prop

Type