Installation
Install the dependencies:
npm install @base-ui/reactCopy the source into components/ui/dropdown-menu.tsx. Registry items that depend on it install it automatically.
Usage
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Button } from "@/components/ui/button";
export function Example() {
return (
<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline">Open</Button>} />
<DropdownMenuContent>
<DropdownMenuItem>Profile</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>Sign out</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
}Examples
Checkboxes and submenus
DropdownMenuCheckboxItem holds a checked state, DropdownMenuLabel titles a group, and DropdownMenuSub nests a second level.
API Reference
The parts wrap Base UI's Menu primitives and accept their props.
DropdownMenu
DropdownMenuPropsopen?: booleanControlled open state.
onOpenChange?: (open: boolean) => voidCalled when the open state changes.
defaultOpen: boolean= falseUncontrolled initial open state.
DropdownMenuContent
DropdownMenuContentPropsalign: "start" | "center" | "end"= "center"Alignment against the trigger.
sideOffset: number= 4Distance from the trigger in pixels.
DropdownMenuItem
DropdownMenuItemPropsonSelect?: () => voidCalled when the item is selected.
disabled: boolean= falsePrevents selection and mutes the item.