ThiloDesign System
DV

Native Select

shadcn/ui
v4 only

Styled native HTML select. Use when Radix Select is overkill — mobile-first or server-rendered forms.

@/components/ui/native-select

States

StatePreviewToken
Default
border-input bg-background — same as Input
Disabled
opacity-50 cursor-not-allowed

Patterns

In context — filter bar

Tickets
NativeSelect at h-7 aligns with toolbar density — uses browser-native dropdown

NativeSelect vs Select (Radix)

NativeSelectSelect (Radix)
DropdownBrowser native — OS-styledCustom Radix popover — consistent across OS
Custom itemsText only — no icons or badgesAny React content inside SelectItem
MobileNative iOS/Android UX — familiarCustom — may feel foreign on mobile
Server formsWorks without JSRequires JS
Best forFilters, compact toolbars, mobile-firstStatus, priority, role — when custom UI matters

Sub-components + Props

ComponentRole
NativeSelectStyled <select> wrapper — same height/border/focus as Input
NativeSelectOptionSingle <option> — value + label text
NativeSelectOptGroup<optgroup> — groups options under a non-selectable label
PropTypeDescription
defaultValuestringInitially selected value (uncontrolled)
valuestringControlled selected value
onChangefunctionReact.ChangeEventHandler<HTMLSelectElement>
disabledbooleanPrevents selection, reduces opacity
size"sm" | "default"Height — default 36px, sm 32px

On this page