Select
Dropdown list for choosing a single option. Custom Radix-based component with grouped and native variants.
When To Use
- Use Select when the user needs to enter or choose information as part of a larger form or workflow.
- Start from this pattern when you need the interaction, spacing, and state treatment to match the rest of the system.
- Use the examples below to choose the least complex control that still communicates the user’s next step clearly.
When Not To Use
- Do not introduce a heavier or more customizable control when a simpler native-style field is sufficient.
- Do not hide required context, validation, or option meaning behind placeholder text alone.
Accessibility Notes
- Keep a visible label or an equivalent accessible name attached to the control.
- Surface validation and helper text programmatically so assistive technologies receive the same context as sighted users.
- Preserve the native focus order and keyboard interactions instead of replacing them with custom behavior.
Key Props / API
Key exports
SelectRoot, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem
Example Code
import {
Select, SelectTrigger, SelectValue,
SelectContent, SelectItem, SelectLabel, SelectGroup,
} from "@hilum/ui"
<Select>
<SelectTrigger className="w-[200px]">
<SelectValue placeholder="Select voice..." />
</SelectTrigger>
<SelectContent>
<SelectItem value="roger">Roger</SelectItem>
<SelectItem value="aria">Aria</SelectItem>
<SelectItem value="sarah">Sarah</SelectItem>
</SelectContent>
</Select>Select · Basic
Single-value dropdown
Custom Radix select with search support
Select · Grouped
Options grouped by category
Use SelectGroup + SelectLabel for categorization
Select · Native
Native HTML select
OS-rendered dropdown, works without JavaScript
Select · Sizes and states
Width variations
Full-width vs fixed-width, disabled state