Native Select
A styled native HTML select element with consistent design system integration. For search, multi-select, or custom option markup, use Select or Combobox instead.
Default
Options placed directly under NativeSelect, no group wrapper.
Usage
Import the parts you need from the component's folder.
ts
import { NativeSelect, NativeSelectOptGroup, NativeSelectOption } from "@/components/ui/native-select";Groups
Use NativeSelectOptGroup to organize options into categories.
Disabled
Add the disabled prop to the NativeSelect component to disable the select.
Invalid
Use aria-invalid to show validation errors, and data-invalid on the surrounding Field for styling.
Anatomy
Import all parts and piece them together.
vue
<script setup>
import {
NativeSelect,
NativeSelectOptGroup,
NativeSelectOption,
} from "@/components/ui/native-select";
</script>
<template>
<NativeSelect>
<NativeSelectOptGroup>
<NativeSelectOption />
</NativeSelectOptGroup>
<NativeSelectOption />
</NativeSelect>
</template>API Reference
NativeSelect
NativeSelectOption
NativeSelectOptGroup
Accessibility
Keyboard shortcuts and ARIA behavior.
- Renders a real select element, so the browser supplies the full listbox semantics and the platform-native dropdown on mobile.
- Pair with Field and FieldLabel for a labelled control; aria-invalid drives the destructive border and ring.