Dialog
muffled-ui-registry/dialogFreeComponent
Modal on paper with hairline border, ink scrim, no shadow, no backdrop-blur.
Live preview
live · rendered by the registry
Rendered by muffled-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.muffled.studio/r/dialog.jsonSource
1"use client"23import * as React from "react"4import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"5import { XIcon } from "lucide-react"67import { cn, modalSurfaceClasses } from "@/registry/lib/surface"8import { ThemedPortalShell } from "@/registry/lib/portal-container"9import { Button } from "@/registry/ui/button"1011function Dialog({ ...props }: DialogPrimitive.Root.Props) {12 return <DialogPrimitive.Root data-slot="dialog" {...props} />13}1415function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {16 return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />17}1819function DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {20 return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />21}2223function DialogClose({ ...props }: DialogPrimitive.Close.Props) {24 return <DialogPrimitive.Close data-slot="dialog-close" {...props} />25}2627function DialogOverlay({28 className,29 ...props30}: DialogPrimitive.Backdrop.Props) {31 return (32 <DialogPrimitive.Backdrop33 data-slot="dialog-overlay"34 className={cn(35 "fixed inset-0 z-50 bg-foreground/24 duration-[var(--d-drift)] ease-[var(--ease-drift)] data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",36 className37 )}38 {...props}39 />40 )41}4243function DialogContent({44 className,45 children,46 showCloseButton = true,47 ...props48}: DialogPrimitive.Popup.Props & {49 showCloseButton?: boolean50}) {51 return (52 <DialogPortal>53 <ThemedPortalShell>54 <DialogOverlay />55 <DialogPrimitive.Popup56 data-slot="dialog-content"57 className={cn(58 "fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 p-4 font-sans text-sm sm:max-w-sm",59 modalSurfaceClasses(),60 className61 )}62 {...props}63 >64 {children}65 {showCloseButton && (66 <DialogPrimitive.Close67 data-slot="dialog-close"68 render={69 <Button70 variant="ghost"71 className="absolute top-2 right-2"72 size="icon-sm"73 />74 }75 >76 <XIcon className="stroke-[1.5]" />77 <span className="sr-only">Close</span>78 </DialogPrimitive.Close>79 )}80 </DialogPrimitive.Popup>81 </ThemedPortalShell>82 </DialogPortal>83 )84}8586// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from muffled-ui-registry
All 55 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | muffled-ui-registry | Components | Free | 2 deps | |
| Alertalert | muffled-ui-registry | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | muffled-ui-registry | Components | Free | 1 dep | |
| Avataravatar | muffled-ui-registry | Components | Free | 1 dep | |
| Badgebadge | muffled-ui-registry | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | muffled-ui-registry | Components | Free | 2 deps | |
| Buttonbutton | muffled-ui-registry | Components | Free | 2 deps | |
| Button Groupbutton-group | muffled-ui-registry | Components | Free | 2 deps |
