For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/en/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/en/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/en/components/native-select.md.

Native Select

Native Select lets users choose one value from a short fixed list while preserving familiar operating-system interaction and accessibility.

Live preview

Choose one fruit for the current order.

Usage

Include CSS

Import Tailwind and one full A3S UI style bundle.

@import "tailwindcss";
@import "@a3s-lab/ui/a3s.css";

Or import only the base CSS, Native Select component CSS, and one style pack.

@import "tailwindcss";
@import "@a3s-lab/ui/base.css";
@import "@a3s-lab/ui/components/native-select.css";
@import "@a3s-lab/ui/styles/a3s.css";

Using CDN or bundler imports? See the Installation page.

Add your native select HTML

Add the canonical class="native-select" to a native <select>. Use standard <option> and <optgroup> elements. The former select class remains a visual migration alias, but new markup and framework adapters use native-select so it cannot be confused with the custom Select root.

<div class="field">
  <label for="native-select-fruit-html">Fruit</label>
  <select id="native-select-fruit-html" class="native-select" aria-describedby="native-select-fruit-help-html">
    <option value="">Select a fruit</option>
    <option value="apple">Apple</option>
    <option value="banana">Banana</option>
    <option value="blueberry">Blueberry</option>
    <option value="pineapple">Pineapple</option>
  </select>
  <p id="native-select-fruit-help-html">Choose one fruit for the current order.</p>
</div>

Use Native Select for native browser behavior, form integration, and mobile-optimized pickers. Use Select for custom option content, multi-select behavior, or JavaScript APIs.

Examples

Groups

Live preview

Disabled

Live preview

This choice is managed by workspace policy.

Invalid

Live preview

required keeps the browser validity result and the authored aria-invalid state truthful to the same empty value.

Size

Live preview

RTL

Set dir="rtl" on the select or a parent element.

Live preview