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.
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.
- Pick a fruit to continue.
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.