‮Skip to content‬
uiify

Select

‮Wrapper around the native select element.‬

‮Browsers‬
Chrome 135+Firefox 121+
‮Why this version?‬

Firefox keeps the native select control. This custom styling uses ::picker(select), :open, and option::checkmark, which Firefox does not support yet.

Safari 17+
‮Why this version?‬

Safari keeps the native select control. This custom styling uses ::picker(select), :open, and option::checkmark, which Safari does not support yet.

‮Tier‬
0
‮Bundle compressed‬
480 B
‮Forced layout budget‬
0 ms
‮Axe budget‬
0
‮SSR compatible‬
‮Yes‬
‮Published contract‬
‮Test harness‬

‮Playground‬

Select

Default

Grouped

Pet

Separated

Long value

‮API‬

Select.Root

‮Prop‬‮Type‬‮Default‬‮Description‬
childrenReactNode—‮Select parts, normally a Select.Content holding items and groups.‬
valuestring—‮Selected value, making the select controlled.‬
defaultValuestring—‮Value selected on first render; the native select owns selection from then on, so it works without JavaScript.‬
onValueChange(value: string) => void—‮Called with the new value when the selection changes.‬
namestring—‮Form field name submitted with the selected value.‬
disabledbooleanfalse‮Disables the native select and sets the data-disabled attribute.‬
renderReactElement | ((props, state) => ReactElement)—‮Replace the rendered element while keeping behavior and accessibility wiring.‬

Select.Content

‮Prop‬‮Type‬‮Default‬‮Description‬
childrenReactNode—‮Items, groups and separators; the part renders its children without adding an element.‬

Select.Item

‮Prop‬‮Type‬‮Default‬‮Description‬
childrenReactNode—‮Text shown for this option.‬
disabledbooleanfalse‮Makes this option unselectable.‬
value*string—‮Value submitted when this option is selected.‬
renderReactElement | ((props, state) => ReactElement)—‮Replace the rendered element while keeping behavior and accessibility wiring.‬

Select.Group

‮Prop‬‮Type‬‮Default‬‮Description‬
childrenReactNode—‮Items belonging to this group.‬
label*string—‮Group heading shown by the native option group.‬
renderReactElement | ((props, state) => ReactElement)—‮Replace the rendered element while keeping behavior and accessibility wiring.‬

Select.Separator

‮Prop‬‮Type‬‮Default‬‮Description‬
renderReactElement | ((props, state) => ReactElement)—‮Replace the rendered element while keeping behavior and accessibility wiring.‬

‮Keyboard‬

‮Key‬‮Action‬
Arrow keys‮Change option when focused‬
Space‮Open native picker (platform)‬

‮Accessibility‬

‮Text-only native <select>; the browser owns selection, keyboard input, typeahead, and form submission. Supporting engines enhance only the picker appearance.‬

‮Styling hooks‬

data-disabled