Combobox
A select that filters as you type, with one or many values.
Single value
The user types to filter the list. A click on the input opens the list. Clear removes the value. Empty shows when no item matches.
Multiple values with chips
Use multiple when the user picks several values. Set multiple on Root. Selected items show as chips that wrap with the input.
Sizes
Match the size of the buttons beside the field, and use lg only for a hero field. sm, md, and lg are 26, 36, and 44 pixels high.
States
Use inset by default and line for light or inline editing, with one appearance per form. Hover and focus the fields to see those states.
Usage
These are defaults, not laws. Break one when you have a good reason, or when it makes the design more cohesive or more interesting.
- Choose the input from the number of options and what the user picks.
Component Use it for Radio One choice from 2 or 3 options that stay visible. Select One choice from 4 to about 10 options, or fewer options when space is tight. Combobox One or more choices from a long list, with typing to filter. Autocomplete Free text, with suggestions that the user can ignore. Choicebox A choice where each option needs a description, such as a plan. Checkbox An on or off value in a form that the user submits. Switch A setting that applies at once. - Put
Emptynext toListinsidePopup, not in the list. - Name each
ChipRemoveafter its chip, for example "Remove Session replay".
API
Props that the library adds. Every part also takes all the Base UI props.
Combobox.InputGroup
| Prop | Type | Default | Description |
|---|---|---|---|
| size | 'sm' | 'md' | 'lg' | 'md' | Sets the text size, padding, and control height. |
| appearance | 'inset' | 'line' | 'inset' | Sets the field shape. Keep inset for forms. Use line for light or inline editing, such as renaming in place, filters, and quick settings. |
Combobox.Clear
| Prop | Type | Default | Description |
|---|---|---|---|
| aria-label | string | 'Clear' | The accessible name of the clear button. |
Combobox.ChipRemove
| Prop | Type | Default | Description |
|---|---|---|---|
| aria-label | string | 'Remove' | The accessible name of the remove button. Name the chip in it, for example `Remove ${product}`. |
Combobox.Empty
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | 'No results' | The message when no item matches the input. |
Combobox.Popup
| Prop | Type | Default | Description |
|---|---|---|---|
| sideOffset | number | 4 | The gap between the input and the popup, in pixels. |
| container | HTMLElement | ShadowRoot | RefObject | null | – | The element that the popup renders into. The default is the document body. |





