Dropdown Menu
Displays a menu to the user — such as a set of actions or functions — triggered by a button.
The Dropdown Menu component is built on top of Kobalte Dropdown Menu, which provides accessible menu, keyboard, and focus behavior.
import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuDemo() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent class="w-40"> <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> );}Installation
Usage
import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";<DropdownMenu> <DropdownMenuTrigger as={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>See the Kobalte Dropdown Menu documentation for primitive-level options, accessibility, and keyboard behavior.
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.
import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuBasic() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuGroup> <DropdownMenuLabel>My Account</DropdownMenuLabel> <DropdownMenuItem>Profile</DropdownMenuItem> <DropdownMenuItem>Billing</DropdownMenuItem> <DropdownMenuItem>Settings</DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuItem>GitHub</DropdownMenuItem> <DropdownMenuItem>Support</DropdownMenuItem> <DropdownMenuItem disabled>API</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> );}Submenu
Use DropdownMenuSub to nest secondary actions.
import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuSubmenu() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuGroup> <DropdownMenuItem>Team</DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuItem>Email</DropdownMenuItem> <DropdownMenuItem>Message</DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger>More options</DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuItem>Calendly</DropdownMenuItem> <DropdownMenuItem>Slack</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem>Webhook</DropdownMenuItem> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> <DropdownMenuSeparator /> <DropdownMenuItem>Advanced...</DropdownMenuItem> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> <DropdownMenuItem> New Team<DropdownMenuShortcut>⌘+T</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Shortcuts
Add DropdownMenuShortcut to show keyboard hints.
import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuShortcuts() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent> <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 /> <DropdownMenuItem> Log out<DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> );}Icons
Combine icons with labels for quick scanning.
import { CreditCardIcon, LogOutIcon, SettingsIcon, UserIcon } from "lucide-solid";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuIcons() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuItem> <UserIcon /> Profile </DropdownMenuItem> <DropdownMenuItem> <CreditCardIcon /> Billing </DropdownMenuItem> <DropdownMenuItem> <SettingsIcon /> Settings </DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem variant="destructive"> <LogOutIcon /> Log out </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> );}Checkboxes
Use DropdownMenuCheckboxItem for toggles.
import { createSignal } from "solid-js";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuCheckboxes() { const [showStatusBar, setShowStatusBar] = createSignal(true); const [showActivityBar, setShowActivityBar] = createSignal(false); const [showPanel, setShowPanel] = createSignal(false); return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent class="w-40"> <DropdownMenuGroup> <DropdownMenuLabel>Appearance</DropdownMenuLabel> <DropdownMenuCheckboxItem checked={showStatusBar()} onChange={setShowStatusBar}> Status Bar </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={showActivityBar()} onChange={setShowActivityBar} disabled > Activity Bar </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={showPanel()} onChange={setShowPanel}> Panel </DropdownMenuCheckboxItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Checkboxes Icons
Add icons to checkbox items.
import { BellIcon, MailIcon, MessageSquareIcon } from "lucide-solid";import { createSignal } from "solid-js";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuCheckboxesIcons() { const [notifications, setNotifications] = createSignal({ email: true, sms: false, push: true }); return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Notifications </DropdownMenuTrigger> <DropdownMenuContent class="w-48"> <DropdownMenuGroup> <DropdownMenuLabel>Notification Preferences</DropdownMenuLabel> <DropdownMenuCheckboxItem checked={notifications().email} onChange={(checked) => setNotifications({ ...notifications(), email: checked === true }) } > <MailIcon /> Email notifications </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={notifications().sms} onChange={(checked) => setNotifications({ ...notifications(), sms: checked === true })} > <MessageSquareIcon /> SMS notifications </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={notifications().push} onChange={(checked) => setNotifications({ ...notifications(), push: checked === true })} > <BellIcon /> Push notifications </DropdownMenuCheckboxItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Radio Group
Use DropdownMenuRadioGroup for exclusive choices.
import { createSignal } from "solid-js";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuRadioGroupDemo() { const [position, setPosition] = createSignal("bottom"); return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Open </DropdownMenuTrigger> <DropdownMenuContent class="w-32"> <DropdownMenuGroup> <DropdownMenuLabel>Panel Position</DropdownMenuLabel> <DropdownMenuRadioGroup value={position()} onChange={setPosition}> <DropdownMenuRadioItem value="top">Top</DropdownMenuRadioItem> <DropdownMenuRadioItem value="bottom">Bottom</DropdownMenuRadioItem> <DropdownMenuRadioItem value="right">Right</DropdownMenuRadioItem> </DropdownMenuRadioGroup> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Radio Icons
Show radio options with icons.
import { Building2Icon, CreditCardIcon, WalletIcon } from "lucide-solid";import { createSignal } from "solid-js";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuRadioIcons() { const [paymentMethod, setPaymentMethod] = createSignal("card"); return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Payment Method </DropdownMenuTrigger> <DropdownMenuContent class="min-w-56"> <DropdownMenuGroup> <DropdownMenuLabel>Select Payment Method</DropdownMenuLabel> <DropdownMenuRadioGroup value={paymentMethod()} onChange={setPaymentMethod}> <DropdownMenuRadioItem value="card"> <CreditCardIcon /> Credit Card </DropdownMenuRadioItem> <DropdownMenuRadioItem value="paypal"> <WalletIcon /> PayPal </DropdownMenuRadioItem> <DropdownMenuRadioItem value="bank"> <Building2Icon /> Bank Transfer </DropdownMenuRadioItem> </DropdownMenuRadioGroup> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Destructive
Use variant="destructive" for irreversible actions.
import { PencilIcon, ShareIcon, TrashIcon } from "lucide-solid";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuDestructive() { return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Actions </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuGroup> <DropdownMenuItem> <PencilIcon /> Edit </DropdownMenuItem> <DropdownMenuItem> <ShareIcon /> Share </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem variant="destructive"> <TrashIcon /> Delete </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}Avatar
An account switcher dropdown triggered by an avatar.
import { BadgeCheckIcon, BellIcon, CreditCardIcon, LogOutIcon } from "lucide-solid";import { Avatar, AvatarFallback, AvatarImage } from "~/components/ui/avatar";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuAvatar() { return ( <DropdownMenu placement="bottom-end"> <DropdownMenuTrigger as={Button} variant="ghost" size="icon" class="rounded-full"> <Avatar> <AvatarImage src="https://github.com/shadcn.png" alt="shadcn" /> <AvatarFallback>LR</AvatarFallback> </Avatar> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuGroup> <DropdownMenuItem> <BadgeCheckIcon /> Account </DropdownMenuItem> <DropdownMenuItem> <CreditCardIcon /> Billing </DropdownMenuItem> <DropdownMenuItem> <BellIcon /> Notifications </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuItem> <LogOutIcon /> Sign Out </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> );}Complex
A richer example combining groups, icons, and submenus.
import { BellIcon, CreditCardIcon, DownloadIcon, EyeIcon, FileCodeIcon, FileIcon, FileTextIcon, FolderIcon, FolderOpenIcon, FolderSearchIcon, HelpCircleIcon, KeyboardIcon, LanguagesIcon, LayoutIcon, LogOutIcon, MailIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, PaletteIcon, SaveIcon, SettingsIcon, ShieldIcon, SunIcon, UserIcon,} from "lucide-solid";import { createSignal } from "solid-js";import { Button } from "~/components/ui/button";import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger,} from "~/components/ui/dropdown-menu";
export default function DropdownMenuComplex() { const [notifications, setNotifications] = createSignal({ email: true, sms: false, push: true }); const [theme, setTheme] = createSignal("light");
return ( <DropdownMenu> <DropdownMenuTrigger as={Button} variant="outline" class="w-fit"> Complex Menu </DropdownMenuTrigger> <DropdownMenuContent class="w-44"> <DropdownMenuGroup> <DropdownMenuLabel>File</DropdownMenuLabel> <DropdownMenuItem> <FileIcon /> New File<DropdownMenuShortcut>⌘N</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> <FolderIcon /> New Folder<DropdownMenuShortcut>⇧⌘N</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger> <FolderOpenIcon /> Open Recent </DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuGroup> <DropdownMenuLabel>Recent Projects</DropdownMenuLabel> <DropdownMenuItem> <FileCodeIcon /> Project Alpha </DropdownMenuItem> <DropdownMenuItem> <FileCodeIcon /> Project Beta </DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger> <MoreHorizontalIcon /> More Projects </DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuItem> <FileCodeIcon /> Project Gamma </DropdownMenuItem> <DropdownMenuItem> <FileCodeIcon /> Project Delta </DropdownMenuItem> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem> <FolderSearchIcon /> Browse... </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> <DropdownMenuSeparator /> <DropdownMenuItem> <SaveIcon /> Save<DropdownMenuShortcut>⌘S</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> <DownloadIcon /> Export<DropdownMenuShortcut>⇧⌘E</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuLabel>View</DropdownMenuLabel> <DropdownMenuCheckboxItem checked={notifications().email} onChange={(checked) => setNotifications({ ...notifications(), email: checked === true }) } > <EyeIcon /> Show Sidebar </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={notifications().sms} onChange={(checked) => setNotifications({ ...notifications(), sms: checked === true })} > <LayoutIcon /> Show Status Bar </DropdownMenuCheckboxItem> <DropdownMenuSub> <DropdownMenuSubTrigger> <PaletteIcon /> Theme </DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuGroup> <DropdownMenuLabel>Appearance</DropdownMenuLabel> <DropdownMenuRadioGroup value={theme()} onChange={setTheme}> <DropdownMenuRadioItem value="light"> <SunIcon /> Light </DropdownMenuRadioItem> <DropdownMenuRadioItem value="dark"> <MoonIcon /> Dark </DropdownMenuRadioItem> <DropdownMenuRadioItem value="system"> <MonitorIcon /> System </DropdownMenuRadioItem> </DropdownMenuRadioGroup> </DropdownMenuGroup> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuLabel>Account</DropdownMenuLabel> <DropdownMenuItem> <UserIcon /> Profile<DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut> </DropdownMenuItem> <DropdownMenuItem> <CreditCardIcon /> Billing </DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger> <SettingsIcon /> Settings </DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuGroup> <DropdownMenuLabel>Preferences</DropdownMenuLabel> <DropdownMenuItem> <KeyboardIcon /> Keyboard Shortcuts </DropdownMenuItem> <DropdownMenuItem> <LanguagesIcon /> Language </DropdownMenuItem> <DropdownMenuSub> <DropdownMenuSubTrigger> <BellIcon /> Notifications </DropdownMenuSubTrigger> <DropdownMenuPortal> <DropdownMenuSubContent> <DropdownMenuGroup> <DropdownMenuLabel>Notification Types</DropdownMenuLabel> <DropdownMenuCheckboxItem checked={notifications().push} onChange={(checked) => setNotifications({ ...notifications(), push: checked === true }) } > <BellIcon /> Push Notifications </DropdownMenuCheckboxItem> <DropdownMenuCheckboxItem checked={notifications().email} onChange={(checked) => setNotifications({ ...notifications(), email: checked === true }) } > <MailIcon /> Email Notifications </DropdownMenuCheckboxItem> </DropdownMenuGroup> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem> <ShieldIcon /> Privacy & Security </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuSubContent> </DropdownMenuPortal> </DropdownMenuSub> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem> <HelpCircleIcon /> Help & Support </DropdownMenuItem> <DropdownMenuItem> <FileTextIcon /> Documentation </DropdownMenuItem> </DropdownMenuGroup> <DropdownMenuSeparator /> <DropdownMenuGroup> <DropdownMenuItem variant="destructive"> <LogOutIcon /> Sign Out<DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut> </DropdownMenuItem> </DropdownMenuGroup> </DropdownMenuContent> </DropdownMenu> );}API Reference
See the Kobalte Dropdown Menu API reference for primitive props, keyboard behavior, and accessibility details.