"use client"
import { Button } from "@/components/ui/button"
import {
DropdownMenu,Installation
pnpm slabui add dropdown-menu
Usage
import { Button } from "@/components/ui/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline" />}>
Open
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuGroup>
<DropdownMenuLabel>My Account</DropdownMenuLabel>
<DropdownMenuItem>Profile</DropdownMenuItem>
<DropdownMenuItem>Billing</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>Team</DropdownMenuItem>
<DropdownMenuItem>Subscription</DropdownMenuItem>
</DropdownMenuGroup>
</DropdownMenuContent>
</DropdownMenu>Composition
Use the following composition to build a DropdownMenu:
DropdownMenu
├── DropdownMenuTrigger
└── DropdownMenuContent
├── DropdownMenuGroup
│ ├── DropdownMenuLabel
│ ├── DropdownMenuItem
│ └── DropdownMenuItem
├── DropdownMenuSeparator
├── DropdownMenuGroup
│ ├── DropdownMenuLabel
│ ├── DropdownMenuCheckboxItem
│ └── DropdownMenuCheckboxItem
├── DropdownMenuSeparator
├── DropdownMenuGroup
│ ├── DropdownMenuLabel
│ └── DropdownMenuRadioGroup
│ ├── DropdownMenuRadioItem
│ └── DropdownMenuRadioItem
└── DropdownMenuSub
├── DropdownMenuSubTrigger
└── DropdownMenuSubContent
└── DropdownMenuGroup
├── DropdownMenuLabel
├── DropdownMenuItem
└── DropdownMenuItemBasic
A basic dropdown menu with labels and separators.
"use client"
import { Button } from "@/components/ui/button"
import {
DropdownMenu,Submenu
Use DropdownMenuSub to nest secondary actions.
"use client"
import { Button } from "@/components/ui/button"
import {
DropdownMenu,Shortcuts
Add DropdownMenuShortcut to show keyboard hints.
"use client"
import { Button } from "@/components/ui/button"
import {
DropdownMenu,Icons
Combine icons with labels for quick scanning.
"use client"
import {
CreditCardIcon,
LogOutIcon,Checkboxes
Use DropdownMenuCheckboxItem for toggles.
"use client"
import * as React from "react"
import { Button } from "@/components/ui/button"Checkboxes Icons
Add icons to checkbox items.
"use client"
import { BellIcon, MailIcon, MessageSquareIcon } from "lucide-react"
import * as React from "react"
Radio Group
Use DropdownMenuRadioGroup for exclusive choices.
"use client"
import * as React from "react"
import { Button } from "@/components/ui/button"Radio Icons
Show radio options with icons.
"use client"
import { Building2Icon, CreditCardIcon, WalletIcon } from "lucide-react"
import * as React from "react"
Danger
Use variant="danger" for irreversible actions.
"use client"
import { PencilIcon, ShareIcon, TrashIcon } from "lucide-react"
import { Button } from "@/components/ui/button"Avatar
An account switcher dropdown triggered by an avatar.
"use client"
import {
BadgeCheckIcon,
BellIcon,Complex
A richer example combining groups, icons, and submenus.
"use client"
import {
BellIcon,
CreditCardIcon,API Reference
See the Base UI documentation for the full API reference.