Docs
Dropdown Menu
Dropdown Menu
Displays a menu to the user — such as a set of actions or functions — triggered by a button.
Built on top of Menu
component.
import * as React from "react";
import { css } from "@pigment-css/react";
import {
ChevronRightIcon,
LogOutIcon,
MailIcon,
MessageSquareIcon,
PlusCircleIcon,
SettingsIcon,
UserIcon,
UserPlusIcon,
UsersIcon,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuPortal,
DropdownMenuPositioner,
DropdownMenuSeparator,
DropdownMenuShortcut,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
export function DropdownMenuExample(): React.JSX.Element {
return (
<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline">Open</Button>} />
<DropdownMenuPortal>
<DropdownMenuPositioner align="center" side="bottom" sideOffset={4}>
<DropdownMenuContent className={css({ width: "14rem" })}>
<DropdownMenuLabel>My Account</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
<UserIcon />
<span>Profile</span>
<DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
<SettingsIcon />
<span>Settings</span>
<DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
<UsersIcon />
<span>Team</span>
</DropdownMenuItem>
<DropdownMenu>
<DropdownMenuTrigger
render={
<DropdownMenuItem>
<UserPlusIcon />
<span>Invite users</span>
<ChevronRightIcon className={css({ marginInlineStart: "auto" })} />
</DropdownMenuItem>
}
/>
<DropdownMenuPositioner align="start" side="right">
<DropdownMenuContent>
<DropdownMenuItem>
<MailIcon />
<span>Email</span>
</DropdownMenuItem>
<DropdownMenuItem>
<MessageSquareIcon />
<span>Message</span>
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>
<PlusCircleIcon />
<span>More</span>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenuPositioner>
</DropdownMenu>
<DropdownMenuItem disabled>
<PlusCircleIcon />
<span>New team</span>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
<LogOutIcon />
<span>Log out</span>
<DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
</DropdownMenuContent>
</DropdownMenuPositioner>
</DropdownMenuPortal>
</DropdownMenu>
);
}
Installation
npx lotru@latest add ui/dropdown-menu
Usage
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuPositioner,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
<DropdownMenu>
<DropdownMenuTrigger>Open</DropdownMenuTrigger>
<DropdownMenuPositioner>
<DropdownMenuContent>
<DropdownMenuLabel>My Account</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuItem>Profile</DropdownMenuItem>
<DropdownMenuItem>Billing</DropdownMenuItem>
<DropdownMenuItem>Team</DropdownMenuItem>
<DropdownMenuItem>Subscription</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenuPositioner>
</DropdownMenu>
On this page