Skip to content

Select

Native dropdown with custom chevron, matching Input.vue dimensions and focus styles. Accepts string or object option arrays.

Examples

Basic

Tailwind v4
vue
<script setup>
import { ref } from 'vue'
const product = ref('')
</script>

<template>
  <Select
    v-model="product"
    placeholder="Choose a product"
    :options="['Crusher Run', 'Screenings', 'Gabion Stone', 'Rip Rap']"
  />
</template>

Object options

Tailwind v4
vue
<Select
  v-model="status"
  :options="[
    { label: 'Active', value: 'active' },
    { label: 'Inactive', value: 'inactive' },
    { label: 'Archived', value: 'archived' },
  ]"
/>

With hint and error

Tailwind v4
vue
<Select
  v-model="shift"
  :options="['Morning', 'Afternoon', 'Night']"
  hint="Shifts start at 6 AM, 2 PM, and 10 PM"
/>
<Select
  v-model="section"
  :options="['A', 'B', 'C']"
  error="Please select a section"
/>

Disabled

Tailwind v4
vue
<Select :model-value="'Screenings'" :options="['Crusher Run', 'Screenings']" disabled />

Props

PropTypeDefaultDescription
modelValuestring | numberCurrently selected value
optionsArray<{ label: string; value: string | number } | string>Option list; strings are used as both label and value
placeholderstringPlaceholder option shown when no value is selected
disabledbooleanfalsePrevents interaction and dims the control
errorstringValidation error message shown below the select
hintstringHelper text shown below the select when no error

Emits

EventPayloadDescription
update:modelValuestring | numberNew value on change

Private — Jetpack Labs internal use only