iamcal.com

48

Using Emoji in Web Apps

By Cal Henderson, October 21st 2009.

iPhone Screenshot

If you haven't been locked in a small box for the past year, then you'll be familiar with the screenshot on the left - the Emoji keyboard on the iPhone. If you haven't unlocked yours yet, just go into the app store and search for 'emoji' to find an app.

Emoji is the Japanese term for small emoticon pictures. The word 'e moji' literally means 'picture letter'. They've seen widespread adoption in the Japanese mobile market, with multiple providers adding the ability to send these pictograms as part of text messages, emails and on web pages.

This is achieved via the Unicode Private Use character space, a large set of code points where vendors can define their own meanings. This is all well and good, but of course nobody agrees on what code points should mean which pictures.

The players in the space for the most part were NTT DoCoMo, KDDI/Au and Softbank/Vodafone. More recently, Apple have added emoji support to the iPhone and Google to the Android mobile operating system. While Apple chose to use the Softbank/Vodafone mappings, all of the others are distinct, creating four different standards.

Using Emoji

Exchanging little pictures in SMS is pretty fun for while, but why should that fun be limited to SMS? If we're building web apps which receive data from mobile devices or display data on them, we should be able to leverage these little critters. We can even create them ourselves as iconography without the cost of creating and serving image files.

But this isn't trivial - different devices use different code points (an iPhone can't display a smiley face entered on an Android phone) and people will be using your web app with a regular desktop browser too. Luckily, there's a reasonable solution to all these problems.

The Unified Set

There's a Unicode proposal from folks at Google and Apple to standardize emoji down to a single set of code points. While these code points haven't yet been formalized, this proposal contains a way to map each of the four different schemes. By using this unified mapping internally within our application, we can convert from any input scheme to any other output scheme.

At input time, we need to know where the data has come from, since some of the different sets overlap - both Softbank's 'frog face' and KDDI's 'small white square' are represented by U+E531. If we convert from the native encoding to the unified encoding for storage, we don't need to store the format. At output time, we can detect which platform we're delivering content to and convert from the unified set to the platform specific set.

Not all of the platform's emoji sets are equal though, so some symbols appear in only one set, or appear multiple times. For instance, KDDI has an emoji called 'large white square' with a code point of U+E548. DoCoMo doesn't have any equivalent at all, while Softbank has U+E21B meaning 'white rounded square' which can be used in its place. The proposal includes one-way mappings for some missing characters and replacement text for others - while all emoji are not supported by all platforms, there is a recommended replacement for them.

Back to the desktop

This is all well and good, but what should we do if someone enters emoji on their device which we want to display to non-mobile users? The unified set are Unicode code points which are defined by some fonts, but the pictures will be monotone and are missing from most common web fonts.

With a smart bit of output-processing, we can replace characters from the unified set with HTML to show inline images. At display time, our code can search for instances of the UTF-8 byte sequence 0xE2 0x98 0xBA (known to friends as U+263A, the smiley face) and replace them with <img src="/emoji/smiley_face.gif" class="emoji" />, or whatever HTML we wish to use.

Speed Concerns

The unified set is pretty big, covering 772 characters. Performing a search and replace at display time is going to take a couple of milliseconds, so for heavily trafficked applications, we might need to start worrying about performance. Luckily there are a few tricks.

Assuming most of your content doesn't contain emoji, you can add an extra field to your database rows called contains_emoji. By setting this at insert time, you can only spend time transcoding the emoji at output time if there are actually any in there.

If your application has lots and lots of emoji content, then storing multiple versions of your content with different emoji formats in might make sense. If you know you're primarily serving to DoCoMo users, then store both a unified and a DoCoMo copy. When you need to serve to DoCoMo, use that version, else convert from the unified version.

A library to make it all happen

I've put together a simple PHP library to abstract all of the messiness away. Just include it in your application and start detecting emoji right away. Instructions are included in the readme file.

Post-Script

While I'm a bit of a Unicode nerd, I'm no expert. The above article may contain mistakes or fail to mention very important things. If you spot any glaring mistakes or omissions, drop me an email and teach me: cal [at] iamcal.com

Copyright © 2009 Cal Henderson.

The text of this article is all rights reserved. No part of these publications shall be reproduced, stored in a retrieval system, or transmitted by any means - electronic, mechanical, photocopying, recording or otherwise - without written permission from the publisher, except for the inclusion of brief quotations in a review or academic work.

All source code in this article is licensed under the GPL v3.

48 people have commented

loranger
# December 17, 2009 - 2:16 pm PST
You did an awesome job by listing all the emoji codes. Thank you
Jean-Paul Horn
# December 25, 2009 - 2:39 pm PST
Is there any chance this could be made into a WordPress plugin? A lot of our users are putting emoji's in their comments and this could be a very welcome plugin. I'd like to commission this if this is feasible (please contact me by email to discuss)
Chris
# December 27, 2009 - 1:47 pm PST
For people using Chrome can also try Emoji for Chrome that is developed by us.

Install the extension and you can now see emoji for twitter or other website.

<a href="https://chrome.google.com/extensions/detail/fbgkphlalcbmifhkabdbodaghlhfcbbd">chrome.google.com/extensions/detail/fbgkphlalcbmifhkabdbodaghlhfcbbd</a>

<a href="https://twitter.com/chrome_emoji">twitter.com/chrome_emoji</a>
iPhoned
# February 24, 2010 - 11:39 am PST
Great way to standardize the Emoji, this PHP library is very worthfull. Have not yet seen the Emoij within the sms/email application of the (standard)iPhone software, but this is great step forward.
gumgl
# March 28, 2010 - 8:48 am PST
GREAT SUCCESS!

I was trying to encode emojis in my sql database using htmlentities() but it wasn't working.
Thank you for this library.
ccliana
# July 10, 2010 - 11:39 am PST
what do the japanese symbols in the colored squares mean?
Cal
# July 12, 2010 - 9:50 am PST
ccliana: They're all explained on this page: <a href="http://www.unicode.org/~scherer/emoji4unicode/20090804/utc.html">www.unicode.org/~scherer/emoji4unicode/20090804/utc.html</a>
Timothy
# July 15, 2010 - 2:18 pm PST
First attack of the grammarnazi - it's worthwhile iPhoned. No need to make new words when established ones will suffice. :D

I'm looking forward to finding a way to use this in a web app.

Presuming that the squares that show up on phones when you send iPhone emojis to other models have some code behind them surely it would be possible to write an Android app to recieve/decode iPhone emojis and vice versa using the info from this page?
Timothy
# July 15, 2010 - 2:20 pm PST
Just so that I don't get accused of falling short of my own standards I'd like to point out that the first sentence of my last comment should read:

First: Attack of the Grammarnazi! It's "worthwhile", iPhoned.
William
# July 19, 2010 - 7:25 am PST
I used emoji on my ipod touch and it broke I know play those games and use PalRingo on my Droid x. How do I get the emoji to show up? Thank you for your assistance.
chuck
# July 23, 2010 - 3:25 pm PST
Great job! Just used this to render emoji images on a team site for an iPhone game. Thanks a million!
Dao Hoang Son
# August 9, 2010 - 3:13 pm PST
Anybody knows which sets are being used in Facebook?
wiley
# August 26, 2010 - 3:10 pm PST
These are really handy when you have an embeddable twitter feed and you like to use emoji when tweeting from your phone.

There's also a russian jquery plugin out there that attempts to do the same thing, but it's a little quirky and I needed to tinker with it a while before it worked for me.

<a href="http://plugins.jquery.com/project/emoji">plugins.jquery.com/project/emoji</a>
Annie
# February 18, 2011 - 2:51 pm PST
Too many words
andrew
# March 20, 2011 - 10:17 pm PST
is there any way to create new icons and send them to other iphones? the emoji's today don't have all the symbols i'd like to use...
Cal
# March 22, 2011 - 8:28 pm PST
No, you're stuck with what's already there. Of course, you can just use images if it's a web or native app. Only SMS is limited to the built-in emoji.
Bender
# April 27, 2011 - 7:48 pm PST
ccliana: You can look up what each iphone emoji means here: <a href="http://iemoji.com/browse/emoji/category/smileys">iemoji.com/browse/emoji/category/smileys</a>

Also if you find emoji on the web or in an email and all you see is boxes; you can cut and paste the emoji characters into <a href="http://iemoji.com">iemoji.com</a> and they will be converted for you.
Iphone abonnement vergelijken
# May 24, 2011 - 10:02 am PST
I've never seen the need to supply more smileys than we already have using the standard ':D/:)' and the thousand or so variations of those.
Amé
# July 5, 2011 - 7:56 pm PST
ok am no big geek but i wana know how to chat using palringo app on PC & on an adroid (Nexus S) phone seeing and typing a few emoji i like.
Is this possible and how? (if i can do so, then i give up on my iphone and enter the droid world, thats the issue)
Alvin
# September 1, 2011 - 6:33 pm PST
Try this chrome extension. It also works.

<a href="https://chrome.google.com/webstore/detail/aepnepljbnakkkhjegpdklnmccdnadjj">chrome.google.com/webstore/detail/aepnepljbnakkkhjegpdklnmccdnadjj</a>
plowman
# September 29, 2011 - 1:02 pm PST
Is there any IP issue with using these emoji images in for-profit stuff? I can't tell if these emoji were created by Apple or if they are some open-licensed set.
Cal
# September 29, 2011 - 1:35 pm PST
That's a good question - I don't know. They are the icons used on the iPhone, but their provenance is unclear.
Mahlhavoc
# October 22, 2011 - 10:54 am PST
Can you assist me in doing this for Android? I know its just a matter of telling the phone "x=emoji.png y", but I have no idea how to convert it.

<a href="http://forum.xda-developers.com/showthread.php?t=1093197">forum.xda-developers.com/showthread.php?t=1093197</a>

I thread I did to mess with the fonts to see as much as I can but it is black and white. There are 10s of thousands of people who would like to see emoji through all apps on the Android if possible.

Is this the deal?
<a href="http://obviam.net/index.php/using-bitmap-fonts-in-android/">obviam.net/index.php/using-bitmap-fonts-in-android</a>

Thanks!
Danny
# November 19, 2011 - 4:19 am PST
How can I check if a message contains an Emoji? Didn't find a regex in PHP to check this.

From an iPhone App a message is sent to an external PHP script. But curiously:

$_POST["message"] == emoji_softbank_to_unified($_POST["message"])

Hmmm, get really stucked with this.

BTW: I managed to save the Emoji message to a MySQL database only with utf8mb4.
Danny
# November 19, 2011 - 5:29 am PST
Okay, seems that iOS 5 uses the Unicode 6.0 standard "unified" code, so no conversion is needed.
å•Šå•Š
# December 18, 2011 - 6:41 pm PST
🏃👫🚶👏💁
Sharon
# March 24, 2012 - 1:59 pm PST
What app do i need to see emoticons sent to me in just one app- City Story. I have an android tablet and the emoticons are being sent to me on ipads and iphones.
Sharon
# March 24, 2012 - 1:59 pm PST
What app do i need to see emoticons sent to me in just one app- City Story. I have an android tablet and the emoticons are being sent to me from ipads and iphones.
terica
# May 8, 2012 - 12:31 pm PST
Hi I'm looking for a good programmer to build an app similar to this for me. Please contact. <a href="mailto:tericag11@gmail.com";>tericag11@gmail.com<;/a>
Kholmann
# November 11, 2012 - 12:09 pm PST
Hello Cal,

How can one detect the emoji format of an incoming SMS data stream, as one of these formats? :

NTT DoCoMo
KDDI/Au
Google
Apple/Softbank/Vodafone

The library assumes that one knows the incoming format, hence methods such as:

$data = emoji_docomo_to_unified( $data ) ;

Is there a way to do something like this? :

$format = get_emoji_format( $data ) ;

where $format is (for example) one of: ["docomo", "kddi", "google", "apple"]

Thank you Cal, for this great work !
kayla
# September 5, 2013 - 12:14 pm PST
Great
Richard
# February 12, 2014 - 3:43 pm PST
This chrome extension works to both input and decode emoji

<a href="https://chrome.google.com/webstore/detail/emoji-input/immhpnclomdloikkpcefncmfgjbkojmh/reviews?hl=en-US">chrome.google.com/webstore/detail/emoji-input/immhpnclomdloikkpcefncmfgj...</a>
Alex
# April 4, 2015 - 4:39 pm PST
This is pretty cool. The underlying mechanism does have a weakness where using a browser's zoom-in/out (changing font size) can't resize the emoji, since they're defined as pixel-by-pixel subzones of an shared image. This kills some interfaces (my website is nearly pixel-independent), but for the majority, it works well enough, and is a pretty good trade for the reduction in connections to get individual images.
Vitalii
# May 6, 2015 - 1:36 am PST
Send Push with Emoji

Get code:
<a href="http://code.iamcal.com/php/emoji/">code.iamcal.com/php/emoji</a> (U+1F48E)

Lookup:
(change U+ to 0x: 0x1F48E, and Lookup)
<a href="http://unicodelookup.com/">unicodelookup.com</a>

copy returned symbol and paste to your text.
Chad Garrett
# October 22, 2015 - 5:37 am PST
You can in fact change the display size of these emoji by using the zoom for webkit/ie and transform:scale for Firefox(-moz-) and Opera(-o-) for cross-browser desktop & mobile. See here where I found the details:
<a href="http://stackoverflow.com/questions/2430206/how-can-i-scale-an-image-in-a-css-sprite">stackoverflow.com/questions/2430206/how-can-i-scale-an-image-in-a-css-sp...</a>

For older browsers that don't support that, you get the current behavior.
Madhur Matka
# May 5, 2016 - 8:16 pm PST
Hi
Satta Matka
# May 5, 2016 - 8:16 pm PST
Hi 🙋
Madhur Matka
# May 9, 2016 - 10:42 am PST
130 x 47 x 467
Satta Matka
# May 9, 2016 - 10:43 am PST
Hiiiiiii
Kalyan Matka
# May 9, 2016 - 10:43 am PST
130 x 47 x 467
Satta Matka
# May 9, 2016 - 10:44 am PST
130 x 47 x 467
Testik
# October 5, 2016 - 11:58 pm PST
🎅🏽🎅🏼🎅🏻🎅🏾🚼✌🏻😉👍😂😊😃😃😀😎😎😗
iOS test
# October 12, 2016 - 6:03 pm PST
🙋🏼‍♂️🙎🏾‍♂️🏃‍♀️👃🏾
iOS test
# October 12, 2016 - 6:04 pm PST
Looks like the new iOS10 emoticons cannot be captured by your lib, sorry bud.
iOS test
# October 13, 2016 - 7:30 am PST
😊😜😄🙂🙃😟🙃👥👄👀👱👦🏻🚶🏻‍♀️🚶🏻👩‍❤️‍💋‍👩💏👨‍👩‍👧👩‍❤️‍💋‍👩👒🎩👘👝👘👝👘
Echo
# December 9, 2016 - 12:06 am PST
👮🏿‍♂️👮‍♀( ̄▽ ̄)~*🀃🀎🀘🀣🀤☺️😋☺️😣😕😔😡😠😶😙😊😀😘😏😟😞😣😰😰😲🤒
Wow
# December 23, 2016 - 8:25 am PST
:bowtie:
TackOnes1
# January 19, 2017 - 6:55 pm PST
selected emoji is copied automatically!

People
Face

😀 😁 😂 😃 😄 😅 😆 😇 😈 👿 😉 😊 ☺️ 😋 😌 😍 😎 😏 😐 😑 😒 😓 😔 😕 😖 😗 😘 😙 😚 😛 😜 😝 😞 😟 😠 😡 😢 😣 😤 😥 😦 😧 😨 😩 😪 😫 😬 😭 😮 😯 😰 😱 😲 😳 😴 😵 😶 😷 🙁 🙂 😸 😹 😺 😻 😼 😽 😾 😿 🙀 👣 👤 👥 👦 👧 👨 👩 👨‍👩‍👦 👨‍👩‍👧 👪 👨‍👩‍👦‍👦 👨‍👩‍👧‍👧 👩‍👩‍👦 👩‍👩‍👧 👩‍👩‍👧‍👦 👩‍👩‍👦‍👦 👩‍👩‍👧‍👧 👨‍👨‍👦 👨‍👨‍👧 👨‍👨‍👧‍👦 👨‍👨‍👦‍👦 👨‍👨‍👧‍👧 👫 👬 👭 👮 👯 👰 👱 👲 👳 👴 👵 👶 👷 👸 💂 👼 🎅 👻 👹 👺 💩 💀 👽 👾 🙇 💁 🙅 🙆 🙋 🙎 🙍 💆 💇 💑 👩‍❤️‍👩 👨‍❤️‍👨 💏 👩‍❤️‍💋‍👩 👨‍❤️‍💋‍👨 💅 👂 👀 👃 👄 💋 👅
Hand Gesture

👋 👍 👎 ☝️ 👆 👇 👈 👉 👌 ✌️ 👊 ✊ ✋ 💪 👐 🙌 👏 🙏 🖐 🖕 🖖
Nature
Back to top

Trees, Plants and Flower

🌱 🌲 🌳 🌴 🌵 🌷 🌸 🌹 🌺 🌻 🌼 💐 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🌰
Animal

🐀 🐁 🐭 🐹 🐂 🐃 🐄 🐮 🐅 🐆 🐯 🐇 🐰 🐈 🐱 🐎 🐴 🐏 🐑 🐐 🐓 🐔 🐤 🐣 🐥 🐦 🐧 🐘 🐪 🐫 🐗 🐖 🐷 🐽 🐕 🐩 🐶 🐺 🐻 🐨 🐼 🐵 🙈 🙉 🙊 🐒 🐉 🐲 🐊 🐍 🐢 🐸 🐋 🐳 🐬 🐙 🐟 🐠 🐡 🐚 🐌 🐛 🐜 🐝 🐞 🐾
Weather, Environment and Space

Back to top

⚡️ 🔥 🌙 ☀️ ⛅️ ☁️ 💧 💦 ☔️ 💨 ❄️ 🌟 ⭐️ 🌠 🌄 🌅 🌈 🌊 🌋 🌌 🗻 🗾 🌐 🌍 🌎 🌏 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌚 🌝 🌛 🌜 🌞
Food and Drink
🍅 🍆 🌽 🍠 🍇 🍈 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 🍙 🍚 🍛 🍜 🍝 🍞 🍟 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 ☕️ 🍶 🍷 🍸 🍹 🍺 🍻 🍼
Celebration
Back to top

Birthdays, Holidays and Occassion

🎀 🎁 🎂 🎃 🎄 🎋 🎍 🎑 🎆 🎇 🎉 🎊 🎈 💫 ✨ 💥 🎓 👑 🎎 🎏 🎐 🎌 🏮 💍
Heart

❤️ 💔 💌 💕 💞 💓 💗 💖 💘 💝 💟 💜 💛 💚 💙
Activity
Back to top

Sport

🏃 🚶 💃 🚣 🏊 🏄 🛀 🏂 🎿 ⛄️ 🚴 🚵 🏇 ⛺️ 🎣 ⚽️ 🏀 🏈 ⚾️ 🎾 🏉 ⛳️ 🏆 🎽 🏁
Music and Performing Arts

🎹 🎸 🎻 🎷 🎺 🎵 🎶 🎼 🎧 🎤 🎭 🎫 🎩 🎪 🎬 🎨
Games and Recreation

🎯 🎱 🎳 🎰 🎲 🎮 🎴 🃏 🀄️ 🎠 🎡 🎢
Travel and Places
Back to top

Trains, Cars, Travel and Transport

🚃 🚞 🚂 🚋 🚝 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🚌 🚍 🚎 🚐 🚑 🚒 🚓 🚔 🚨 🚕 🚖 🚗 🚘 🚙 🚚 🚛 🚜 🚲 🚏 ⛽️ 🚧 🚦 🚥 🚀 🚁 ✈️ 💺 ⚓️ 🚢 🚤 ⛵️ 🚡 🚠 🚟 🛂 🛃 🛄 🛅 💴 💶 💷 💵
Landmarks and Buildings

🗽 🗿 🌁 🗼 ⛲️ 🏰 🏯 🌇 🌆 🌃 🌉 🏠 🏡 🏢 🏬 🏭 🏣 🏤 🏥 🏦 🏨 🏩 💒 ⛪️ 🏪 🏫
Flags

More emoji flags at emojiflags.com

🇦🇺 🇦🇹 🇧🇪 🇧🇷 🇨🇦 🇨🇱 🇨🇳 🇨🇴 🇩🇰 🇫🇮 🇫🇷 🇩🇪 🇭🇰 🇮🇳 🇮🇩 🇮🇪 🇮🇱 🇮🇹 🇯🇵 🇰🇷 🇲🇴 🇲🇾 🇲🇽 🇳🇱 🇳🇿 🇳🇴 🇵🇭 🇵🇱 🇵🇹 🇵🇷 🇷🇺 🇸🇦 🇸🇬 🇿🇦 🇪🇸 🇸🇪 🇨🇭 🇹🇷 🇬🇧 🇺🇸 🇦🇪 🇻🇳
Objects & Symbols
Back to top

Technology

⌚️ 📱 📲 💻 ⏰ ⏳ ⌛️ 📷 📹 🎥 📺 📻 📟 📞 ☎️ 📠 💽 💾 💿 📀 📼 🔋 🔌 💡 🔦 📡 💳 💸 💰 💎
Clothing and Fashion

🌂 👝 👛 👜 💼 🎒 💄 👓 👒 👡 👠 👢 👞 👟 👙 👗 👘 👚 👕 👔 👖
Tools, Envelopes and Stationery

🚪 🚿 🛁 🚽 💈 💉 💊 🔬 🔭 🔮 🔧 🔪 🔩 🔨 💣 🚬 🔫 🔖 📰 🔑 ✉️ 📩 📨 📧 📥 📤 📦 📯 📮 📪 📫 📬 📭 📄 📃 📑 📈 📉 📊 📅 📆 🔅 🔆 📜 📋 📖 📓 📔 📒 📕 📗 📘 📙 📚 📇 🔗 📎 📌 ✂️ 📐 📍 📏 🚩 📁 📂 ✒️ ✏️ 📝 🔏 🔐 🔒 🔓 📣 📢 🔈 🔉 🔊 🔇 💤 🔔 🔕 💭 💬 🚸 🔍 🔎
Signs, Chinese Characters and Letter

Back to top

🚫 ⛔️ 📛 🚷 🚯 🚳 🚱 📵 🔞 🉑 🉐 💮 ㊙️ ㊗️ 🈴 🈵 🈲 🈶 🈚️ 🈸 🈺 🈷 🈹 🈳 🈂 🈁 🈯️ 💹 ❇️ ✳️ ❎ ✅ ✴️ 📳 📴 🆚 🅰 🅱 🆎 🆑 🅾 🆘 🆔 🅿️ 🚾 🆒 🆓 🆕 🆖 🆗 🆙 🏧
Astrological Zodiac Signs

♈️ ♉️ ♊️ ♋️ ♌️ ♍️ ♎️ ♏️ ♐️ ♑️ ♒️ ♓️
Arrows, Numbers and Misc Symbol

Back to top

🚻 🚹 🚺 🚼 ♿️ 🚰 🚭 🚮 ▶️ ◀️ 🔼 🔽 ⏩ ⏪ ⏫ ⏬ ➡️ ⬅️ ⬆️ ⬇️ ↗️ ↘️ ↙️ ↖️ ↕️ ↔️ 🔄 ↪️ ↩️ ⤴️ ⤵️ 🔀 🔁 🔂 #️⃣ 0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟 🔢 🔤 🔡 🔠 ℹ️ 📶 🎦 🔣 ➕ ➖ 〰 ➗ ✖️ ✔️ 🔃 ™ © ® 💱 💲 ➰ ➿ 〽️ ❗️ ❓ ❕ ❔ ‼️ ⁉️ ❌ ⭕️ 💯 🔚 🔙 🔛 🔝 🔜 🌀 Ⓜ️ ⛎ 🔯 🔰 🔱 ⚠️ ♨️ ♻️ 💢 💠 ♠️ ♣️ ♥️ ♦️ ☑️ ⚪️ ⚫️ 🔘 🔴 🔵 🔺 🔻 🔸 🔹 🔶 🔷 ▪️ ▫️ ⬛️ ⬜️ ◼️ ◻️ ◾️ ◽️ 🔲 🔳
Clock

🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛 🕜 🕝 🕞 🕟 🕠 🕡 🕢 🕣 🕤 🕥 🕦 🕧
Skin Color
Back to top

Pale

👦🏻 👧🏻 👨🏻 👩🏻 👮🏻 👰🏻 👱🏻 👲🏻 👳🏻 👴🏻 👵🏻 👶🏻 👷🏻 👸🏻 💂🏻 👼🏻 🎅🏻 🙇🏻 💁🏻 🙅🏻 🙆🏻 🙋🏻 🙎🏻 🙍🏻 💆🏻 💇🏻 💅🏻 👂🏻 👃🏻 👋🏻 👍🏻 👎🏻 ☝🏻 👆🏻 👇🏻 👈🏻 👉🏻 👌🏻 ✌🏻 👊🏻 ✊🏻 ✋🏻 💪🏻 👐🏻 🙌🏻 👏🏻 🙏🏻 🖐🏻 🖕🏻 🖖🏻
Cream White

👦🏼 👧🏼 👨🏼 👩🏼 👮🏼 👰🏼 👱🏼 👲🏼 👳🏼 👴🏼 👵🏼 👶🏼 👷🏼 👸🏼 💂🏼 👼🏼 🎅🏼 🙇🏼 💁🏼 🙅🏼 🙆🏼 🙋🏼 🙎🏼 🙍🏼 💆🏼 💇🏼 💅🏼 👂🏼 👃🏼 👋🏼 👍🏼 👎🏼 ☝🏼 👆🏼 👇🏼 👈🏼 👉🏼 👌🏼 ✌🏼 👊🏼 ✊🏼 ✋🏼 💪🏼 👐🏼 🙌🏼 👏🏼 🙏🏼 🖐🏼 🖕🏼 🖖🏼
Moderate Brown

👦🏽 👧🏽 👨🏽 👩🏽 👮🏽 👰🏽 👱🏽 👲🏽 👳🏽 👴🏽 👵🏽 👶🏽 👷🏽 👸🏽 💂🏽 👼🏽 🎅🏽 🙇🏽 💁🏽 🙅🏽 🙆🏽 🙋🏽 🙎🏽 🙍🏽 💆🏽 💇🏽 💅🏽 👂🏽 👃🏽 👋🏽 👍🏽 👎🏽 ☝🏽 👆🏽 👇🏽 👈🏽 👉🏽 👌🏽 ✌🏽 👊🏽 ✊🏽 ✋🏽 💪🏽 👐🏽 🙌🏽 👏🏽 🙏🏽 🖐🏽 🖕🏽 🖖🏽
Dark Brown Emojis

👦🏾 👧🏾 👨🏾 👩🏾 👮🏾 👰🏾 👱🏾 👲🏾 👳🏾 👴🏾 👵🏾 👶🏾 👷🏾 👸🏾 💂🏾 👼🏾 🎅🏾 🙇🏾 💁🏾 🙅🏾 🙆🏾 🙋🏾 🙎🏾 🙍🏾 💆🏾 💇🏾 💅🏾 👂🏾 👃🏾 👋🏾 👍🏾 👎🏾 ☝🏾 👆🏾 👇🏾 👈🏾 👉🏾 👌🏾 ✌🏾 👊🏾 ✊🏾 ✋🏾 💪🏾 👐🏾 🙌🏾 👏🏾 🙏🏾 🖐🏾 🖕🏾 🖖🏾
Black Emojis

👦🏿 👧🏿 👨🏿 👩🏿 👮🏿 👰🏿 👱🏿 👲🏿 👳🏿 👴🏿 👵🏿 👶🏿 👷🏿 👸🏿 💂🏿 👼🏿 🎅🏿 🙇🏿 💁🏿 🙅🏿 🙆🏿 🙋🏿 🙎🏿 🙍🏿 💆🏿 💇🏿 💅🏿 👂🏿 👃🏿 👋🏿 👍🏿 👎🏿 ☝🏿 👆🏿 👇🏿 👈🏿 👉🏿 👌🏿 ✌🏿 👊🏿 ✊🏿 ✋🏿 💪🏿 👐🏿 🙌🏿 👏🏿 🙏🏿 🖐🏿 🖕🏿 🖖🏿
Extra
download font at the bottom (if you see rectangles)

Back to top

🌡 🌢 🌣 🌤 🌥 🌦 🌧 🌨 🌩 🌪 🌫 🌬 🌶 🍽 🎔 🎕 🎖 🎗 🎘 🎙 🎚 🎛 🎜 🎝 🎞 🎟 🏅 🏋 🏌 🏍 🏎 🏔 🏕 🏖 🏗 🏘 🏙 🏚 🏛 🏜 🏝 🏞 🏟 🏱 🏲 🏳 🏴 🏵 🏶 🏷 🐿 👁 📸 📽 📾 🔾 🔿 🕄 🕅 🕆 🕇 🕈 🕉 🕊 🕨 🕩 🕪 🕫 🕬 🕭 🕮 🕯 🕰 🕱 🕲 🕳 🕴 🕵 🕶 🕷 🕸 🕹 🕻 🕼 🕽 🕾 🕿 🖀 🖁 🖂 🖃 🖄 🖅 🖆 🖇 🖈 🖉 🖊 🖋 🖌 🖍 🖎 🖏 🖑 🖒 🖓 🖔 🖗 🖘 🖙 🖚 🖛 🖜 🖝 🖞 🖟 🖠 🖡 🖢 🖣 🖥 🖦 🖧 🖨 🖩 🖪 🖫 🖬 🖭 🖮 🖯 🖰 🖱 🖲 🖳 🖴 🖵 🖶 🖷 🖸 🖹 🖺 🖻 🖼 🖽 🖾 🖿 🗀 🗀 🗂 🗃 🗄 🗅 🗆 🗇 🗈 🗉 🗊 🗋 🗌 🗍 🗎 🗏 🗐 🗑 🗒 🗓 🗔 🗕 🗖 🗗 🗘 🗙 🗚 🗛 🗜 🗝 🗞 🗟 🗠 🗡 🗢 🗣 🗤 🗥 🗦 🗧 🗨 🗩 🗪 🗫 🗬 🗭 🗯 🗯 🗰 🗱 🗲 🗳 🗴 🗵 🗶 🗷 🗸 🗹 🗺 🛆 🛇 🛈 🛉 🛊 🛋 🛌 🛍 🛎 🛏 🛠 🛡 🛢 🛣 🛤 🛥 🛦 🛧 🛨 🛩 🛪 🛫 🛬 🛰 🛱 🛲 🛳
Extra 2
Back to top

☁ ☺ ☹ ✊ ✋ ☝ ✌ ⚡ ✨ ⭕ ❌ ⭐ ❕ ❔ ❗ ❓ ❄ ☀ ⛅ ☔ ⛄ ☎ ➿ ✂ ⚽ ⚾ ⛳ ♠ ♥ ♣ ♦ ☕ ♤ ♡ ♢ ♧ ⏰ ⏳ ⌛ ⌚ ♨ ✏ ✒ ✉ ⚓ ⛪ ⛺ ⛲ ⛵ ✈ ⛽ ⚠ ⛔  ⬆ ⬇ ⬅ ➡ ↗ ↖ ↘ ↙ ◀ ▶ ⏪ ⏩ ♿ ㊙ ㊗ ✳ ✴ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ⛎ ⭕ ❌ © ® ™ ⏫ ⏬ ↕ ↔ ↩ ↪ ⤴ ⤵ ℹ ❎ Ⓜ ⚫ ⚪ ◼ ◻ ▪ ▫ ✖ ➕ ➖ ➗ ➰ 〰 ♻ ☢ ☣ ☠ ☤ ⚕ ⚚ † ☯ ⚖ ☮ ⚘ ⚔ ☭ ⚒ ⚛ ⚜ ☥ ✠ ✙ ✞ ✟ ✧ ⋆ ★ ☆ ✪ ✫ ✬ ✭ ✮ ✯ ✰ ✡ ☫ ☬ ☸ ✵ ❂ ⚘ ❀ ❃ ❁ ✼ ♫ ♪ ☃ ❅ ❆ ☂ ❦ ♕ ♛ ♔ ♖ ♜ ☾ → ⇒ ⟹ ⇨ ⇰ ➩ ➪ ➫ ➬ ➭ ➮ ➯ ➲ ➳ ➵ ➸ ➻ ➺ ➼ ➽ ☜ ☟ ➹ ➷ ↶ ↷ ✆ ⌘ ⎋ ⏎ ⏏ ⎈ ⎌ ⍟ ❥ ツ ღ ☻

Leave your own comment

Comments have been disabled