CruxDevCruxDev Tools Prompts
text Utility • Zero-Server Privacy • 100% Client-Side

Emoji Picker & Search

Search 100+ emojis by name, click to copy instantly, and revisit your recently used ones.

Overview

Search a curated set of 110 common emojis by name and click to copy them straight to your clipboard. The picker keeps a running list of your recently copied emojis in your browser's local storage, so the ones you actually use float to the top next time you visit.

How It Works

Start typing a name in the search box — 'fire', 'heart', 'rocket' — and the grid filters as you type, with a live count of matching emojis. Click any emoji and two things happen: the character is written to your clipboard via the browser's clipboard API, and it is prepended to your Recently copied row, which holds the last eighteen picks and persists between visits. Recents are clickable too, so re-copying your usual set is one tap each.

Step-by-Step Usage Guide

  1. Type an English keyword in the search box; the count under the box shows how many emojis match.
  2. Clear the search to browse the full grid of 110.
  3. Click an emoji — it copies immediately and appears in the Recently copied row.
  4. Click a recent to copy it again; recents survive page reloads and browser restarts.

Technical Specifications & Standards

The emoji set is a fixed table of 110 entries defined in the component, each stored as its Unicode escape plus an English name used for substring search — there is no emoji-name database or CDN call, and the grid renders from that array directly. A few entries are actually two code points: the heart, warning and gear carry U+FE0F VARIATION SELECTOR-16 after the base character, which requests emoji presentation instead of the plain text rendering those code points (U+2764, U+26A0, U+2699) get by default. That invisible selector is why a copied heart sometimes looks different across platforms, and why the copied string is occasionally two characters long. Recents live under the key cruxdev-emoji-recent in localStorage as a JSON array, deduplicated and capped at eighteen. Limitations to know: search matches English names only, there are no skin-tone or ZWJ sequences (no family, profession or skin-tone variants), and if clipboard permission is denied the click silently does nothing rather than showing an error.

Targeted Use Cases

  • Dropping reaction emojis into commit messages, pull-request reviews and chat threads without opening the OS emoji panel.
  • Quickly re-copying a small working set of emojis for a changelog or documentation convention (check, cross, warning).
  • Finding the correct emoji for a status label by searching its English name instead of scrolling a system keyboard.
  • Grabbing an emoji's plain character for use in a text file, README or spreadsheet cell.

Notes & Gotchas

  • Remember some picks are two code points — if a tool counts characters, the heart with its variation selector counts as two.
  • Do not use emoji as the only indicator of meaning in documentation or status UI; pair them with words for screen-reader users.
  • Search by simple English names ('star', 'fire'); long or compound names may not match.
  • Clear your browser's local storage for the site if you want the recents row to reset.

Frequently Asked Questions

Where are skin tones and family emojis?

The set is a curated 110 common emojis and does not include ZWJ sequences or skin-tone modifiers. Those variants are built by joining several code points with invisible joiners, which many plain-text targets handle badly, so they were left out.

Why does a copied heart contain an invisible extra character?

The heart is stored as U+2764 followed by U+FE0F, a variation selector that asks for the colourful emoji presentation. The selector is invisible but real; pasted strings with it are two characters long, which matters for length limits and counters.

Are my recently used emojis sent anywhere?

No. The recents list is saved in your browser's localStorage under cruxdev-emoji-recent and never leaves your device. Clearing site data clears the list.

Why did clicking an emoji not copy anything?

The tool uses the asynchronous clipboard API, which needs a secure (https) page and clipboard permission. If the browser blocks it, the click fails silently — check the permission prompt or copy manually from the grid.