Accessible select primitive built on the native select element with controlled and uncontrolled modes.

npx slipstream-ui@latest add select
Playground

Selected: default

Props

PropTypeDefaultDescription
optionsSelectOption[]required{ value, label, disabled? } entries
labelstring—Visible, associated label
valuestring—Controlled selected value
defaultValuestring—Uncontrolled initial value
onChange(value: string) => void—Selection change handler

Accessibility

  • Built on the native select: full keyboard, screen-reader and mobile support
  • Visible labels are associated via htmlFor/id; aria-label is forwarded otherwise