Forms

Combobox

A text field that filters a list as you type. Up and Down move through matches; Enter confirms.

ReactVueWeb Components
View in Storybook

Playground

Examples

<Combobox aria-label="国" options={countries} onChange={setCountry} />

Props

Name Type Default Description
options required ComboboxOption[] Selectable options.
value string | null Controlled selected value (`null` = none).
defaultValue string | null Initial value when uncontrolled. @default null
onChange (value: string | null) => void Called with the newly selected value (`null` when cleared).
placeholder string Field placeholder.
disabled boolean false Disable the control. @default false
emptyText string No matches Text shown when no options match. @default 'No matches'
size 'sm' | 'md' | 'lg' md Control size. @default 'md'
filter (option: ComboboxOption, query: string) => boolean Custom filter predicate. @default case-insensitive label `includes`.
aria-label string Accessible label (when not wrapped in a FormField).
id string
name string
className string

Accessibility

  • Body/background contrast is ≥ 7:1 (AAA) in both light and dark.
  • Every interaction works with the keyboard alone.
  • The focus ring is always visible.
  • Respects prefers-reduced-motion and stops excessive motion.

Every component is designed to meet WCAG 2.1 AAA.