Dropdown Menu
muffled-ui-registry/dropdown-menuFreeComponent
Contextual menu on paper with hairline border, no shadow, opacity states.
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/dropdown-menu.jsonSource
1import { CheckIcon, ChevronRightIcon } from "lucide-react";2import { Menu as MenuPrimitive } from "@base-ui/react/menu";3import type * as React from "react";4import { cn, floatingSurfaceClasses } from "@/registry/lib/surface";5import { ThemedPortalShell } from "@/registry/lib/portal-container";67function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {8 return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />;9}1011function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {12 return (13 <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />14 );15}1617function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {18 return (19 <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />20 );21}2223function DropdownMenuContent({24 className,25 align = "start",26 alignOffset = 0,27 side = "bottom",28 sideOffset = 4,29 ...props30}: MenuPrimitive.Popup.Props &31 Pick<32 MenuPrimitive.Positioner.Props,33 "align" | "alignOffset" | "side" | "sideOffset"34 >) {35 return (36 <MenuPrimitive.Portal>37 <ThemedPortalShell>38 <MenuPrimitive.Positioner39 className="isolate z-50 outline-none"40 align={align}41 alignOffset={alignOffset}42 side={side}43 sideOffset={sideOffset}44 >45 <MenuPrimitive.Popup46 data-slot="dropdown-menu-content"47 className={cn(48 "z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto p-1 data-closed:overflow-hidden",49 floatingSurfaceClasses(),50 className,51 )}52 {...props}53 />54 </MenuPrimitive.Positioner>55 </ThemedPortalShell>56 </MenuPrimitive.Portal>57 );58}5960function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {61 return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;62}6364function DropdownMenuItem({65 className,66 inset,67 variant = "default",68 ...props69}: MenuPrimitive.Item.Props & {70 inset?: boolean;71 variant?: "default" | "destructive";72}) {73 return (74 <MenuPrimitive.Item75 data-slot="dropdown-menu-item"76 data-inset={inset}77 data-variant={variant}78 className={cn(79// … 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 |
