Figma
Component Status
Status
HTML
React
├── InputContainer
├── InputAddon (optional)
├── Dropdown
├── Suggestion Item
├── Search History Item
└── Tag
Design Usage
UNSTABLE_Combobox provides a flexible input pattern that combines text input, suggestions and selection management into a single component.
It is designed for scenarios where users search for, select and manage one or multiple values while receiving contextual suggestions.
Unlike traditional form controls, Combobox can support multiple interaction patterns depending on the configuration, including:
- autocomplete
- single selection
- multiple selection
- tag-based selection management
The component was introduced primarily to support the needs of the Search team and serves as the foundation for complex search interactions.
Developer Notes
UNSTABLE_Combobox is an experimental composition.
Its API and behavior are expected to evolve before stabilization.
The component combines several existing Spirit building blocks rather than introducing completely new interaction patterns.
Depending on configuration it can work with:
- Overlay
- Tag
- Suggestion Item
- Search History Item
Developers should avoid depending on implementation details while the component remains unstable.
When to Use
Use UNSTABLE_Combobox when:
- users need to search within available options
- suggestions should appear while typing
- one or multiple values can be selected
- selected values should remain visible and editable
- search history or recommendations improve the experience
Typical use cases include:
- search filters
- location search
- skills and tags
- complex search interfaces
When Not to Use
Do not use UNSTABLE_Combobox when:
- a standard TextField is sufficient
- users only select from a fixed list (use Select)
- interaction does not require suggestions or search
- the additional complexity would not improve the user experience
Best Practices
- Suggestions should update as the user types.
- Keyboard interaction should remain the primary interaction method.
- Selected values should remain visible.
- Users should be able to remove selected values directly.
- The component should provide a predictable experience regardless of whether it is configured for single or multiple selection.