⌨️

Emoji Unicode Table

The 58 emoji people look up most often, with the values you actually need when writing code: the Unicode codepoint, the HTML entity, the CSS content escape, the JavaScript string escape, and the shortcode used by Slack, Discord and GitHub. Click any value to copy it. All 1,867 emojis are covered in the per-category tables below.

Many emoji are multi-codepoint sequences rather than single characters — country flags are two Regional Indicator letters, and emoji with skin tones or gender are the base character plus a modifier joined by U+200D. The codepoint column shows the full sequence, which is what you need to reproduce the emoji exactly.

58 emojis

EmojiNameCodepointHTMLCSSJavaScriptShortcode
😅Grinning Face with SweatU+1F605😅\1F605\u{1F605}:sweat_smile:
🤣Rolling on the Floor LaughingU+1F923🤣\1F923\u{1F923}:rolling_on_the_floor_laughing:
😂Face with Tears of JoyU+1F602😂\1F602\u{1F602}:joy:
🙃Upside-down FaceU+1F643🙃\1F643\u{1F643}:upside_down_face:
🫠Melting FaceU+1FAE0🫠\1FAE0\u{1FAE0}:melting_face:
🥰Smiling Face with HeartsU+1F970🥰\1F970\u{1F970}:smiling_face_with_3_hearts:
😍Smiling Face with Heart-eyesU+1F60D😍\1F60D\u{1F60D}:heart_eyes:
🤔Thinking FaceU+1F914🤔\1F914\u{1F914}:thinking_face:
🫡Saluting FaceU+1FAE1🫡\1FAE1\u{1FAE1}:saluting_face:
🤨Face with Raised EyebrowU+1F928🤨\1F928\u{1F928}:face_with_raised_eyebrow:
😏Smirking FaceU+1F60F😏\1F60F\u{1F60F}:smirk:
🙄Face with Rolling EyesU+1F644🙄\1F644\u{1F644}:face_with_rolling_eyes:
🥵Hot FaceU+1F975🥵\1F975\u{1F975}:hot_face:
🥶Cold FaceU+1F976🥶\1F976\u{1F976}:cold_face:
🤯Exploding HeadU+1F92F🤯\1F92F\u{1F92F}:exploding_head:
🥳Partying FaceU+1F973🥳\1F973\u{1F973}:partying_face:
😎Smiling Face with SunglassesU+1F60E😎\1F60E\u{1F60E}:sunglasses:
🤓Nerd FaceU+1F913🤓\1F913\u{1F913}:nerd_face:
🥺Pleading FaceU+1F97A🥺\1F97A\u{1F97A}:pleading_face:
😭Loudly Crying FaceU+1F62D😭\1F62D\u{1F62D}:sob:
😩Weary FaceU+1F629😩\1F629\u{1F629}:weary:
🥱Yawning FaceU+1F971🥱\1F971\u{1F971}:yawning_face:
💀SkullU+1F480💀\1F480\u{1F480}:skull:
🤡Clown FaceU+1F921🤡\1F921\u{1F921}:clown_face:
💖Sparkling HeartU+1F496💖\1F496\u{1F496}:sparkling_heart:
💕Two HeartsU+1F495💕\1F495\u{1F495}:two_hearts:
💔Broken HeartU+1F494💔\1F494\u{1F494}:broken_heart:
❤️Red HeartU+2764 U+FE0F❤️\2764\FE0F\u2764\uFE0F:heart:
💜Purple HeartU+1F49C💜\1F49C\u{1F49C}:purple_heart:
🖤Black HeartU+1F5A4🖤\1F5A4\u{1F5A4}:black_heart:
💯Hundred PointsU+1F4AF💯\1F4AF\u{1F4AF}:100:
💥CollisionU+1F4A5💥\1F4A5\u{1F4A5}:boom:
👋Waving HandU+1F44B👋\1F44B\u{1F44B}:wave:
👌OK HandU+1F44C👌\1F44C\u{1F44C}:ok_hand:
🤌Pinched FingersU+1F90C🤌\1F90C\u{1F90C}:pinched_fingers:
✌️Victory HandU+270C U+FE0F✌️\270C\FE0F\u270C\uFE0F:v:
🤞Crossed FingersU+1F91E🤞\1F91E\u{1F91E}:crossed_fingers:
👍Thumbs UpU+1F44D👍\1F44D\u{1F44D}:+1:
👏Clapping HandsU+1F44F👏\1F44F\u{1F44F}:clap:
🙌Raising HandsU+1F64C🙌\1F64C\u{1F64C}:raised_hands:
🙏Folded HandsU+1F64F🙏\1F64F\u{1F64F}:pray:
💪Flexed BicepsU+1F4AA💪\1F4AA\u{1F4AA}:muscle:
🧠BrainU+1F9E0🧠\1F9E0\u{1F9E0}:brain:
👀EyesU+1F440👀\1F440\u{1F440}:eyes:
🤷Person ShruggingU+1F937🤷\1F937\u{1F937}:shrug:
🐐GoatU+1F410🐐\1F410\u{1F410}:goat:
🥀Wilted FlowerU+1F940🥀\1F940\u{1F940}:wilted_flower:
🍑PeachU+1F351🍑\1F351\u{1F351}:peach:
🍆EggplantU+1F346🍆\1F346\u{1F346}:eggplant:
🚀RocketU+1F680🚀\1F680\u{1F680}:rocket:
StarU+2B50⭐\2B50\u2B50:star:
High VoltageU+26A1⚡\26A1\u26A1:zap:
🔥FireU+1F525🔥\1F525\u{1F525}:fire:
SparklesU+2728✨\2728\u2728:sparkles:
🎉Party PopperU+1F389🎉\1F389\u{1F389}:tada:
🎯BullseyeU+1F3AF🎯\1F3AF\u{1F3AF}:dart:
🧢Billed CapU+1F9E2🧢\1F9E2\u{1F9E2}:billed_cap:
⚠️WarningU+26A0 U+FE0F⚠️\26A0\FE0F\u26A0\uFE0F:warning:

Using these values

HTML entity works anywhere HTML is parsed and survives systems that mangle raw UTF-8. CSS escape goes inside a content property, e.g.content: "\\1F602" — note that CSS escapes need a trailing space or a following non-hex character so the parser knows where the escape ends. JavaScript escape uses the\\u{…} form for anything above U+FFFF; the older surrogate-pair form works too but is harder to read.

Why some emoji look wrong

Emoji that predate Unicode 6.0 have both a text and an emoji presentation, and default to the flat black-and-white text form. Appending U+FE0F (the variation selector) forces the colour version — this is the single most common emoji rendering bug on the web, and it is why and ⚠️ look different despite being the same base character.