Layered list rendered through Base UI portal behavior.
item
Selectable option with highlighted and selected states.
item-description
Optional supporting text for an option.
indicator
Selected-item indicator.
group / group-label
Curated grouping anatomy for structured option sets.
separator
Visual boundary between option groups.
message
Helper or validation message.
States
State
Behavior
Open
Options appear above the app layer.
Placeholder
Placeholder text does not auto-select the first option.
Highlighted
Keyboard or pointer focus indicates the next selection.
Selected
A restrained selected surface and indicator confirms the current value.
Disabled
Prevents choosing unavailable options.
Read-only
Keeps the value visible without allowing changes.
Required
Supports native form required metadata.
Invalid
Connects error text and aria-invalid when validation fails.
Motion
State changes should use shared motion tokens and preserve reduced-motion behavior.
Accessibility
Uses the Base UI Select primitive.
The visible label is associated with the select control.
Supports placeholder, description, helper or error message, disabled, read-only, and invalid states.
Supports native form metadata including name, form, required, readOnly, and autoComplete.
Does not select the first option when only a placeholder is supplied.
Error messages are announced with role="alert" only when invalid is true.
Options support disabled states, typeahead, and Base UI keyboard navigation.
Pair the document dir attribute with Base UI DirectionProvider so popup behavior follows LTR or RTL.
Use Combobox for a bounded synchronous searchable set. Remotely loaded and multi-select datasets remain outside Select.
Review the shared responsibility and evidence boundaries in the Accessibility foundation alongside this component-specific contract. Use the Spacing & layout foundation for shared density, wrapping, overflow, reflow, and component-versus-product ownership guidance. The Color foundation, Typography foundation, and Localization foundation define the shared visual-role, text-resilience, direction, and locale boundaries used by component examples.
API
Props
Purpose
label / options
Visible ReactNode label and concise data-driven options.
children
Curated SelectItem composition; cannot be mixed with options.
value / defaultValue / onValueChange
Controlled or uncontrolled single value with Nerio event details.
open / defaultOpen / onOpenChange
Controlled or uncontrolled popup state with Nerio event details.
size / triggerRef
Shared control size and access to the combobox trigger.
name / form / required / readOnly / autoComplete
Native form participation and control state.
className
Extends the component root while preserving tokenized defaults.
Implementation contract
Contract
Value
Registry item
select installs Tailwind-first source, the token bridge, and residual popup keyframes.