Dropdown Menu

Displays a menu of actions or options triggered by a button, supporting items, checkboxes, radio groups, and submenus.

Basic

A simple "My Account" dropdown with items and keyboard shortcuts.

With Checkboxes & Radio

Checkbox items for toggles and radio groups for single-select options.

Usage

julia
using Suite

DropdownMenu(
    DropdownMenuTrigger(
        Button(variant="outline", "Open Menu")
    ),
    DropdownMenuContent(
        DropdownMenuLabel("Actions"),
        DropdownMenuSeparator(),
        DropdownMenuGroup(
            DropdownMenuItem("Profile", DropdownMenuShortcut("Cmd+P")),
            DropdownMenuItem("Settings", DropdownMenuShortcut("Cmd+,")),
        ),
        DropdownMenuSeparator(),
        DropdownMenuItem("Log out"),
    )
)

Keyboard Interactions

KeyAction
Arrow DownMove focus to the next menu item
Arrow UpMove focus to the previous menu item
Enter / SpaceActivate the focused menu item
EscapeClose the dropdown menu
Arrow RightOpen the focused submenu
Arrow LeftClose the current submenu
HomeMove focus to the first menu item
EndMove focus to the last menu item
Type-aheadFocus item by typing its label

API Reference

DropdownMenu

PropTypeDefaultDescription
openBoolfalseControlled open state
default_openBoolfalseInitial open state (uncontrolled)
on_open_changeFunctionnothingCallback when open state changes
classString""Additional CSS classes

DropdownMenuTrigger

PropTypeDefaultDescription
children...Any-Trigger content (usually a button)
as_childBoolfalseMerge props into child element
classString""Additional CSS classes

DropdownMenuContent

PropTypeDefaultDescription
sideString"bottom"Preferred side: "top", "right", "bottom", "left"
alignString"start"Alignment: "start", "center", "end"
side_offsetNumber4Offset from the trigger (px)
classString""Additional CSS classes

DropdownMenuGroup

PropTypeDefaultDescription
children...Any-Grouped menu items
classString""Additional CSS classes

DropdownMenuLabel

PropTypeDefaultDescription
children...Any-Label text
insetBoolfalseAdd left padding to align with items
classString""Additional CSS classes

DropdownMenuItem

PropTypeDefaultDescription
children...Any-Item content
disabledBoolfalseDisable interaction
insetBoolfalseAdd left padding to align with labeled groups
on_selectFunctionnothingCallback when item is selected
classString""Additional CSS classes

DropdownMenuCheckboxItem

PropTypeDefaultDescription
checkedBoolfalseWhether the checkbox is checked
on_checked_changeFunctionnothingCallback when checked state changes
disabledBoolfalseDisable interaction
children...Any-Item content
classString""Additional CSS classes

DropdownMenuRadioGroup

PropTypeDefaultDescription
valueString""Currently selected radio value
on_value_changeFunctionnothingCallback when selection changes
children...Any-Radio items
classString""Additional CSS classes

DropdownMenuRadioItem

PropTypeDefaultDescription
valueString""Value for this radio option (required)
disabledBoolfalseDisable interaction
children...Any-Item content
classString""Additional CSS classes

DropdownMenuItemIndicator

PropTypeDefaultDescription
children...Any-Custom indicator content (default: check icon)
classString""Additional CSS classes

DropdownMenuSeparator

PropTypeDefaultDescription
classString""Additional CSS classes

DropdownMenuShortcut

PropTypeDefaultDescription
children...Any-Shortcut text (e.g. "Cmd+K")
classString""Additional CSS classes

DropdownMenuSub

PropTypeDefaultDescription
openBoolfalseControlled open state of submenu
default_openBoolfalseInitial open state (uncontrolled)
on_open_changeFunctionnothingCallback when submenu open state changes
classString""Additional CSS classes

DropdownMenuSubTrigger

PropTypeDefaultDescription
children...Any-Trigger content for the submenu
disabledBoolfalseDisable interaction
insetBoolfalseAdd left padding to align with labeled groups
classString""Additional CSS classes

DropdownMenuSubContent

PropTypeDefaultDescription
side_offsetNumber2Offset from the sub-trigger (px)
align_offsetNumber-5Vertical alignment offset (px)
children...Any-Submenu content
classString""Additional CSS classes