Emoji Picker & Search
Search and copy emojis by name or category.
Reviewed by Aygul Dovletova · Last reviewed
How to Use the Emoji Picker
- Browse or search: start typing in the search box at the top ("fire", "dog", "party") to filter by name or keyword, or use the category tabs (Smileys, People, Animals, Food, Travel, Activities, Objects, Symbols, Flags) to scroll a specific group.
- Click an emoji to copy it. A brief "Copied!" badge confirms the write to your clipboard; the emoji is also added to the Recently Used row at the top.
- Paste anywhere with
Ctrl+Von Windows/Linux orCmd+Von macOS. The clipboard holds a single Unicode grapheme cluster, so it works in chat apps, docs, IDEs, and terminals that render emoji. - Re-use fast: the Recently Used row keeps your last several picks for one-click access in this tab session. It resets when you reload the page.
- Mix into longer text by clicking several emojis in sequence - each click replaces the clipboard with the latest emoji, so alternate click-and-paste if you want a string of mixed emoji.
How the Picker Works Under the Hood
Every emoji in the grid is a string of one or more Unicode code points. Clicking calls the browserโs navigator.clipboard.writeText() API, which needs a secure context (HTTPS or localhost) and is exposed by Chrome, Firefox, Safari, and Edge. The picker stores the emoji list as plain JavaScript data, not as images - so what you see is rendered by whichever emoji font your operating system ships with: Apple Color Emoji on macOS/iOS, Segoe UI Emoji on Windows, Noto Color Emoji on Android and most Linux distributions, Twemoji on X (formerly Twitter) and Discord, Fluent Emoji on newer Windows, and JoyPixels or EmojiOne on some chat platforms.
Thatโs why the same emoji can look different on your friendโs phone - the code point is identical, but the rendering font isnโt. Search uses a precomputed keyword index: each emoji has a short list of aliases ("grinning", "happy", "smile") and typing filters against that list case-insensitively. Filtering runs synchronously in the current event loop on a small dataset, so updates feel instant.
When the Picker Beats the OS Option
- On Linux, where native emoji input is often buried behind IBus or ibus-emoji-picker configuration.
- Inside web apps that swallow OS keyboard shortcuts (some IDEs, Figma, Notion with certain extensions active).
- On a desktop browser where macOS Ctrl+Cmd+Space or Windows Win+. feels slower than a searchable grid already on screen.
- When you need to see many emoji at once to pick the right skin tone, hand shape, or flag.
- On a borrowed machine where you canโt change keyboard settings but still need to drop a heart or check mark into a document.
- For copying a specific Unicode code point sequence (e.g. a ZWJ family emoji) that the OS picker collapses or rewrites.
Emoji Edge Cases That Trip Up Text
Most "why does my emoji look weird" problems come from three places. First, variation selectors: characters like โ (BLACK SUN WITH RAYS, U+2600) render monochrome or full-color depending on whether they are followed by U+FE0F (Variation Selector-16). Second, ZWJ sequences: family, professional, and combined emojis like "woman technologist" are multiple code points glued with U+200D (Zero Width Joiner), and renderers that donโt know a specific sequence show each component separately. Third, skin-tone modifiers U+1F3FB through U+1F3FF only work on emojis the spec marks modifiable; applying a tone to "pizza" has no effect. Older Android, older macOS, and Windows 7 show tofu (โก) for any code point their font doesnโt know.
How Unicode Organizes Emoji
Emoji are part of the Unicode Standard, coordinated by the Unicode Consortium. The definitive emoji spec is UTS #51 ("Unicode Technical Standard #51: Unicode Emoji"), which defines which code points are emojis, their default presentation (text vs. emoji), valid modifier combinations, and canonical ZWJ sequences. Emojis occupy several blocks: Miscellaneous Symbols (U+2600-U+26FF) and Dingbats (U+2700-U+27BF) for early ones; Emoticons (U+1F600-U+1F64F) for faces; Miscellaneous Symbols and Pictographs (U+1F300-U+1F5FF); Transport and Map Symbols (U+1F680-U+1F6FF); Supplemental Symbols and Pictographs (U+1F900-U+1F9FF); Symbols and Pictographs Extended-A (U+1FA70-U+1FAFF) for the newest additions. The skin-tone modifier block sits at U+1F3FB-U+1F3FF. Flags are not single code points but regional indicator pairs (two letters in the U+1F1E6-U+1F1FF range; "US" = ๐บ๐ธ). New emoji are proposed annually; acceptance requires evidence of demand, visual distinctiveness, and semantic value.
Versus Other Ways to Input Emoji
The OS-native pickers are excellent once you know the shortcut: Win+. or Win+; on Windows 10/11, Ctrl+Cmd+Space on macOS, the emoji key on GBoard and iOS keyboards, Ctrl+. in Google Docs. Theyโre faster for single inserts and offer fuzzy search. A web picker wins when youโre already in a browser and want a larger browse view, or when the OS picker isnโt available (Linux without extra setup, locked-down work machines). For developers, typing the Unicode escape directly (\\u{1F600} in modern JavaScript, 😀 in HTML) gives exact control. Tools like Emojipedia are better for researching variants and platform differences, while Slack, Discord, and iMessage autocomplete handle the "Iโm already typing" case. This tool fills the niche of a fast, searchable, no-install grid for one-off copies.
Frequently Asked Questions
Why does the same emoji look different on my phone and my laptop?
Because each platform renders emoji with its own font. The Unicode code point is identical, but Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, and Twemoji each draw their own art. Send 😀 from an iPhone to an Android and the bytes don’t change; the pixels do. This is working as designed - the emoji spec intentionally lets platforms style their own glyphs.
Why does clipboard copy sometimes fail?
The <code>navigator.clipboard.writeText()</code> API requires a secure context (HTTPS or <code>localhost</code>) and an active user gesture. Privacy-focused browsers may also require additional permission. If you’re opening the page from a raw <code>file://</code> URL or inside certain sandboxed iframes, the write call will reject. On modern zeroutil.com pages served over HTTPS, the API works in Chrome, Firefox, Safari, and Edge.
What are skin-tone modifiers and why do some emojis ignore them?
Skin-tone modifiers are five code points in the range U+1F3FB to U+1F3FF that follow an emoji to request a skin tone (based on the Fitzpatrick scale). They only apply to emojis that Unicode has declared modifiable - mostly human figures and body parts. Apply one to a non-human emoji like a pizza and renderers simply display the pizza plus the tone block separately, because there is no defined combination.
Why is the family emoji sometimes two or three separate people?
Family, profession, and couple emojis are ZWJ (Zero Width Joiner, U+200D) sequences - multiple emoji glued by U+200D. Fonts that don’t know the specific sequence fall back to rendering each component separately. So "family: woman, woman, girl, boy" can show as four individual emojis on an older Android where the combined glyph isn’t in the shipped Noto Color Emoji version.
How are flag emojis encoded?
Flags are not single code points. Each flag is a pair of regional indicator symbols from U+1F1E6-U+1F1FF (one per letter A-Z). So the US flag is the pair "US": U+1F1FA (regional indicator U) followed by U+1F1F8 (regional indicator S), rendered as 🇺🇸 by fonts that know the combination. Fonts that don’t will show two boxed letters instead of a flag.
What is a variation selector (VS16) and when do I need it?
Some characters existed in Unicode as plain symbols long before they were emojis. Adding U+FE0F (Variation Selector-16) after such a character requests the emoji-style colored presentation; omitting it can render the text-style black-and-white glyph. The heart character U+2764 is a common example: ❤ vs ❤️. Web apps sometimes strip VS16 and then complain that hearts look wrong.
Does searching for an emoji send my query anywhere?
No. The picker ships with a small JSON dictionary of emoji names and aliases, and typing filters that list locally in the browser. There is no fetch, no analytics event attached to the query, and no outbound traffic.
How many emojis does Unicode define?
As of recent UTS #51 revisions, roughly 3,800 emoji code points are defined, plus thousands more ZWJ sequences that decompose into components. This picker includes a curated subset of the most common ones; for exhaustive browsing, Emojipedia is the reference.
Why are some emojis missing from this picker?
We include the most frequently used emojis to keep the UI responsive and the bundle small. Very new additions, niche variants, every ZWJ combination, and every skin-tone variant would multiply the grid into the thousands and hurt usability.
Can I paste the emoji into source code?
Yes, into any file saved as UTF-8. You can also convert it to an escape (<code>\u{1F600}</code> in JS/TS, <code>\N{GRINNING FACE}</code> in Python, <code>&#x1F600;</code> in HTML) if you want the code to stay pure ASCII for grepping or older toolchains.
What should I do if my browser renders tofu boxes for some emojis?
Tofu (□) means the character is valid but your installed fonts lack a glyph for it. Update your OS, or install a current emoji font: Noto Color Emoji on Linux, the latest Segoe UI Emoji on Windows, or a recent macOS. The code point is still correct.
More Text Tools
Binary to Text
Convert text to binary and binary back to text.
Open toolCase Converter
Convert text between UPPER, lower, Title, Sentence, camelCase, snake_case and more.
Open toolCharacter Counter
Count characters with platform-specific limits for Twitter, Instagram and more.
Open toolFancy Text Generator
Generate stylish text with bubbles, squares, upside down and more for social media.
Open toolFind & Replace
Find and replace text with regex support and case-sensitive options.
Open toolHTML to Markdown
Convert HTML to clean Markdown text.
Open tool