Dropdown menu
Displays a menu to the user — such as a set of actions or functions — triggered by a button.
export default function DropdownMenuHero() { return ( <DropdownMenu> <DropdownMenuTrigger render={<Button variant="outline">Workspace</Button>} /> <DropdownMenuContent align="start"> <DropdownMenuGroup> <DropdownMenuLabel>Workspace</DropdownMenuLabel> <DropdownMenuItem> Dashboard <DropdownMenuShortcut>⌘D</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> Settings <DropdownMenuShortcut>⌘,</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem>Billing</DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuLabel>Team</DropdownMenuLabel> <DropdownMenuItem>Members</DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger>Invite</DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuItem>By email</DropdownMenuItem> <DropdownMenuItem>Via Slack</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem>Copy link</DropdownMenuItem> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> <DropdownMenuItem>Permissions</DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem>Switch workspace</DropdownMenuItem> <DropdownMenuItem variant="destructive"> Leave workspace <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> ); }
Installation
pnpm dlx shadcn@latest add "https://ora-ui.com/r/dropdown-menu.json"
Usage
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/registry/ui/dropdown-menu';
<DropdownMenu>
<DropdownMenuTrigger render={<button>Open</button>} />
<DropdownMenuContent>
<DropdownMenuGroup>
<DropdownMenuLabel>Section</DropdownMenuLabel>
<DropdownMenuItem>Item</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem>Another item</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>;Examples
Default
A dropdown menu with groups, labels, separators, a submenu, and keyboard shortcuts.
export default function DropdownMenuBasic() { return ( <DropdownMenu> <DropdownMenuTrigger render={<Button variant="outline">Open</Button>} /> <DropdownMenuContent className="w-40" align="start"> <DropdownMenuGroup> <DropdownMenuLabel>My Account</DropdownMenuLabel> <DropdownMenuItem> Profile <DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> Billing <DropdownMenuShortcut>⌘B</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> Settings <DropdownMenuShortcut>⌘S</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem>Team</DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuItem>Email</DropdownMenuItem> <DropdownMenuItem>Message</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem>More...</DropdownMenuItem> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> <DropdownMenuItem> New Team <DropdownMenuShortcut>⌘+T</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem>GitHub</DropdownMenuItem> <DropdownMenuItem>Support</DropdownMenuItem> <DropdownMenuItem disabled>API</DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem> Log out <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> ); }
Variant
The variant prop on DropdownMenuContent controls how focused items are highlighted.
export function DropdownMenuSoft() { return <EditMenu variant="soft" />; }
Theme
The theme prop applies a color scheme to the focused item highlight across all variants.
export function DropdownMenuGray() { return <EditMenu theme="gray" />; }
API Reference
DropdownMenuContent
| Prop | Type | Default |
|---|---|---|
variant | "soft" | "solid" | "soft" |
theme | "gray" | "accent" | "gray" |
DropdownMenuItem
| Prop | Type | Default |
|---|---|---|
variant | "default" | "destructive" | "default" |
For all other sub-components, see the Base UI Menu API Reference.