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.