Native Select
A styled native <select> with a Chevron indicator. Same field chrome as Input. Use when a custom dropdown is unnecessary.
Preview
Installation
bash
npx shadcn@latest add @layout/native-selectUsage
tsx
import { NativeSelect } from "@/components/ui/native-select"Examples
With option groups
Sizes
Disabled
Guidelines for AI agents
Use for simple option lists where the native select UX is acceptable — particularly on mobile, where native pickers have better ergonomics. Pair with Label via htmlFor/id. For searchable or complex option lists, use the Combobox or Select component instead.
Never
- Neverhardcode the chevron colour; it derives from --layout-muted-fg
- Neverattempt to style the option elements — they are rendered by the OS
- Neveruse for more than ~15 options without a search; switch to Combobox
- Neverremove appearance-none — it hides the OS chevron so the custom one shows
Tokens consumed
--layout-input--layout-ring--layout-fg--layout-muted-fg--layout-danger--layout-radius--layout-shadow-xs--layout-duration-base