Select
Displays a select menu built on the Base UI Select primitive.
Installation
Bash
Usage
Examples
Groups
Grouped options with labels, a separator, and the small trigger size.
API reference
Select
Extends the Base UI Select Root — all its props apply.
| Prop | Type | Default |
|---|---|---|
items | Record<string, ReactNode> | { label, value }[] | — |
value / defaultValue | item value (array when multiple) | — |
onValueChange | (value) => void | — |
multiple | boolean | false |
disabled / required / readOnly | boolean | false |
When items is given, SelectValue renders the matching item’s label
instead of the raw value.
SelectTrigger
Extends the Base UI Trigger.
| Prop | Type | Default |
|---|---|---|
size | "default" | "sm" | "default" |
SelectContent
Renders through Select.Portal → Select.Positioner → Select.Popup,
and always sets alignItemWithTrigger={false} on the Positioner so the
popup opens as a plain dropdown below the trigger instead of the Base UI
default, which overlaps the selected item on the trigger like a native
macOS select.
SelectValue, SelectItem, SelectGroup, SelectLabel, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton
Styled Base UI parts. SelectItem takes the option value (and
disabled); the scroll buttons appear automatically when the list
overflows.