--- templateEngineOverride: njk layout: layouts/page.njk title: Native Select description: A styled native HTML select element with consistent design system integration. toc: - label: Usage id: usage - label: Examples id: examples children: - label: Groups id: example-groups - label: Disabled id: example-disabled - label: Invalid id: example-invalid - label: Size id: example-size - label: RTL id: example-rtl - label: Native Select vs Select id: native-select-vs-select --- {% from "macros/code_preview.njk" import code_preview %} {% from "macros/code_block.njk" import code_block %} {% set code %}{% endset %} {{ code_preview("native-select", code) }}

For a custom listbox with richer styling and JavaScript behavior, see the Select component.

Usage

Add the select class to a native <select>. Use standard <option> and <optgroup> elements.

{{ code_block(code) }}

Examples

Groups

{% set code %}{% endset %} {{ code_preview("native-select-groups", code) }}

Disabled

{% set code %}{% endset %} {{ code_preview("native-select-disabled", code) }}

Invalid

{% set code %}

Select a fruit to continue.

{% endset %} {{ code_preview("native-select-invalid", code, "w-full max-w-sm") }}

Size

{% set code %}
{% endset %} {{ code_preview("native-select-size", code) }}

RTL

Native select supports document direction. Set dir="rtl" on the select or a parent element.

{% set code %}{% endset %} {{ code_preview("native-select-rtl", code) }}

Native Select vs Select