Dropdown Menu
8starlabs-ui/dropdown-menuFreeComponent
A Base UI dropdown menu component
Live preview
live · rendered by the registry
Rendered by 8starlabs-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.8starlabs.com/r/dropdown-menu.jsonSource
1"use client";23import * as React from "react";4import { Menu as DropdownMenuPrimitive } from "@base-ui/react/menu";5import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";67import { cn } from "@/lib/utils";89function DropdownMenu({ ...props }: DropdownMenuPrimitive.Root.Props) {10 return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;11}1213function DropdownMenuPortal({ ...props }: DropdownMenuPrimitive.Portal.Props) {14 return (15 <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />16 );17}1819function DropdownMenuTrigger({20 ...props21}: DropdownMenuPrimitive.Trigger.Props) {22 return (23 <DropdownMenuPrimitive.Trigger24 data-slot="dropdown-menu-trigger"25 {...props}26 />27 );28}2930function DropdownMenuContent({31 className,32 side,33 sideOffset = 4,34 align,35 alignOffset,36 ...props37}: DropdownMenuPrimitive.Popup.Props &38 Pick<39 DropdownMenuPrimitive.Positioner.Props,40 "side" | "sideOffset" | "align" | "alignOffset"41 >) {42 return (43 <DropdownMenuPrimitive.Portal>44 <DropdownMenuPrimitive.Positioner45 side={side}46 sideOffset={sideOffset}47 align={align}48 alignOffset={alignOffset}49 className="isolate z-50"50 >51 <DropdownMenuPrimitive.Popup52 data-slot="dropdown-menu-content"53 className={cn(54 "bg-popover text-popover-foreground 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 outline-none transition-[transform,scale,opacity] data-[starting-style]:scale-95 data-[starting-style]:opacity-0 data-[ending-style]:scale-95 data-[ending-style]:opacity-0",55 className56 )}57 {...props}58 />59 </DropdownMenuPrimitive.Positioner>60 </DropdownMenuPrimitive.Portal>61 );62}6364function DropdownMenuGroup({ ...props }: DropdownMenuPrimitive.Group.Props) {65 return (66 <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />67 );68}6970function DropdownMenuItem({71 className,72 inset,73 variant = "default",74 ...props75}: DropdownMenuPrimitive.Item.Props & {76 inset?: boolean;77 variant?: "default" | "destructive";78}) {79 return (80 <DropdownMenuPrimitive.Item81 data-slot="dropdown-menu-item"82 data-inset={inset}83 data-variant={variant}84 className={cn(85// … truncated
What it pulls in
npm packages
Files it writes
More from 8starlabs-ui
All 74 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Buttonbutton | 8starlabs-ui | Components | Free | 2 deps | |
| Collapsiblecollapsible | 8starlabs-ui | Components | Free | 1 dep | |
| Flip clockflip-clock | 8starlabs-ui | Components | Free | no deps | |
| Heatmapheatmap | 8starlabs-ui | Components | Free | no deps | |
| Inputinput | 8starlabs-ui | Components | Free | no deps | |
| JSON Viewerjson-viewer | 8starlabs-ui | Components | Free | 1 dep · 3 files | |
| Labellabel | 8starlabs-ui | Components | Free | no deps | |
| Marquee componentmarquee | 8starlabs-ui | Components | Free | no deps |
