Skip to Content
ComponentsDropdownMenu

DropdownMenu

An accessible dropdown menu component with keyboard navigation, icons, shortcuts, and separators.

Import

import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel, } from "@raydenui/ui";

Usage

Basic

<DropdownMenu> <DropdownMenuTrigger> <Button>Options</Button> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuItem onClick={() => handleEdit()}>Edit</DropdownMenuItem> <DropdownMenuItem onClick={() => handleDuplicate()}>Duplicate</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem onClick={() => handleDelete()}>Delete</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu>

With Icons

<DropdownMenu> <DropdownMenuTrigger> <Button>Actions</Button> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuItem icon={<Icon name="pencil-edit" />}>Edit</DropdownMenuItem> <DropdownMenuItem icon={<Icon name="copy" />}>Duplicate</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem icon={<Icon name="bin" />} destructive> Delete </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu>

With Shortcuts

<DropdownMenu> <DropdownMenuTrigger> <Button>Edit</Button> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuItem shortcut="⌘C">Copy</DropdownMenuItem> <DropdownMenuItem shortcut="⌘V">Paste</DropdownMenuItem> <DropdownMenuItem shortcut="⌘X">Cut</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu>

With Labels and Groups

<DropdownMenu> <DropdownMenuTrigger> <Button>Account</Button> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuLabel>My Account</DropdownMenuLabel> <DropdownMenuItem>Profile</DropdownMenuItem> <DropdownMenuItem>Settings</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuLabel>Team</DropdownMenuLabel> <DropdownMenuItem>Invite Members</DropdownMenuItem> <DropdownMenuItem>Team Settings</DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem>Log Out</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu>

Disabled Items

<DropdownMenu> <DropdownMenuTrigger> <Button>Options</Button> </DropdownMenuTrigger> <DropdownMenuContent> <DropdownMenuItem>Available Action</DropdownMenuItem> <DropdownMenuItem disabled>Disabled Action</DropdownMenuItem> </DropdownMenuContent> </DropdownMenu>

Props

PropTypeDefaultDescription
openboolean—Controlled open state
onOpenChange(open: boolean) => void—Open state change handler
PropTypeDefaultDescription
asChildbooleanfalseMerge props with child
PropTypeDefaultDescription
align"start" | "center" | "end""start"Horizontal alignment
side"top" | "bottom" | "left" | "right""bottom"Placement side
classNamestring—Additional CSS classes
PropTypeDefaultDescription
iconReactNode—Leading icon
shortcutstring—Keyboard shortcut text
destructivebooleanfalseDestructive action styling
disabledbooleanfalseDisables the item
onClick() => void—Click handler

Accessibility

  • Full keyboard navigation (Arrow keys, Enter, Escape)
  • Proper ARIA menu roles
  • Focus management
  • Screen reader announcements
Last updated on