Dropdown Menu
basecn/dropdown-menuFreeComponent
Displays a menu to the user — such as a set of actions or functions — triggered by a button.
Live preview
live · rendered by the registry
Rendered by basecn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://basecn.dev/r/dropdown-menu.jsonSource
1import * as React from "react";2import { Menu as MenuPrimitive } from "@base-ui/react/menu";3import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";45import { cn } from "@/lib/utils";67function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {8 return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />;9}1011function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {12 return <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;13}1415function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {16 return <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;17}1819function DropdownMenuPositioner({20 sideOffset = 4,21 className,22 ...props23}: MenuPrimitive.Positioner.Props) {24 return (25 <MenuPrimitive.Portal>26 <MenuPrimitive.Positioner27 data-slot="dropdown-menu-positioner"28 sideOffset={sideOffset}29 className={cn("z-50", className)}30 {...props}31 />32 </MenuPrimitive.Portal>33 );34}3536function DropdownMenuContent({37 className,38 ...props39}: MenuPrimitive.Popup.Props) {40 return (41 <MenuPrimitive.Popup42 data-slot="dropdown-menu-content"43 className={cn(44 "bg-popover text-popover-foreground data-[open]:animate-in data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:fade-in-0 data-[closed]:zoom-out-95 data-[open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--available-height) min-w-[8rem] origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",45 className46 )}47 {...props}48 />49 );50}5152function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {53 return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;54}5556function DropdownMenuItem({57 className,58 inset,59 variant = "default",60 ...props61}: MenuPrimitive.Item.Props & {62 inset?: boolean;63 variant?: "default" | "destructive";64}) {65 return (66 <MenuPrimitive.Item67 data-slot="dropdown-menu-item"68 data-inset={inset}69 data-variant={variant}70 className={cn(71// … truncated
What it pulls in
npm packages
Files it writes
More from basecn
All 56 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | basecn | Components | Free | 2 deps | |
| Alertalert | basecn | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | basecn | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | basecn | Components | Free | no deps | |
| Autocompleteautocomplete | basecn | Components | Free | 2 deps | |
| Avataravatar | basecn | Components | Free | 1 dep | |
| Badgebadge | basecn | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | basecn | Components | Free | 2 deps |
