Skip to content
RefineUI

Dropdown

Contextual action dropdown panel.

Overview

Machine-readable contract from Component Spec.

component: dropdownexport: Dropdownversion: 1attributes: data-refineui=dropdown-menu

Anatomy

Partdata-refineui
rootdropdown-menu-root
dropdown_itemdropdown-item
groupdropdown-menu-group
labeldropdown-menu-label
separatordropdown-menu-separator
shortcutdropdown-menu-shortcut

States

ScopeCategoryValues
componentpseudofocus-visible
componentcomponentdata-state: pressed, selected, open
componentenvironmentforced-colors, dir

Accessibility

SlotElementRole
dropdown-menudivmenu
dropdown-itemdivmenuitem

Keyboard

KeyActionNative
Escapeclose
Enteractivatetrue
Spaceactivatetrue

Focus

SectionPropertyValue
visualrequiredtrue
visualselector:focus-visible

Layout

PropertyValue
directionlogical
rtltrue
npm install @refineui/react @refineui/tokens
import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem, Button } from "@refineui/react";
<Dropdown>
<DropdownTrigger>
<Button>Options</Button>
</DropdownTrigger>
<DropdownContent>
<DropdownItem onSelect={() => handleEdit()}>Edit</DropdownItem>
<DropdownItem onSelect={() => handleDelete()}>Delete</DropdownItem>
<DropdownItem disabled>Disabled</DropdownItem>
</DropdownContent>
</Dropdown>
<Dropdown>
<DropdownTrigger>
<Button>More</Button>
</DropdownTrigger>
<DropdownContent align="end" side="bottom">
<DropdownItem selected>Active Item</DropdownItem>
<DropdownSubTrigger>Submenu</DropdownSubTrigger>
<DropdownSubContent>
<DropdownItem>Submenu Item</DropdownItem>
</DropdownSubContent>
</DropdownContent>
</Dropdown>

Root component (manages open state).

Trigger element that opens the dropdown.

PropDefaultTypeDescription
align"start""start" | "end" | "center"Alignment relative to trigger.
side"auto""auto" | "top" | "bottom"Preferred side.
sideOffset4numberGap between trigger and panel (pixels).
PropDefaultTypeDescription
selectedfalsebooleanShows selected state.
disabledfalsebooleanDisables this item.

Submenu trigger item (shows chevron).

Submenu panel.