# React Select — Flexible Select Input Control for React > React Select is a flexible, accessible select input component for React with support for multi-select, async option loading, creatable options, and custom styling. ## Install Save in your project root: # React Select — Flexible Select Input Control for React ## Quick Use ```bash npm install react-select ``` ```jsx import Select from 'react-select'; const options = [ { value: 'js', label: 'JavaScript' }, { value: 'ts', label: 'TypeScript' }, { value: 'py', label: 'Python' } ]; function App() { return ` element is limited in styling and functionality. React Select replaces it with a fully customizable component that supports searching, multi-select, async loading, option creation, and accessible keyboard navigation. It is one of the most widely used form controls in the React ecosystem. ## What React Select Does - Renders a searchable dropdown with type-ahead filtering - Supports single and multi-value selection with tag-style display - Loads options asynchronously from an API with built-in debouncing - Allows users to create new options on the fly with the Creatable variant - Provides full keyboard navigation and screen reader accessibility ## Architecture Overview React Select is built around a core `Select` component that manages internal state for the menu, input value, and selected values. It uses a styles API based on emotion for component-level CSS-in-JS. Each visual piece (control, menu, option, indicator) is a replaceable component, letting developers swap in custom renders. The async and creatable behaviors are implemented as higher-order components that wrap the base Select. ## Self-Hosting & Configuration - Install from npm and import `Select`, `AsyncSelect`, or `CreatableSelect` - Pass `options` as an array of `{ value, label }` objects - Use `isMulti` prop for multi-select and `isClearable` for a clear button - Customize appearance via the `styles` prop or `classNames` prop for CSS modules - Use `components` prop to replace any internal part like `Option`, `Menu`, or `Control` ## Key Features - Type-ahead search with customizable filter logic - Grouped options with ``-style section headers - Portal rendering via `menuPortalTarget` to escape overflow containers - Accessible by default with ARIA attributes and live region announcements - Full TypeScript generics for type-safe option values ## Comparison with Similar Tools - **Native `