Use for short, fixed option lists.
Select
Styled native select for compact, accessible option picking.
Pick the team that owns this task.
- .source-select-root Root wrapper
- .source-select-wrapper Border and focus ring container
- .source-select Native select element
- .source-select-chevron Decorative dropdown icon
- .source-select-hint Hint or error area
States
Design intent
Select is a compact dropdown for choosing one value from a known, fixed list. It delegates the picker to the browser, which means native keyboard support and accessibility at no extra cost. The trade-off is limited control over option layout and no search. For 50+ options or options with images, a custom combobox is the right tool.
When to use
Keep option labels clear and mutually exclusive.
Use when users need to pick exactly one value.
Use for long lists that need search. Use Combobox instead.
Use when users can select multiple options.
Use placeholder text as the only label.
Placeholder option
Use required to make first selection mandatory. With a placeholder, the empty option is blocked only when required is true.
Designer checklist
- Placeholder text clarifies expected input, not just 'Select an option'.
- Required field blocking is communicated before the user attempts to submit.
- Error state includes a descriptive message below the field.
- Option labels are short enough to read in a list without truncating.
Select props
* after label and prevents empty option selection.Basic usage
import { Select } from '@pierredelattre/source-react';
<Select id="role" label="Role" placeholder="Choose a role">
<option value="admin">Admin</option>
<option value="editor">Editor</option>
<option value="viewer">Viewer</option>
</Select>With validation
<Select
id="country"
label="Country"
error={errors.country}
required
>
{countryOptions}
</Select>