modal
lyse/modalFreeComponent
lyse publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by lyse on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.getlyse.com/r/modal.jsonSource
1import * as React from "react"2import * as DialogPrimitive from "@radix-ui/react-dialog"3import { cva, type VariantProps } from "class-variance-authority"4import { X } from "lucide-react"56import { cn } from "@/lib/utils"7import "./modal.css"89/* ------------------------------------------------------------------ */10/* CVA */11/* ------------------------------------------------------------------ */1213const modalContentVariants = cva(14 "modal-content fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2 flex flex-col items-start animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",15 {16 variants: {17 size: {18 sm: "w-[20rem]",19 md: "w-[25rem]",20 lg: "w-[35rem]",21 },22 },23 defaultVariants: {24 size: "md",25 },26 }27)2829const modalIconVariants = cva(30 "modal-icon flex items-center justify-center shrink-0 size-[var(--layout-size-lg)] rounded-[var(--layout-radius-full)] [&_svg]:size-[var(--layout-size-xs)]",31 {32 variants: {33 variant: {34 brand: "modal-icon-brand",35 destructive: "modal-icon-destructive",36 success: "modal-icon-success",37 warning: "modal-icon-warning",38 },39 },40 defaultVariants: {41 variant: "brand",42 },43 }44)4546/* ------------------------------------------------------------------ */47/* Modal */48/* ------------------------------------------------------------------ */4950function Modal({51 ...props52}: React.ComponentProps<typeof DialogPrimitive.Root>) {53 return <DialogPrimitive.Root data-slot="modal" {...props} />54}5556/* ------------------------------------------------------------------ */57/* ModalTrigger */58/* ------------------------------------------------------------------ */5960function ModalTrigger({61 ...props62}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {63 return <DialogPrimitive.Trigger data-slot="modal-trigger" {...props} />64}6566/* ------------------------------------------------------------------ */67/* ModalOverlay */68/* ------------------------------------------------------------------ */6970function ModalOverlay({71 className,72 ...props73}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {74 return (75// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from lyse
All 33 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| action-cardaction-card | lyse | Components | Free | no deps · 2 files | |
| alertalert | lyse | Components | Free | 2 deps · 2 files | |
| alert-dialogalert-dialog | lyse | Components | Free | 2 deps · 2 files | |
| avataravatar | lyse | Components | Free | 3 deps · 2 files | |
| badgebadge | lyse | Components | Free | 1 dep · 2 files | |
| banner-infobanner-info | lyse | Components | Free | 2 deps · 2 files | |
| breadcrumbbreadcrumb | lyse | Components | Free | 2 deps · 2 files | |
| buttonbutton | lyse | Components | Free | 2 deps · 2 files |
