emoji-picker-react
llms.txt1.5k starsChanged 22 days agoMITView on GitHub
Emoji picker for React: batteries included with <EmojiPicker />, or BYOD (bring your own design, design language and design library) with unstyled and emoji-picker-react/primitives. Both paths share search, keyboard navigation, localization and virtualization. Use your existing Tailwind, shadcn/ui, CSS Modules, Emotion, styled-components, MUI or plain CSS design. Exports (generated from the entry sources):
- Installs packages
We split this llms.txt into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Use colorScheme="light" | "dark" | "auto" on Root, or prefer it over theme on EmojiPicker (CSS-in-JS wrappers reserve theme).
- Very specific: line 15
Read the installed package llms-full.txt first.
- Distinctive: line 16
Do not override structural layout (viewport overflow, grid geometry).
≈ “Common” is an estimate: at least 1 in 5 of the 3,225 llms.txt files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
# emoji-picker-react
> Emoji picker for React: batteries included with `<EmojiPicker />`, or BYOD (bring your own design, design language and design library) with `unstyled` and `emoji-picker-react/primitives`. Both paths share search, keyboard navigation, localization and virtualization. Use your existing Tailwind, shadcn/ui, CSS Modules, Emotion, styled-components, MUI or plain CSS design.
Key facts:
- Install: `npm install emoji-picker-react`. Minimal use: `import EmojiPicker from 'emoji-picker-react'; <EmojiPicker onEmojiClick={(e) => insert(e.emoji)} />`.
- Choose batteries included or BYOD for both "I just need an emoji picker" (the default component needs no styling) and "it must match our design system" (`unstyled` or primitives + the project's styling solution).
- Entry points: `emoji-picker-react` (the default picker, enums and types; registers the English dataset), `emoji-picker-react/primitives` (composable parts, hooks, tokens and the same enums; loads the dataset on demand), `emoji-picker-react/data` (search and lookup without React), `emoji-picker-react/data/emojis-<locale>` (28 datasets). The complete export list is below.
- Styling: `--epr-*` CSS variables (they always yield to consumer CSS), `[data-epr-part="…"]` selectors, `className`/`style`. Ordinary resets are handled by library classes; more specific rules and !important can still override structural geometry. With Tailwind v4 or other @layer setups pass `cssLayer="epr"` and declare `@layer epr, theme, base, components, utilities;` first.
- Use `colorScheme="light" | "dark" | "auto"` on Root, or prefer it over `theme` on EmojiPicker (CSS-in-JS wrappers reserve `theme`). Props accept string literals or enums.
- Accessibility: automated axe and keyboard/focus regression checks; grid semantics (emoji buttons are `role="gridcell"`); every UI string localizable through `labels`. Manual screen-reader verification has a separate release protocol.
- Works with React 16.8–19, SSR, React Server Components (client entries are marked "use client"), TypeScript.
- Composition owns presence and placement: Root renders exactly the parts you supply — omit Search, Preview, SkinTone, Panel or Reactions to omit that UI, and place SkinTone inside Search or Preview (or anywhere in Root). The default picker assembles the same parts from its legacy props. Use SearchInput as={Input} with an input-forwarding adapter. Root/EmojiPicker components replace Emoji, CategoryHeader, CategoryButton, SkinToneButton, ClearButton and ExpandButton; List components override grid slots. Use useSearchActions, useCategoryNavigation and usePickerMode for custom controls. Bare Root and unstyled remove all branded decoration; geometry and presence belong to your JSX. Do not invent asChild, onEmojiSelect or a renderer-independent UI engine.
- Read the installed package llms-full.txt first; it matches the installed version. The primitives entry, `unstyled`, `columns`, `components`, `labels` and loader `emojiData` exist from 5.0.0; a 4.x installation has only the v4 props.
- Do not override structural layout (viewport overflow, grid geometry); position the picker by wrapping it.
Exports (generated from the entry sources):
- `emoji-picker-react`: default `EmojiPicker`; values `Categories`, `Emoji`, `emojiByUnified`, `EmojiStyle`, `SkinTonePickerLocation`, `SkinTones`, `SuggestionMode`, `Theme`; types `CategoryButtonRenderProps`, `CategoryConfig`, `CategoryHeaderRenderProps`, `CategoryIcons`, `CustomEmoji`, `EmojiClickData`, `EmojiClickHandler`, `EmojiData`, `EmojiDataInput`, `EmojiDataLoader`, `EmojiDataLoaderOptions`, `EmojiRenderProps`, `EmojiStyleValue`, `ListComponents`, `ListEmoji`, `OnEmojiClickApi`, `PickerComponents`, `PickerLabels`, `PickerProps`, `PreviewConfig`, `Props`, `SkinToneButtonRenderProps`, `SkinToneChangeHandler`, `SkinTonesValue`, `SuggestionModeValue`, `ThemeValue`.
- `emoji-picker-react/primitives`: values `Categories`, `CategoryNav`, `darkPickerTokens`, `defaultPickerTokens`, `EmojiStyle`, `Empty`, `lightPickerTokens`, `List`, `LoadError`, `Loading`, `Panel`, `Preview`, `Reactions`, `Root`, `Search`, `SearchInput`, `SkinTone`, `SkinTonePickerLocation`, `SkinTones`, `structuralPickerTokens`, `SuggestionMode`, `Theme`, `useActiveEmoji`, `useCategoryNavigation`, `useEmojiDataState`, `usePickerMode`, `useSearchActions`, `useSearchState`, `useSkinTone`, `Viewport`; types `CategoryButtonRenderProps`, `CategoryConfig`, `CategoryHeaderRenderProps`, `CategoryIcons`, `CategoryNavProps`, `CustomEmoji`, `EmojiClickData`, `EmojiClickHandler`, `EmojiData`, `EmojiDataInput`, `EmojiDataLoader`, `EmojiDataLoaderOptions`, `EmojiDataState`, `EmojiRenderProps`, `EmojiStyleValue`, `EmptyProps`, `ListComponents`, `ListEmoji`, `ListProps`, `LoadErrorProps`, `LoadingProps`, `OnEmojiClickApi`, `PanelProps`, `PickerAppearanceProps`, `PickerComponents`, `PickerCompositionProps`, `PickerLabels`, `PreviewConfig`, `PreviewProps`, `ReactionsProps`, `RootBehaviorProps`, `RootProps`, `SearchInputComponent`, `SearchInputElement`, `SearchInputProps`, `SearchProps`, `SearchState`, `SkinToneButtonRenderProps`, `SkinToneChangeHandler`, `SkinToneProps`, `SkinTonesValue`, `SuggestionModeValue`, `ThemeValue`, `ViewportProps`.
- `emoji-picker-react/data`: values `getEmojiByUnified`, `searchEmojis`; types `EmojiData`, `EmojiDataOptions`, `EmojiInfo`.
- `emoji-picker-react/data/emojis-<locale>`: default export, an `EmojiData` dataset (bn, da, de, en, en-gb, es, es-mx, et, fi, fr, hi, hu, it, ja, ko, lt, ms, nb, nl, pl, pt, ru, sv, th, uk, vi, zh, zh-hant).
Quick reference:
```tsx
// Batteries included: theme the built-in look with colorScheme and --epr-* variables.
import EmojiPicker from 'emoji-picker-react';
<EmojiPicker colorScheme="auto" columns={8} className="my-picker" onEmojiClick={(e) => insert(e.emoji)} />
// Unstyled: same layout and behavior, your CSS on [data-epr-part] selectors (color variables do nothing here).
<EmojiPicker unstyled className="my-picker" />
// Composed: your layout, your components; Root keeps state, keyboard, ARIA and virtualization.
import * as Picker from 'emoji-picker-react/primitives';
<Picker.Root columns={8} style={{ height: 400 }} components={{ Emoji: MyCell }} onEmojiClick={(e) => insert(e.emoji)}>
<Picker.SearchInput as={MyInput} />
<Picker.CategoryNav />
<Picker.Viewport><Picker.List /><Picker.Empty /><Picker.Loading /><Picker.LoadError /></Picker.Viewport>
<Picker.Preview />
</Picker.Root>
// Data only (no React): search and lookup.
import { searchEmojis, getEmojiByUnified } from 'emoji-picker-react/data';
searchEmojis('party'); getEmojiByUnified('1f389'); // { emoji: '🎉', name: 'party popper', unified, names, … }
```
## Docs
- [Agent integration guide](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/AGENT_GUIDE.md): installed-version discovery, batteries included/BYOD, typed input/cell contracts, localization and verification
- [Copyable integration prompts](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/PROMPTS.md): setup, brand styling, design-library composition, recipe adoption and v4-to-v5 migration
- [README](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/README.md): overview, quick start, choosing a path, styling with any solution, common tasks
- [Props reference](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/PROPS.md): every prop of the default <EmojiPicker />
- [CSS variables](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/CSS_VARIABLES.md): every --epr-* design token
- [Customization](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/CUSTOMIZATION.md): custom emojis and groups, category icons, preview, CSP nonce
- [Internationalization](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/INTERNATIONALIZATION.md): locale datasets and labels
- [Adoption](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/ADOPTION.md): native input, loading recovery, registry installation and source downloads
- [v5 API](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/API.md): all v5 additions with examples
- [Primitives](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/PRIMITIVES.md): composable parts, hooks, custom cells, grammar
- [Styling](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/STYLING.md): tokens, parts, cascade, structural rules
- [Styling recipes by library](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/STYLING_RECIPES.md): theme, unstyled and composed snippets for plain CSS, CSS Modules, Tailwind, shadcn/ui, Emotion, styled-components and MUI
- [Data API](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/DATA_API.md): framework-free search and lookup
- [Migrating from v4](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/docs/v5/MIGRATION.md): what changed and how to upgrade
- [Website examples](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/website/README.md): typed customization, locale loading and composition
## Examples
- [Design recipes](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/stories/recipes/README.md): 25 designs, each in seven styling stacks
- [Styling integrations](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/stories/integrations/README.md): shadcn/ui, Tailwind, Emotion, styled-components, CSS Modules, CSS, MUI
- [Example app](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/example/README.md): Vite + React 19 app running the batteries-included, unstyled, composed and data-API paths
## Optional
- [llms-full.txt](https://raw.githubusercontent.com/ealush/emoji-picker-react/master/llms-full.txt): the complete documentation in one file
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about ealush/emoji-picker-react
- ssm0318/WhoamI-Today-frontend“[New Feature] emoji-picker-react 도입 검토”GitHub · Jun 3, 2023 · 3 reactions
- jaylfc/taOS“chore(deps): bump the spa-deps group in /desktop with 29 updates”GitHub · Jun 14, 2026 · 2 reactions
- jaylfc/taOS“chore(deps): bump the spa-deps group in /desktop with 29 updates”GitHub · Jun 9, 2026 · 2 reactions
- jaylfc/taOS“chore(deps): bump the spa-deps group across 1 directory with 29 updates”GitHub · Jun 7, 2026 · 2 reactions
- jaylfc/taOS“chore(deps): bump the spa-deps group across 1 directory with 21 updates”GitHub · Jun 2, 2026 · 2 reactions
The biggest 5 of 52 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 52
Talked about on GitHub and Stack Overflow (52 times).
On GitHub · 50
- Jun 3, 2023[New Feature] emoji-picker-react 도입 검토 — ssm0318/WhoamI-Today-frontend3 reactions · 1 comment
- Jun 14, 2026chore(deps): bump the spa-deps group in /desktop with 29 updates — jaylfc/taOS2 reactions · 2 comments
- Jun 9, 2026chore(deps): bump the spa-deps group in /desktop with 29 updates — jaylfc/taOS2 reactions · 1 comment
- Jun 7, 2026chore(deps): bump the spa-deps group across 1 directory with 29 updates — jaylfc/taOS2 reactions · 3 comments
- Jun 2, 2026chore(deps): bump the spa-deps group across 1 directory with 21 updates — jaylfc/taOS2 reactions · 15 comments
45 more on GitHub
- Oct 23, 2026build(deps): bump the minor-update group with 2 updates — WakuwakuP/miyulab-fe1 reaction · 2 comments
- Oct 2, 2026build(deps): bump the patch-update group with 2 updates — WakuwakuP/miyulab-fe1 reaction · 2 comments
- Sep 28, 2026chore: bump the npm-non-major group across 1 directory with 41 updates — CloudHub-Social/Charm1 reaction · 4 comments
- Sep 21, 2026chore: bump the npm-non-major group across 1 directory with 39 updates — CloudHub-Social/Charm1 reaction · 4 comments
- Sep 14, 2026chore: bump the npm-non-major group across 1 directory with 30 updates — CloudHub-Social/Charm1 reaction · 4 comments
- Sep 11, 2026build(deps): bump emoji-picker-react from 4.20.1 to 4.20.2 in the patch-update group — WakuwakuP/miyulab-fe1 reaction · 3 comments
- Sep 7, 2026chore: bump the npm-non-major group across 1 directory with 18 updates — CloudHub-Social/Charm1 reaction · 4 comments
- Apr 2, 2023Emoji support for chats — VladimirKhil/SIOnline1 reaction
- Oct 26, 2020Add emoji reactions to posts and comments — Hylozoic/hylo-evo1 reaction · 5 comments
- Oct 30, 2026chore(deps): bump the frontend-updates group across 1 directory with 28 updates — h4nzs/nyx-chat0 reactions · 3 comments
- Oct 29, 2026chore: bump the npm-production group across 2 directories with 3 updates — claude-murgat/murgatchat0 reactions
- Oct 29, 2026Bump the packages-minor-and-patch group across 1 directory with 57 updates — usefeatul/featul0 reactions · 1 comment
- Oct 29, 2026chore(deps): bump the minor-and-patch group across 1 directory with 6 updates — jordanlambrecht/tracker-tracker0 reactions · 2 comments
- Oct 29, 2026chore(deps): bump the minor-and-patch group with 9 updates — Livvux/openDiscord0 reactions
- Oct 28, 2026build(deps): bump emoji-picker-react from 5.0.0 to 5.1.4 in /public — sanidhyy/chat-app0 reactions · 1 comment
- Oct 28, 2026chore(deps): bump emoji-picker-react from 5.1.0 to 5.1.3 in the minor-and-patch group — aws-samples/sample-client-for-amazon-bedrock0 reactions
- Oct 27, 2026chore: bump emoji-picker-react from 5.0.0 to 5.1.1 in /client — AbyanDimas/full-stack-pinterest-clone0 reactions
- Oct 27, 2026Bump emoji-picker-react from 4.22.3 to 5.1.1 — joinearlybird/opentake0 reactions
- Oct 27, 2026chore(frontend)(deps): bump emoji-picker-react from 4.22.3 to 5.1.0 in /ui — Connor-Adams/rainbot0 reactions · 1 comment
- Oct 26, 2026chore(deps): bump emoji-picker-react from 5.0.0 to 5.1.0 — Devexity-fivem/TerpTalk0 reactions · 1 comment
- Oct 26, 2026build(deps): bump emoji-picker-react from 4.22.3 to 5.0.0 in /client — dtymoszenko/FlyBudget0 reactions · 1 comment
- Oct 26, 2026chore(deps): bump the npm-major group across 1 directory with 34 updates — t-dhruv/Kuber0 reactions
- Oct 26, 2026build(deps): bump the frontend-minor-and-patch group across 1 directory with 111 updates — mmprojet2025-byte/bx-connect-mvp10 reactions · 1 comment
- Oct 26, 2026build(deps): bump emoji-picker-react from 5.0.0 to 5.1.0 — Yeraze/meshmonitor0 reactions · 1 comment
- Oct 25, 2026Bump emoji-picker-react from 4.18.0 to 5.1.0 — nolani-os/nolani0 reactions · 1 comment
- Oct 24, 2026chore(deps): bump emoji-picker-react from 4.22.3 to 5.1.0 — aws-samples/sample-client-for-amazon-bedrock0 reactions · 3 comments
- Oct 23, 2026chore(deps): bump emoji-picker-react from 4.19.1 to 5.1.0 — automationhubbd24-sys/chatbotx-salesmanchatbot0 reactions
- Oct 23, 2026chore(deps): bump emoji-picker-react from 5.0.0 to 5.1.0 — juanNH/ReadmeGenerator0 reactions · 1 comment
- Oct 23, 2026Bump emoji-picker-react from 4.22.3 to 5.1.0 in /client — lounsbrough/coup-online0 reactions
- Oct 22, 2026chore: bump emoji-picker-react from 4.22.3 to 5.0.0 in /web — claude-murgat/murgatchat0 reactions · 1 comment
- Oct 17, 2026build(deps): bump emoji-picker-react from 4.22.3 to 5.0.0 in /frontend — MGVORA01/Multilang_chat_Application0 reactions
- Oct 17, 2026Bump the security-and-maintenance group across 1 directory with 19 updates — brandzillacomua-netizen/projectcentrum0 reactions · 1 comment
- Oct 16, 2026[deps]: Bump the npm-minor-patch group across 1 directory with 26 updates — Kobar-Project/KoBar0 reactions
- Oct 15, 2026Bump emoji-picker-react from 4.22.3 to 5.0.0 — CrocSwap/ambient-spot0 reactions · 3 comments
- Oct 13, 2026chore(deps): bump emoji-picker-react from 4.19.1 to 4.22.3 in /frontend — Helter5/ais-authentication0 reactions · 1 comment
- Oct 3, 2026build(deps): bump emoji-picker-react from 4.22.2 to 4.22.3 — ripgraphics/authorsinfo0 reactions · 1 comment
- Oct 2, 2026chore(deps): bump emoji-picker-react from 4.19.1 to 4.22.3 in /client — tanitaka-tech/todome0 reactions
- Oct 1, 2026chore(deps): bump the web-minor-patch group across 1 directory with 23 updates — merrypatch/bramblekeep0 reactions · 1 comment
- Sep 24, 2026Bump emoji-picker-react from 4.9.2 to 4.22.2 — Enoch-xm/chatgpt-next-web0 reactions · 1 comment
- Sep 21, 2026chore(deps): bump emoji-picker-react from 4.19.1 to 4.22.2 — pantingno1/my-bio-slides0 reactions · 1 comment
- Sep 19, 2026Bump the client-dependencies group across 1 directory with 39 updates — Prakash7078/AsiaBazar0 reactions · 1 comment
- Sep 17, 2026build(deps): bump emoji-picker-react from 4.20.2 to 4.22.2 — QortiumDev/qortium-minting0 reactions
- Sep 14, 2026Bump emoji-picker-react from 4.18.0 to 4.20.7 — Eeshan-Vaghjiani/Chat-REACT0 reactions · 1 comment
- Sep 11, 2026chore(deps): bump emoji-picker-react from 4.20.7 to 4.20.2 — whoavidwivedi/better-space0 reactions · 2 comments
- Apr 5, 2026custom emoji — mouse484/astraea0 reactions
On Stack Overflow · 2
- Mar 31, 2020Can't perform a React State update on unMounted child component?1 vote
- Mar 25, 2019React Emoji Picker not converting to unicode1 vote · 1 answer
In this repository2 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms-full.txtllms.txt
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

