Downshift is a set of React primitives that help developers build accessible autocomplete, combobox, and select dropdown components.
The library addresses the challenge of creating form components that are both accessible and flexible while adhering to WAI-ARIA design patterns. It provides stateful logic through React hooks—useSelect for custom select components, useCombobox for autocomplete inputs, and useTagGroup for tag-based selections—allowing developers to build the UI however they want while the hooks handle accessibility and interaction logic. A render-prop based Downshift component is also available as an alternative approach, though the hooks are the recommended path forward.
Teams building custom dropdown or autocomplete experiences should choose this library if accessibility compliance is a requirement. It suits projects where developers need fine-grained control over component appearance and behavior rather than using pre-styled component libraries.
The project maintains active development with regular improvements to the hooks. Issues are addressed and new use cases are considered for implementation. The codebase shows ongoing refinement of the ARIA pattern implementations and migration support for users upgrading between versions.