# moroshko/react-autosuggest

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/moroshko-react-autosuggest).**

5,940 stars · 570 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/moroshko/react-autosuggest
- Homepage: http://react-autosuggest.js.org
- awesome-repositories: https://awesome-repositories.com/repository/moroshko-react-autosuggest.md

## Description

React Autosuggest is a fully controlled React component that provides an autocomplete input with a dropdown of suggestions as the user types. It delegates all state management to the parent component through callbacks, making it compatible with state management patterns like Flux or Redux. The component implements WAI-ARIA accessibility patterns, including keyboard navigation with arrow keys, Enter, and Escape, along with live region integration for screen reader announcements.

The component offers extensive customization through render-prop functions, allowing developers to replace the default input element and control how each suggestion is rendered, including support for grouped sections with headers. It provides scroll isolation within the suggestions container, preventing page scrolling when the list reaches its boundary. Styling can be applied through a theme object that works with any CSS solution, including CSS Modules, Radium, or JSS.

The component gives developers control over when suggestions are displayed, such as after a minimum character count or based on custom logic, and supports automatic highlighting of matched text. It handles long suggestion lists by rendering them in a scrollable container, and provides direct access to the underlying input element for DOM manipulation.

## Tags

### User Interface & Experience

- [Autocomplete Inputs](https://awesome-repositories.com/f/user-interface-experience/text-input-widgets/autocomplete-inputs.md) — Provides a fully controlled autocomplete input with filtered suggestions as the user types. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))
- [Autocomplete Components](https://awesome-repositories.com/f/user-interface-experience/autocomplete-components.md) — Provides a fully controlled React autocomplete input with a dropdown of suggestions as the user types.
- [Controlled](https://awesome-repositories.com/f/user-interface-experience/autocomplete-components/controlled.md) — Ships a fully controlled React autocomplete component that delegates all state management to parent callbacks.
- [Customizable Suggestion Renderers](https://awesome-repositories.com/f/user-interface-experience/autocomplete-suggestion-engines/search-keyword-suggesters/text-input-suggesters/customizable-suggestion-renderers.md) — Provides render-prop functions for fully customizing suggestion markup, grouped sections, and styling.
- [Controlled Components](https://awesome-repositories.com/f/user-interface-experience/controlled-components.md) — Delegates all state management to the parent via callbacks, implementing a fully controlled component pattern.
- [Render Props](https://awesome-repositories.com/f/user-interface-experience/dom-manipulation-libraries/declarative-rendering-frameworks/render-props.md) — Exposes render props for input and suggestion rendering, giving full markup and style control.
- [Controlled Component State Integrations](https://awesome-repositories.com/f/user-interface-experience/form-field-extensions/accessible-combobox-form-integrations/form-field-state-integrations/controlled-component-state-integrations.md) — Ships a fully controlled React autocomplete component that delegates all state management to parent callbacks for Flux or Redux integration. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))
- [Keyboard-Accessible Autocomplete](https://awesome-repositories.com/f/user-interface-experience/keyboard-based-accessibility/keyboard-accessible-autocomplete.md) — Provides keyboard-accessible autocomplete with ARIA attributes for screen reader navigation. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))
- [Screen Reader Accessibility](https://awesome-repositories.com/f/user-interface-experience/screen-reader-accessibility.md) — Announces each suggestion to screen readers with full keyboard navigation for selection. ([source](http://react-autosuggest.js.org/))
- [Screen Reader Live Regions](https://awesome-repositories.com/f/user-interface-experience/screen-reader-live-regions.md) — Delivers screen reader announcements through ARIA live regions that update as suggestions appear.
- [WAI-ARIA Frameworks](https://awesome-repositories.com/f/user-interface-experience/wai-aria-frameworks.md) — Implements WAI-ARIA accessibility patterns with keyboard navigation and screen reader announcements.
- [Grouped List Sections](https://awesome-repositories.com/f/user-interface-experience/custom-header-components/section-headers/grouped-list-sections.md) — Renders suggestions as grouped sections with headers for organized browsing.
- [Custom Input Overrides](https://awesome-repositories.com/f/user-interface-experience/form-input-controls/custom-input-overrides.md) — Allows replacing the default input element with a fully custom component for UI library integration. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))
- [Container Scroll Isolations](https://awesome-repositories.com/f/user-interface-experience/navigation-scrolling-tools/scroll-interference-prevention/container-scroll-isolations.md) — Isolates scroll inside the suggestions container to prevent page scrolling at boundaries. ([source](https://github.com/moroshko/react-autosuggest/blob/master/FAQ.md))
- [Scroll Boundary Event Captures](https://awesome-repositories.com/f/user-interface-experience/scroll-event-handlers/nested-scroll-event-frameworks/scroll-boundary-event-captures.md) — Captures wheel events when the suggestion container reaches its scroll boundary to isolate scrolling.
- [Container Scroll Isolations](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-restoration/scroll-locking/container-scroll-isolations.md) — Isolates scroll within the suggestions container to prevent page scrolling at boundaries. ([source](https://github.com/moroshko/react-autosuggest/blob/master/FAQ.md))
- [Scrollable Form Lists](https://awesome-repositories.com/f/user-interface-experience/scrollable-interfaces/scrollable-form-lists.md) — Renders the suggestion list inside a scrollable container to keep long lists usable. ([source](http://react-autosuggest.js.org/))
- [Scroll-Isolated Suggestion Lists](https://awesome-repositories.com/f/user-interface-experience/scrollable-interfaces/scrollable-form-lists/scroll-isolated-suggestion-lists.md) — Isolates scroll within the suggestions container to prevent page scrolling when the list boundary is reached.
- [CSS Styling](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/styling-architectures/styling-systems/class-based-styling/css-styling.md) — Applies custom styles via a theme object compatible with CSS Modules, Radium, Aphrodite, or JSS. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))

### Part of an Awesome List

- [Keyboard and Navigation](https://awesome-repositories.com/f/awesome-lists/devtools/keyboard-and-navigation.md) — Supports full keyboard navigation with arrow keys, Enter, and Escape for suggestion selection.
- [Form Controls](https://awesome-repositories.com/f/awesome-lists/devtools/form-controls.md) — WAI-ARIA compliant autosuggest component.

### Data & Databases

- [Keyboard-Accessible](https://awesome-repositories.com/f/data-databases/search-suggestions/keyboard-accessible.md) — Implements full keyboard navigation with arrow keys, Enter, and Escape for suggestion selection. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))
- [Input Suggestions](https://awesome-repositories.com/f/data-databases/search-suggestions/input-suggestions.md) — Provides a scrollable suggestion container for long lists of autocomplete options. ([source](http://react-autosuggest.js.org/))
- [Sectioned Suggestion Groups](https://awesome-repositories.com/f/data-databases/search-suggestions/input-suggestions/sectioned-suggestion-groups.md) — Supports rendering suggestions in grouped sections with headers for better organization. ([source](http://react-autosuggest.js.org/))
- [Suggestion Visibility Controls](https://awesome-repositories.com/f/data-databases/search-suggestions/input-suggestions/suggestion-visibility-controls.md) — Controls when suggestions appear, such as after a minimum character count or based on custom logic. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))

### Development Tools & Productivity

- [Custom Suggestion Templates](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/command-suggestion-tools/suggestion-ui-components/custom-suggestion-templates.md) — Allows replacing the default input and suggestion container with custom rendering logic. ([source](https://cdn.jsdelivr.net/gh/moroshko/react-autosuggest@main/README.md))

### Software Engineering & Architecture

- [Keyboard Navigation State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/lightweight-state-machines/automation-state-machines/entity-state-machines/architectural-state-machines/keyboard-navigation-state-machines.md) — Ships an internal state machine for keyboard-driven suggestion navigation and selection.

### Web Development

- [Autocomplete State Controllers](https://awesome-repositories.com/f/web-development/component-state-managers/controlled-uncontrolled-state-patterns/autocomplete-state-controllers.md) — Delegates all autocomplete state management to parent callbacks for seamless Flux or Redux integration.
