Skip to content
Zuno UI
Explore components
EXPLORE
Actions
Forms
Layout
Navigation
Data display
Feedback
Overlays
RESOURCES
Components/Select

Select

Single-option selection with a portaled popup, keyboard support and accessible states.

Base UI reference ↗

Installation

Run it from the root of a project already set up with zunoui init.

npx zunoui@latest add select

Dependencies

What add select installs alongside the component. The CLI skips any you already have in a compatible version.

ZUNO registry

  • @zuno/utils

npm

Examples

2 examples · 1 component
select

Simple selection

Default value, keyboard support and visible focus.

select

Grouped options

Labeled groups and a separator inside the popup.

API reference

Keeps the props, events and refs of the matching Base UI primitive, plus ZUNO's styles.

PropTypeDefault
Select

Root; accepts value, defaultValue, onValueChange, name and disabled.

——
SelectTrigger

Button that opens the popup and shows the value.

button—
SelectValue

Shows the selected value or the placeholder.

span—
SelectContent

Portaled popup; side, align and sideOffset adjust its position.

div—
SelectItem

An option; requires value.

div—

States

The states that apply to this component and their visual treatment.

StateTreatment
RestTrigger with placeholder or value and a 1 px border.
OpenPortaled popup; the trigger is expanded (aria-expanded).
Highlighted optionThe keyboard or pointer highlights the focused option.
SelectedThe chosen option is marked inside the popup.
Focus visible2 px ring outline on the trigger.
Disableddisabled prevents opening.

Accessibility

Associate a label with the control (inside Field with FieldLabel, or a native label). Give SelectValue a descriptive placeholder when there is no value.

Opens and navigates with the keyboard (arrow keys, type to search, Enter to choose, Escape to close). The popup uses theme tokens and keeps the selection when opened inside a Dialog.