# @carlos3g/element-dropdown > Maintained React Native dropdown and multi-select. A drop-in fork of `react-native-element-dropdown` with long-standing bugs fixed, modernized tooling, and signed releases. Provides three components: `Dropdown` (single-select), `MultiSelect`, and `SelectCountry` (flag picker). The library is published as `@carlos3g/element-dropdown`. The public API matches `react-native-element-dropdown@2.12.x` so consumers can switch by changing the install name and import path. ## Documentation - [Accessibility](https://carlos3g.github.io/element-dropdown/docs/accessibility): Accessibility in @carlos3g/element-dropdown — combobox role, expanded and disabled states, selected items, font scaling, hit slop, reduce motion, and screen-reader live regions. - [Introduction](https://carlos3g.github.io/element-dropdown/docs/intro): Maintained React Native dropdown, multi-select, and country picker for iOS, Android, and Web. Drop-in fork of react-native-element-dropdown with long-standing bugs fixed. - [Installation](https://carlos3g.github.io/element-dropdown/docs/installation): Install @carlos3g/element-dropdown in React Native, Expo, or React Native Web. No native modules, no rebuild required. - [Why this fork](https://carlos3g.github.io/element-dropdown/docs/why-this-fork): Why @carlos3g/element-dropdown exists as a maintained fork of react-native-element-dropdown — what it fixes, what it commits to, and what it deliberately doesn't try to be. - [Quick start](https://carlos3g.github.io/element-dropdown/docs/quick-start): Render your first React Native Dropdown and MultiSelect — a minimal working example, plus how to enable search. - [Migration from upstream](https://carlos3g.github.io/element-dropdown/docs/migration-from-upstream): How to migrate from react-native-element-dropdown to @carlos3g/element-dropdown. Two-line import change, no native rebuild, fully backward-compatible API. ## Components - [Dropdown](https://carlos3g.github.io/element-dropdown/docs/components/dropdown): React Native Dropdown component API — props, imperative ref, search, keyboard avoidance, Modal positioning, accessibility. - [MultiSelect](https://carlos3g.github.io/element-dropdown/docs/components/multi-select): React Native MultiSelect component API — controlled selection, chip row, optional search, disabled items, imperative ref. - [SelectCountry](https://carlos3g.github.io/element-dropdown/docs/components/select-country): React Native country picker with flag images — a Dropdown variant that renders an image next to each item's label. ## Guides - [Open and close programmatically](https://carlos3g.github.io/element-dropdown/docs/guides/imperative-open-close): Open or close a Dropdown or MultiSelect from outside the component using its imperative ref. - [Searching a different field](https://carlos3g.github.io/element-dropdown/docs/guides/custom-search-field): Point the built-in search at a data field other than the visible label. - [Custom search matcher](https://carlos3g.github.io/element-dropdown/docs/guides/custom-search-matcher): Replace the default search predicate with your own logic — locale-aware comparison, multi-field match, fuzzy search. - [Disabling individual items](https://carlos3g.github.io/element-dropdown/docs/guides/disabled-items): Mark specific items in the data array as non-interactive using the disabledField prop. - [Nesting inside a React Native Modal](https://carlos3g.github.io/element-dropdown/docs/guides/nested-in-modal): Use isInsideModal so the Dropdown positions correctly when rendered inside a native Modal. - [Chip row inside the trigger](https://carlos3g.github.io/element-dropdown/docs/guides/multi-select-inside-mode): Render MultiSelect's selected chips inline in the trigger instead of below it. - [Empty state (no results)](https://carlos3g.github.io/element-dropdown/docs/guides/empty-state): Render a custom message when the data array is empty or the search returns nothing. - [Reacting to the cleared search](https://carlos3g.github.io/element-dropdown/docs/guides/on-change-text): Detect when the user clears the search input (including via the X button or by closing the dropdown). - [Excluding items from the list or from search](https://carlos3g.github.io/element-dropdown/docs/guides/exclusion): Hide items entirely, or keep them visible while removing them from search results. - [Enlarging the tap target](https://carlos3g.github.io/element-dropdown/docs/guides/hit-slop): Use hitSlop to expand the tappable area of the trigger without affecting layout. - [Respecting the system font scale](https://carlos3g.github.io/element-dropdown/docs/guides/font-scaling): Control whether labels scale with the OS accessibility font-size setting. - [Customizing the search input](https://carlos3g.github.io/element-dropdown/docs/guides/text-input-passthrough): Use any React Native TextInput prop — selectionColor, cursorColor, keyboardType — on the built-in search input. - [Different icons for open and closed](https://carlos3g.github.io/element-dropdown/docs/guides/icon-per-state): Use the visible argument in renderLeftIcon and renderRightIcon to swap icons based on open state. - [Pagination with onEndReached](https://carlos3g.github.io/element-dropdown/docs/guides/end-reached-pagination): Load more items when the user scrolls to the bottom of the dropdown list using onEndReached. - [Custom trigger](https://carlos3g.github.io/element-dropdown/docs/guides/custom-trigger): Replace the default Dropdown trigger (left icon + label + right icon) with your own layout using renderSelectedItem. - [Modal header](https://carlos3g.github.io/element-dropdown/docs/guides/modal-header): Render a sticky header (title + close button) above the dropdown list using renderModalHeader. - [Selected-item ordering & visibility](https://carlos3g.github.io/element-dropdown/docs/guides/selected-ordering): Hide already-selected items, sort them to the top, or close the list after each toggle in MultiSelect. - [Search input passthrough](https://carlos3g.github.io/element-dropdown/docs/guides/search-input-props): Forward keyboardType, selectionColor, returnKeyType and other TextInputProps to the built-in dropdown search input. - [Sectioned lists](https://carlos3g.github.io/element-dropdown/docs/guides/sectioned-lists): Group dropdown items under headings using the sections prop — swaps FlatList for SectionList internally while keeping the rest of the API unchanged. - [Animations](https://carlos3g.github.io/element-dropdown/docs/guides/animations): Animate Dropdown and MultiSelect with Reanimated, Moti, or RN's built-in LayoutAnimation — zero peer dependencies on the library side, you choose the animation stack. ## Optional - [Full documentation in one file](https://carlos3g.github.io/element-dropdown/llms-full.txt): every page concatenated for single-fetch consumption by LLM agents. - [Source repository](https://github.com/carlos3g/element-dropdown): includes the upstream-triage roadmap and changelog. - [npm package](https://www.npmjs.com/package/@carlos3g/element-dropdown): install metadata and version history.