Glyph WidgetsGlyph Widgets
ToolsAboutContactBlogPrivacyTermsRemove AdsSupport on Ko-fi

© 2026 Glyph Widgets LLC. All rights reserved.

·

100% Client-Side Processing

Back to Blog

Emoji Picker: Browse, Search & Copy Emojis

Emoji picker with 3,700+ emojis from Unicode 15.1. Search by name, browse 9 categories, pick a skin tone, and click to copy.

Glyph Widgets
February 27, 2026
5 min read
emoji pickeremoji searchcopy emojiemoji keyboardemoji finder

What Is Emoji Picker?

I built this picker because I was tired of opening the system emoji panel just to grab the same five faces and end up scrolling for two minutes. Type, click, paste — that's the whole flow. The dataset is Unicode 15.1 (3,700+ emojis), organized into nine categories, with a search box that matches name and keyword, six Fitzpatrick skin tones for the people emojis, and a Recent row that remembers what you copied this session.

Key Features

The dataset is Unicode 15.1 — every face, hand, food, flag, and symbol added through 2023, sourced directly from the standard. Categories are the nine the Unicode Consortium defines: Smileys & Emotion, People & Body, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, Symbols, and Flags. A Recent row sits next to the category buttons and tracks what you've copied during the session, persisted in localStorage under RECENT_EMOJIS_KEY and capped at MAX_RECENT_EMOJIS entries.

Search queries both the emoji name and its keyword list, so typing heart returns ❤️ and also 💛, 💚, 💙, 💘. Skin tones use the Fitzpatrick scale (default + five modifiers); selecting one applies it to every people emoji that supports modifiers, and emojis with hasSkinTone === false (objects, flags, food) ignore the selection. Clicking an emoji writes to the clipboard, flashes a green check overlay on the tile for 1.5 seconds, and fires a toast — three layers of feedback because clipboard writes are easy to miss.

The grid is responsive: 8 columns on phone screens, 10 on tablets, 12 on desktop. Height is fixed at 400px with vertical scrolling for the larger categories.

How to Use It

Open the Coming Soon: Emoji Picker — it lands on Smileys & Emotion. Click any other category button to switch. If you want a tone, pick one from the row of six waving-hand buttons above the categories before you click any emoji; the selected tone is applied at copy time, so 👋 with a medium tone selected becomes 👋🏽 in your clipboard. Search beats scrolling for anything you can name: type coffee and ☕, 🧋 surface immediately. Clear the field to go back to category browsing.

The Recent row (clock icon, far left of the category bar) keeps your session history in copy order. Recent stores the base emoji without a tone modifier — your current tone selection is reapplied at copy time, so changing tones doesn't churn the history.

Practical Examples

Composing a Slack post about a launch:

Search: fire    → click 🔥
Search: rocket  → click 🚀

Both copies land in Recent for the next message.

Picking a country flag without remembering which row it lives in:

Click Flags category → search: brazil → click 🇧🇷

Keeping skin tones consistent across a single message:

Tone: dark (5th button) → click 👍, 🙏, 🤝
Clipboard receives 👍🏿 → 🙏🏿 → 🤝🏿

Tips and Best Practices

Skin tone and category selections are saved in component state and restored from a preset (a premium feature) — saved presets capture both selectedSkinTone and selectedCategory.

Search is unranked. Results come out in the dataset's natural order, so broad terms like heart or face return many; narrow terms like anguished return one or two. If a search comes up empty, try a synonym: sob instead of cry, grin instead of big smile, poop if brown doesn't surface what you expected. The names in the dataset are formal Unicode names and don't always match informal phrasing.

Skin tone modifiers only apply to emojis with hasSkinTone === true. Flags, food, objects, symbols all stay yellow regardless of which tone is selected.

Common Issues and Troubleshooting

Recent is empty after several copies. The Recent list reads from localStorage. Private/incognito windows and browsers with localStorage disabled won't persist it — in-session copies still appear in memory but reset on reload.

Pasted emoji shows as a box or question mark. The receiving app or platform doesn't support that Unicode 15.1 codepoint. Emojis added in 2022–2023 may not render on older Android versions, older operating systems, or apps that haven't updated their emoji font. Older emojis from 2015–2019 work everywhere.

Toast shows "copied" but the clipboard has the wrong tone. A skin tone modifier is selected. Click the leftmost (default) tone button to remove the modifier, then re-copy.

Privacy and Security

Search, category filtering, skin tone application, and clipboard writes all run locally. The full emoji dataset is bundled with the page's JavaScript. No queries, no copied characters, and no usage data are sent anywhere. Recent emojis live in localStorage and stay on your device. After the first page load, the picker works offline.

Frequently Asked Questions

How does skin tone selection work?

Skin tones in Unicode use Fitzpatrick scale modifier codepoints (U+1F3FB through U+1F3FF) appended after a base emoji codepoint. The picker calls applySkintone(emoji.emoji, selectedSkinTone), which concatenates the modifier when the emoji's hasSkinTone flag is true. Emojis without skin tone support are copied unmodified.

How many emojis can I store in Recent?

The Recent list is capped at MAX_RECENT_EMOJIS entries. New copies push to the front; the oldest is dropped at the cap. Re-copying an emoji moves it to the front rather than duplicating.

Can I search in languages other than English?

No. Search queries the names and keywords in the dataset, which are the formal English names from the Unicode standard. Use English keywords.

Why does clicking an emoji show a green overlay?

Visual confirmation that the copy succeeded. The overlay holds for 1.5 seconds (setTimeout(() => setCopiedEmoji(null), 1500)), then fades. The toast on the side confirms the specific character that was copied.

Try Emoji Picker now: Coming Soon: Emoji Picker

Related Tools

  • Coming Soon: ASCII Table — Look up character codes for non-emoji characters in the ASCII range.
  • Coming Soon: Random Picker — Randomly select from a custom list.
Last updated: February 27, 2026

Keep Reading

More ArticlesTry Emoji Picker