Select
A styled native select dropdown.
Usage
<select class="zui-select">
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select> import { Select } from '@mrmartineau/zui/react'
<Select>
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</Select> ---
import { Select } from '@mrmartineau/zui/astro'
---
<Select>
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</Select> import { Select } from '@mrmartineau/zui/solid'
<Select>
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</Select> <script lang="ts">
import { Select } from '@mrmartineau/zui/svelte'
let value = $state('')
</script>
<Select bind:value>
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</Select> <template>
<Select>
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</Select>
</template>
<script setup>
import { Select } from '@mrmartineau/zui/vue'
</script> With Label
<label class="zui-label" for="country">Country</label>
<select class="zui-select" id="country">
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</select> import { Label, Select } from '@mrmartineau/zui/react'
<Label htmlFor="country">Country</Label>
<Select id="country">
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</Select> ---
import { Label, Select } from '@mrmartineau/zui/astro'
---
<Label for="country">Country</Label>
<Select id="country">
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</Select> import { Label, Select } from '@mrmartineau/zui/solid'
<Label htmlFor="country">Country</Label>
<Select id="country">
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</Select> <script lang="ts">
import { Label, Select } from '@mrmartineau/zui/svelte'
let country = $state('')
</script>
<Label for="country">Country</Label>
<Select id="country" bind:value={country}>
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</Select> <template>
<Label for="country">Country</Label>
<Select id="country">
<option value="">Select a country</option>
<option value="uk">United Kingdom</option>
<option value="us">United States</option>
<option value="de">Germany</option>
<option value="fr">France</option>
</Select>
</template>
<script setup>
import { Label, Select } from '@mrmartineau/zui/vue'
</script> Disabled
<select class="zui-select" disabled>
<option>Cannot change</option>
</select> import { Select } from '@mrmartineau/zui/react'
<Select disabled>
<option>Cannot change</option>
</Select> ---
import { Select } from '@mrmartineau/zui/astro'
---
<Select disabled>
<option>Cannot change</option>
</Select> import { Select } from '@mrmartineau/zui/solid'
<Select disabled>
<option>Cannot change</option>
</Select> <script lang="ts">
import { Select } from '@mrmartineau/zui/svelte'
</script>
<Select disabled>
<option>Cannot change</option>
</Select> <template>
<Select disabled>
<option>Cannot change</option>
</Select>
</template>
<script setup>
import { Select } from '@mrmartineau/zui/vue'
</script> CSS custom properties
| Property | Default | Description |
|---|---|---|
--zui-select-radius | var(--radius-lg) | Border radius |
--zui-select-border | var(--color-border) | Border colour |
--zui-select-bg | var(--color-background) | Background colour |
--zui-select-fg | var(--color-text) | Text colour |
--zui-select-padding-block | var(--space-3xs) | Vertical padding |
--zui-select-padding-inline | var(--space-xs) | Horizontal padding |