Components
Menu
A list of actions opened from a trigger.
Default
<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline" />}>Options</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuGroup>
<DropdownMenuLabel>hello-world.md</DropdownMenuLabel>
<DropdownMenuItem><PenLine /> Rename</DropdownMenuItem>
<DropdownMenuCheckboxItem checked>Show word count</DropdownMenuCheckboxItem>
<DropdownMenuSeparator />
<DropdownMenuItem variant="destructive">
<Trash2 /> Delete
<DropdownMenuShortcut>⌘⌫</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> Chevron trigger & avatar trigger
{/* chevron trigger, menu aligned to the end */}
<DropdownMenuTrigger render={<Button variant="secondary" />}>Options<ChevronDown /></DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuSub>…</DropdownMenuSub>
<DropdownMenuCheckboxItem checked><Star /> Starred</DropdownMenuCheckboxItem>
<DropdownMenuRadioGroup value={view} onValueChange={setView}>
<DropdownMenuRadioItem value="grid"><LayoutGrid /> Grid</DropdownMenuRadioItem>
</DropdownMenuRadioGroup>
<DropdownMenuItem render={<a href="/design" />}>Open in browser</DropdownMenuItem>
<DropdownMenuItem disabled>Publish (Studio only)<DropdownMenuShortcut><Lock /></DropdownMenuShortcut></DropdownMenuItem>
</DropdownMenuContent>
{/* custom trigger: an avatar */}
<DropdownMenuTrigger render={<button className="rounded-full" />}><Avatar>…</Avatar></DropdownMenuTrigger>
The first trigger carries a chevron (With chevron) and its menu is a complex
composition (Complex): a submenu (Submenu), a checkbox item with an icon
(Checkboxes Icons), a radio group whose items carry icons (Radio Group, Radio
Icons), a link item (Link items), and a disabled item with a lock suffix
(Disabled items, Locked items). align="end" sets
its placement (Menu position). The second trigger is an Avatar (Custom trigger, Avatar).
Markdown for agents: /design/menu.md · spec: /design.md