@zendeskgarden/react-dropdowns package provides fully accessible, WAI-ARIA compliant combobox and menu components. Use Combobox for selection-based interactions and Menu for action-triggered menus.
Installation
Combobox
Combobox is the primary selection component. It supports editable input, autocomplete, single and multi-select modes, option grouping, and validation states.
Basic select
UseisEditable={false} to create a non-editable select-only combobox.
Autocomplete
SetisAutocomplete to show the chevron and enable filtered-list behavior. Filtering logic is left to you — update the rendered <Option> list in response to onChange.
Multi-select
SetisMultiselectable to allow selecting multiple options. Selected values render as removable tags inside the combobox.
Grouped options
UseOptGroup to visually group related options with a section label.
Validation
Combobox props
Allows the user to type in the input. Set to
false for a select-only combobox.Indicates that the combobox provides autocompletion. Displays a chevron icon.
Allows selecting multiple options. Selected values render as tags.
Applies compact sizing.
Removes borders and padding.
Disables all interaction.
Placeholder text displayed when no value is selected.
Controls the input value in a controlled combobox.
Controls the selected value(s) in a controlled combobox.
Controls listbox expansion in a controlled combobox.
Default expansion state in an uncontrolled combobox.
Maximum number of tags visible when the multiselectable combobox is collapsed.
Maximum height of the dropdown listbox.
z-index of the listbox overlay.Icon displayed at the start of the input.
Icon displayed at the end of the input (hidden when the chevron is shown).
Applies inset
box-shadow styling on focus.Applies validation state styling.
Called when combobox state changes. Receives
{ type, isExpanded?, selectionValue?, inputValue?, activeIndex? }.Overrides the displayed value when the combobox is collapsed. Receives
{ selection, inputValue }.Overrides the ”+ N more” text displayed when hidden tags exceed
maxTags.Renders the listbox in a portal attached to the specified DOM node.
Accessible label for the listbox element.
Option
Individual selectable item within aCombobox listbox.
The unique value returned on selection.
Display text for the option. Defaults to the
value if not provided.Disables interaction for this option.
Sets the initial selection state.
Hides the option while retaining its selection state (useful for filtered autocomplete).
Icon displayed before the option label.
Applies a semantic type style to the option.
Overrides props for the tag rendered in a multiselectable combobox.
OptGroup
Groups options within aCombobox listbox with an accessible label.
Text label for the group.
Icon displayed before the group label.
Custom content for the group header. Overrides
legend.Menu
Menu renders a trigger button that opens a positioned action menu. Use it for context menus, action lists, and navigation dropdowns.
Basic menu
Menu with groups and separators
Custom trigger
Pass a render function tobutton to use a custom trigger element instead of Garden’s default Button.
Menu props
Text label for the default trigger
Button, or a render function that receives button props and a ref to render a custom trigger.Additional props passed to the trigger
Button when button is a string.Adjusts the position of the menu relative to its trigger. Accepts any Garden placement value.
Applies compact styling to the menu and trigger.
Maximum height of the menu before it scrolls.
Attaches an arrow pointing toward the trigger element.
Controls menu expansion in a controlled menu.
Default expansion state in an uncontrolled menu.
Controls selected items in a controlled menu.
z-index of the menu overlay.Called on menu state changes. Receives
{ type, isExpanded?, selectedItems?, focusedValue? }.Returns keyboard focus to the trigger element when the menu closes.
Item
Individual item within aMenu.
Unique value returned on selection.
Display text for the item. Defaults to
value.Icon displayed before the item label.
Applies a semantic type style. Use
'danger' for destructive actions.Disables interaction for this item.
Sets the initial selection state.
Renders the item as an anchor element.
Opens the
href in a new tab when the item is rendered as an anchor.Associates the item in a radio-style item group.
ItemGroup
GroupsItem elements within a Menu with an optional label.
Text label for the item group.
Icon displayed before the group label.
Configures the selection type for items in the group (e.g., radio).
The legacy
@zendeskgarden/react-dropdowns.legacy package is deprecated. Migrate to @zendeskgarden/react-dropdowns@^9.0.0 to use the Combobox and Menu components documented here.