Select

Native select menu styled to match the design system

Category: inputs · WCAG 2.2-AA · form, dropdown, menu

Sizes

States

Props

PropTypeDefaultDescription
labelstring—Text label for the control.
hintstring—Supplementary hint text shown with the control.
errorstring—Error message shown when the value is invalid.
placeholderstring—Placeholder text shown when the field is empty.
options{ value: string; label: string; disabled?: boolean }[]—The selectable options.
size'sm' | 'md' | 'lg'mdVisual size of the component (e.g. 'sm', 'md', 'lg').
disabledbooleanfalseWhen true, disables the control and removes it from the tab order.
ariaLabelstring—Invisible accessible name, for when a visible element outside this component already labels it and `label` would render that text a second time. ⚠ `label` on this component is **visible**; `IconButton.label`/`Sparkline.label` are invisible names, which is the prior that costs adopters a duplicated label. The raw DOM `aria-label` still wins over this.

Design tokens

When to use

When not to use

How to build an accessible Select in React →

Examples

Basic

<Select label="Role" options={[{ value: "admin", label: "Admin" }]} />

With placeholder

<Select label="Country" placeholder="Choose…" options={countries} />

Related components

← Back to docs