Best React Select and Autocomplete Components in 2026: 9 Libraries Compared
Short answer. Choose MUI Autocomplete if you are on Material UI: free text, groups, async demos, custom option and value rendering, all MIT. Choose react-select if you need a standalone searchable select with ready async (AsyncSelect) and creatable (CreatableSelect) variants and a name prop for plain form posts, as long as your option lists are not huge. Choose Ant Design Select if lists are long: virtualization is on by default. Choose HeroUI if you want built-in virtualization and a load-more pattern on React Aria foundations, for free. Choose CoreUI PRO Autocomplete if you want match highlighting, inline completion hints, async loading and virtualization as documented props on one Bootstrap-styled component.
How we compared
We compared 9 React libraries in October 2026, using each vendor’s docs, API reference and npm types (versions in the table). Where a library splits the job across components (MUI Select and Autocomplete, Ant Select and AutoComplete), each feature is rated on the best component for it. Every cell has a source URL and a verification date in our research base. A ❌ means the gap is confirmed: the vendor’s documentation says so, or we reproduced it in a public demo or a clean test build in a headless browser on October 28, 2026. When the docs are silent, or an absence appears only in type definitions, we write — (no data) instead of ❌. CoreUI publishes this page; its own gaps are marked ❌ from its complete API reference.
The comparison at a glance
Legend: ✅ built in · Partial = recipe, external library or limited · ❌ confirmed missing · — no data
| Library (version) | Type to filter | Match highlight | Free text | Create option | Async options | Load on scroll | Virtualization | Option groups | Custom value render | Native form submit | RTL | License |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MUI Material UI 9.5 | ✅ | Partial | ✅ | Partial | ✅ | Partial | Partial | ✅ | ✅ | ✅ | ✅ | MIT |
| Ant Design 6.6 | ✅ | — | ✅ | ✅ | ✅ | Partial | ✅ | ✅ | ✅ | — | ✅ | MIT |
| Mantine 9.7 | ✅ | Partial | ✅ | Partial | ✅ | — | Partial | ✅ | Partial | ✅ | ✅ | MIT |
| Chakra UI 3.37 | ✅ | Partial | ✅ | Partial | ✅ | — | Partial | ✅ | ✅ | ✅ | Partial | MIT |
| HeroUI 3.2 | ✅ | — | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Partial | MIT |
| shadcn/ui (Combobox) | ✅ | — | — | — | Partial | — | Partial | ✅ | Partial | ✅ | ✅ | MIT, code copied into your repo |
| react-select 5.10 | ✅ | — | ✅ | ✅ | ✅ | Partial | ❌ | ✅ | ✅ | ✅ | ✅ | MIT |
| PrimeReact 11.2 | ✅ | — | ✅ | — | ✅ | — | ❌ | ✅ | ✅ | Partial | ✅ | PrimeUI License: free under size limits, $599/dev |
| CoreUI for React PRO 5.29 | ✅ | ✅ | ✅ | — | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | — | CoreUI PRO, $127/dev perpetual |
The libraries, one by one
MUI Select and Autocomplete
Material UI 9.5.0 (MIT) splits the job: Select is a styled dropdown without search, NativeSelect wraps the native element, and Autocomplete is the searchable combobox. Autocomplete covers freeSolo free text, filterOptions with createFilterOptions (match from start or anywhere, ignore accents), groupBy, renderOption, renderValue, autoHighlight, a loading state with “search as you type” demos, and a Popper rendered in a portal. Several advanced features are recipes rather than props: virtualization uses react-window, infinite loading uses TanStack Query and TanStack Virtual, highlighting uses the autosuggest-highlight package, and the “Add xyz” creatable demo is custom filterOptions code. Select posts its value through a hidden input.
Choose it if you build on Material UI.
Ant Design Select and AutoComplete
Ant Design 6.6.8 (MIT) uses one Select with showSearch, plus a separate AutoComplete for free-text input with backfill. Virtualization is on by default, defaultActiveFirstOption highlights the first match, optionRender and labelRender customize options and the selected value, and allowClear, notFoundContent, OptGroup and status cover the rest. The “Search and Select Users” demo shows remote search with debounce and a loading state. Creating options uses mode="tags", which is a multiple mode. Values are managed through Ant’s own Form component.
Choose it if you use Ant Design and need long lists to stay fast.
Mantine Select and Autocomplete
Mantine 9.7.4 (MIT) offers Select with searchable, Autocomplete for free text, NativeSelect, and Combobox primitives with a catalog of copy-paste recipes. Built in: a filter prop for custom matching (the docs show fuzzy search with fuse.js), selectFirstOptionOnChange, loading, renderOption, clearable, nothingFoundMessage, portal rendering, error, and a hidden input with name for FormData. Highlighting, creatable options, a custom selected value and virtualization are Combobox recipes you copy and then own; for very large lists the Select docs suggest the limit prop.
Choose it if you like Mantine and are comfortable extending through recipes.
Chakra UI Select and Combobox
Chakra UI 3.37.0 (MIT) has Select, NativeSelect and Combobox. Combobox gives you allowCustomValue, inputBehavior set to “autohighlight” or “autocomplete”, async loading examples, ClearTrigger, item groups, custom items and Combobox.Empty; Select adds HiddenSelect so values post with the form. Virtualization examples rely on TanStack Virtual, highlighting composes the Highlight component, and the docs label the creatable example “not fully tested”.
Choose it if you want composable primitives.
HeroUI Select, ComboBox and Autocomplete
HeroUI 3.2.6 (MIT), built on React Aria, offers Select, ComboBox and Autocomplete. It documents a load-more pattern (onLoadMore through ListBoxLoadMoreItem) and built-in virtualization through React Aria’s Virtualizer, plus allowsCustomValue, useFilter with contains, startsWith and endsWith modes, a custom value render, isInvalid validation, name with HTML form integration, and clear buttons (on Select since 3.2.5). We confirmed in the demo that the list renders in a portal at the end of <body>. The docs did not cover match highlighting or option creation, and RTL relies on the locale and recent CSS fixes rather than a docs section.
Choose it if you want React Aria based components with less assembly.
shadcn/ui Select and Combobox
shadcn/ui offers Select, Native Select and a Combobox built on Base UI, copied into your repository under MIT. It covers autoHighlight, groups, custom items, showClear, an empty state, invalid styling, name and form from Base UI, and RTL sections in the docs. Async search and virtualization are documented in Base UI rather than in shadcn’s own pages, so you wire them up yourself.
Choose it if you already use shadcn/ui.
react-select
react-select 5.10.2 (MIT) is still the standalone default: isSearchable, createFilter (case and accent options, match from start or anywhere), AsyncSelect with loadOptions and cacheOptions, CreatableSelect, grouped options, formatOptionLabel, components overrides for every part, isClearable, menuPortalTarget, isRtl, and a name prop that renders a hidden input. Two limits matter at scale. In our test build with 5,000 options, all 5,000 were rendered in the DOM: there is no built-in virtualization. Error styling goes through styles or classNames. The last release is more than a year old, although the repository was active in July 2026.
Choose it if you need a searchable select outside any design system, with async and creatable modes, and moderate list sizes.
PrimeReact Select and AutoComplete
PrimeReact 11.2.2 rebuilt Select (formerly Dropdown) and AutoComplete as composable parts: Select.Filter for searching, filterMatchMode, autoOptionFocus, free text in AutoComplete, onComplete for server search with a loading indicator, option groups, option and value templates, Select.Clear and Select.Portal. The 11.x line no longer has the VirtualScroller that 10.x had: in our test build, a Select with 5,000 options rendered all 5,000. And 11.x is under the PrimeUI License (see below).
Choose it if you are licensed for PrimeUI. PrimeReact 10.9.9 remains MIT on the v10-stable tag, with the older Dropdown API.
CoreUI Autocomplete and Multi Select (single mode)
Our own entry. CoreUI for React has a free, MIT CFormSelect (a styled native select with validation feedback) and two PRO components for everything else: CAutocomplete and CMultiSelect with multiple={false}. Both are in CoreUI PRO, $127 per developer, perpetual, 12 months of updates, renewal at the same price, while most libraries on this page are free.
What CAutocomplete documents as props: highlightOptionsOnSearch to highlight the matched text, showHints for inline completion accepted with Tab, free text by default (allowOnlyDefinedOptions restricts it), External Data loading with debounce and loading, virtualScroller with visibleItems, grouped options, optionsTemplate, cleaner, portal, name, and valid and invalid feedback.
Where CoreUI loses: there is no template for the selected value, no infinite loading, and matching is limited to the built-in, global or external search modes (no custom match function). Option creation is documented only for multiple mode, and the Autocomplete page does not document RTL.
Choose it if you build on Bootstrap or CoreUI and want highlighting, hints, async and virtualization without assembling recipes. Team prices are on the pricing page.
Licensing in 2026: what changed
PrimeReact is no longer MIT. Since 11.0.0-rc.1 (June 28, 2026), primereact ships under the PrimeUI License. In our test build without a key, Select worked but showed an “Invalid PrimeUI License” badge. The free Community License covers individuals and organizations with fewer than 5 developers, fewer than 10 employees, under $1M revenue and under $3M in outside funding, outside the public sector and education, renewed yearly. The commercial license is $599 per developer until December 31, 2026 (then $799), perpetual with one year of updates, and $399 per developer per year to renew updates. PrimeReact 10 is the last MIT line.
MUI’s Select and Autocomplete are part of free Material UI, not the commercial MUI X. Chakra UI Pro sells blocks and templates; its Select and Combobox stay MIT.
FAQ
What is the best React select component with search?
On Material UI, use MUI Autocomplete. Without a design system, react-select is the standalone option for small and medium lists. For long lists, Ant Design Select virtualizes by default, and HeroUI uses React Aria’s Virtualizer.
Does react-select support virtualization?
Not built in. In our test with react-select 5.10.2 and 5,000 options, every option was rendered in the DOM. Ant Design, HeroUI and CoreUI document built-in virtualization; MUI, Mantine and Chakra UI show recipes with external libraries.
Which React autocomplete highlights the matching text?
CoreUI Autocomplete has a highlightOptionsOnSearch prop. MUI (with autosuggest-highlight), Mantine (a Combobox recipe) and Chakra UI (the Highlight component) document how to build it yourself.
Which React select loads options from a server?
MUI Autocomplete (“search as you type” demo), Ant Design (remote search demo), Mantine (loading plus async recipes), Chakra UI, HeroUI, react-select (AsyncSelect), PrimeReact (onComplete) and CoreUI (External Data) all document async loading.
Which React select works with a plain HTML form?
MUI Select, Mantine (hidden input), Chakra UI (HiddenSelect), HeroUI and shadcn/ui (name), react-select (name renders a hidden input) and CoreUI (name) post their value with a regular form submit.
Can a free React select create new options?
Yes. react-select has CreatableSelect, Ant Design creates options in mode="tags" (a multiple mode), and MUI shows a creatable recipe with filterOptions.