While they seem quite new, the first known emoji set was created by Softbank in 1997 for Japanese customers, but only in 2008 Apple introduced support on the Japanese market, with eventually the entire world being able to use them. And while all emoji differ between platforms, most do work when you send them in an email from your Apple device to an Android or Windows device, or displayed on a web page. With one noticeable exception: country flags;

You can see the flags that are represented on macOS quite well, are only two letter codes on Windows. Here is how they are shown on your device:
๐ฆ๐ซ ๐ฆ๐ฑ ๐ฉ๐ฟ ๐ฆ๐ฉ ๐ฆ๐ด ๐ฆ๐ฌ ๐ฆ๐ท ๐ฆ๐ฒ ๐ฆ๐บ ๐ฆ๐น ๐ฆ๐ฟ ๐ง๐ธ ๐ง๐ญ ๐ง๐ฉ ๐ง๐ง ๐ง๐พ ๐ง๐ช ๐ง๐ฟ ๐ง๐ฏ ๐ง๐น ๐ง๐ด ๐ง๐ฆ ๐ง๐ผ ๐ง๐ท ๐ง๐ณ ๐ง๐ฌ ๐ง๐ซ ๐ง๐ฎ ๐จ๐ป ๐ฐ๐ญ ๐จ๐ฒ ๐จ๐ฆ ๐จ๐ซ ๐น๐ฉ ๐จ๐ฑ ๐จ๐ด ๐ฐ๐ฒ ๐จ๐ฉ ๐จ๐ท ๐จ๐ฎ ๐ญ๐ท ๐จ๐บ ๐จ๐พ ๐จ๐ฟ ๐ฐ๐ต ๐จ๐ฌ ๐ฉ๐ฐ ๐ฉ๐ฏ ๐ฉ๐ฒ ๐ฉ๐ด ๐ช๐จ ๐ช๐ฌ ๐ธ๐ป ๐ฌ๐ถ ๐ช๐ท ๐ช๐ช ๐ธ๐ฟ ๐ช๐น ๐ซ๐ฏ ๐ซ๐ฎ ๐ซ๐ท ๐ฌ๐ฆ ๐ฌ๐ฒ ๐ฌ๐ช ๐ฉ๐ช ๐ฌ๐ญ ๐ฌ๐ท ๐ฌ๐ฉ ๐ฌ๐น ๐ฌ๐ณ ๐ฌ๐ผ ๐ฌ๐พ ๐ญ๐น ๐ญ๐ณ ๐ญ๐บ ๐ฎ๐ธ ๐ฎ๐ณ ๐ฎ๐ฉ ๐ฎ๐ท ๐ฎ๐ถ ๐ฎ๐ช ๐ฎ๐ฑ ๐ฎ๐น ๐ฏ๐ฒ ๐ฏ๐ต ๐ฏ๐ด ๐ฐ๐ฟ ๐ฐ๐ช ๐ฐ๐ฎ ๐ฐ๐ผ ๐ฐ๐ฌ ๐ฑ๐ฆ ๐ฑ๐ป ๐ฑ๐ง ๐ฑ๐ธ ๐ฑ๐ท ๐ฑ๐พ ๐ฑ๐ฎ ๐ฑ๐น ๐ฑ๐บ ๐ฒ๐ฌ ๐ฒ๐ผ ๐ฒ๐พ ๐ฒ๐ป ๐ฒ๐ฑ ๐ฒ๐น ๐ฒ๐ญ ๐ฒ๐ท ๐ฒ๐บ ๐ฒ๐ฝ ๐ซ๐ฒ ๐ฒ๐จ ๐ฒ๐ณ ๐ฒ๐ช ๐ฒ๐ฆ ๐ฒ๐ฟ ๐ฒ๐ฒ ๐ณ๐ฆ ๐ณ๐ท ๐ณ๐ต ๐ณ๐ฑ ๐ณ๐ฟ ๐ณ๐ฎ ๐ณ๐ช ๐ณ๐ฌ ๐ฒ๐ฐ ๐ณ๐ด ๐ด๐ฒ ๐ต๐ฐ ๐ต๐ผ ๐ต๐ฆ ๐ต๐ฌ ๐ต๐พ ๐ต๐ช ๐ต๐ญ ๐ต๐ฑ ๐ต๐น ๐ถ๐ฆ ๐ฐ๐ท ๐ฒ๐ฉ ๐ท๐ด ๐ท๐บ ๐ท๐ผ ๐ฐ๐ณ ๐ฑ๐จ ๐ป๐จ ๐ผ๐ธ ๐ธ๐ฒ ๐ธ๐น ๐ธ๐ฆ ๐ธ๐ณ ๐ท๐ธ ๐ธ๐จ ๐ธ๐ฑ ๐ธ๐ฌ ๐ธ๐ฐ ๐ธ๐ฎ ๐ธ๐ง ๐ธ๐ด ๐ฟ๐ฆ ๐ธ๐ธ ๐ช๐ธ ๐ฑ๐ฐ ๐ธ๐ฉ ๐ธ๐ท ๐ธ๐ช ๐จ๐ญ ๐ธ๐พ ๐น๐ฏ ๐น๐ญ ๐น๐ฑ ๐น๐ฌ ๐น๐ด ๐น๐น ๐น๐ณ ๐น๐ท ๐น๐ฒ ๐น๐ป ๐บ๐ฌ ๐บ๐ฆ ๐ฆ๐ช ๐ฌ๐ง ๐น๐ฟ ๐บ๐ธ ๐บ๐พ ๐บ๐ฟ ๐ป๐บ ๐ป๐ช ๐ป๐ณ ๐พ๐ช ๐ฟ๐ฒ ๐ฟ๐ผ
How can these visual representations that are so common not be supported across platforms? And is there a way to make them work anyway?
The organization that standardizes the emoji and their code points is the Unicode Consortium. They decide what characters get assigned code points in the Unicode standard, including emoji but also any characters for modern or ancient languages (like hieroglyphs for example). The first emoji were introduced in unicode 1.1 (only later given emoji representation), and several more were added over version 3.x, 4.x and 5.x. With Unicode 6.0, country flag emoji were introduced in October 2010.
Instead of adding a code point for every country, something smarter was done. Countries regularly combine, break up etc. The newest country - South Sudan, independent since 2011 - didnโt appear on my country map because I used an outdated svg. Exactly this problem is what the consortium wanted to prevent, by coming up with a clever workaround. The International Organization for Standardization - or ISO - already manages a standard of what countries exist: ISO 3166. Part 1, ISO 3166-1 specifies country codes. The alpha-2 representation was chosen to make up the building blocks of the emoji. For a 2 character code there are 262 or 676 possible combinations, so 676 possible countries before the standard needs to be revised.
Every alpha-2 representation for a country is unique and consists of 2 letters from the modern english alphabet. These 26 letters all got another code point specifically for โregional indicatorsโ in range 1F1E6-1F1FF; ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฟ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ. To include a countries flag. simply look up the alpha-2 code for it and look up the regional indicators for that country code. The alpha-2 for the Netherlands is NL. Take the ๐ณ and ๐ฑ code points and squash them together and you have a flag: ๐ณ๐ฑ. Or not when you are visiting on Windows.
There are quite some forum posts asking why these otherwise universal emojis donโt work on Windows yet dating back several years. Up until 2015, Apple only supported 10 flags, but during that year they introduced almost all flags for iOS and OS X, and more than 5 years later they still donโt exist for Windows. How is that possible?
The actual conversion from code point to visual representation happens with the use of fonts. All large vendors like Apple, Google and Microsoft have their own emoji fonts that render the emojis when they are displayed in an app or on a web page. And while Microsofts emoji font โSegoe UI Emojiโ does have representations for the single regional indicators, it doesnโt have any for the combinations. And thatโs why the characters show individually. Why they donโt include representations for the flags in their emoji font is not clear. Some forum discussions reference international discussions about what countries should be recognized, and which not. But that doesnโt give the full picture, as Apple operates in the same countries and does have them in their font. We will probably not know the real reason soon, but we can try to make some cross platform working emojis.
Weirdly, all forums discussing a solution to this mention it canโt be done, while fixing this is actually quite simple. Maybe it is because most of these posts are 1 year old or older, but it can also be that I didnโt test this solution thoroughly enough across platforms.
While normally I only show the end result of my experimentation, I will also show some intermediate results here. While searching for a font that includes country flags I came across one by Babelstone called Babelstone Flags. I tried some flags, and they worked! The Dutch, American, Swiss. I was happy and decided to write this post, including all country flags. I wrote this snippet:
<style>
@font-face {
font-family: BabelStoneFlags;
src: url("/assets/fonts/BabelStoneFlags.woff2") format('woff2'),
url("/assets/fonts/BabelStoneFlags.woff") format('woff');
}
</style>
<div style="font-family: 'BabelStoneFlags'">
๐ฆ๐ซ ๐ฆ๐ฑ ...
</div>
But when this was rendered, I realised not all flags where in there;
๐ฆ๐ซ ๐ฆ๐ฑ ๐ฉ๐ฟ ๐ฆ๐ฉ ๐ฆ๐ด ๐ฆ๐ฌ ๐ฆ๐ท ๐ฆ๐ฒ ๐ฆ๐บ ๐ฆ๐น ๐ฆ๐ฟ ๐ง๐ธ ๐ง๐ญ ๐ง๐ฉ ๐ง๐ง ๐ง๐พ ๐ง๐ช ๐ง๐ฟ ๐ง๐ฏ ๐ง๐น ๐ง๐ด ๐ง๐ฆ ๐ง๐ผ ๐ง๐ท ๐ง๐ณ ๐ง๐ฌ ๐ง๐ซ ๐ง๐ฎ ๐จ๐ป ๐ฐ๐ญ ๐จ๐ฒ ๐จ๐ฆ ๐จ๐ซ ๐น๐ฉ ๐จ๐ฑ ๐จ๐ด ๐ฐ๐ฒ ๐จ๐ฉ ๐จ๐ท ๐จ๐ฎ ๐ญ๐ท ๐จ๐บ ๐จ๐พ ๐จ๐ฟ ๐ฐ๐ต ๐จ๐ฌ ๐ฉ๐ฐ ๐ฉ๐ฏ ๐ฉ๐ฒ ๐ฉ๐ด ๐ช๐จ ๐ช๐ฌ ๐ธ๐ป ๐ฌ๐ถ ๐ช๐ท ๐ช๐ช ๐ธ๐ฟ ๐ช๐น ๐ซ๐ฏ ๐ซ๐ฎ ๐ซ๐ท ๐ฌ๐ฆ ๐ฌ๐ฒ ๐ฌ๐ช ๐ฉ๐ช ๐ฌ๐ญ ๐ฌ๐ท ๐ฌ๐ฉ ๐ฌ๐น ๐ฌ๐ณ ๐ฌ๐ผ ๐ฌ๐พ ๐ญ๐น ๐ญ๐ณ ๐ญ๐บ ๐ฎ๐ธ ๐ฎ๐ณ ๐ฎ๐ฉ ๐ฎ๐ท ๐ฎ๐ถ ๐ฎ๐ช ๐ฎ๐ฑ ๐ฎ๐น ๐ฏ๐ฒ ๐ฏ๐ต ๐ฏ๐ด ๐ฐ๐ฟ ๐ฐ๐ช ๐ฐ๐ฎ ๐ฐ๐ผ ๐ฐ๐ฌ ๐ฑ๐ฆ ๐ฑ๐ป ๐ฑ๐ง ๐ฑ๐ธ ๐ฑ๐ท ๐ฑ๐พ ๐ฑ๐ฎ ๐ฑ๐น ๐ฑ๐บ ๐ฒ๐ฌ ๐ฒ๐ผ ๐ฒ๐พ ๐ฒ๐ป ๐ฒ๐ฑ ๐ฒ๐น ๐ฒ๐ญ ๐ฒ๐ท ๐ฒ๐บ ๐ฒ๐ฝ ๐ซ๐ฒ ๐ฒ๐จ ๐ฒ๐ณ ๐ฒ๐ช ๐ฒ๐ฆ ๐ฒ๐ฟ ๐ฒ๐ฒ ๐ณ๐ฆ ๐ณ๐ท ๐ณ๐ต ๐ณ๐ฑ ๐ณ๐ฟ ๐ณ๐ฎ ๐ณ๐ช ๐ณ๐ฌ ๐ฒ๐ฐ ๐ณ๐ด ๐ด๐ฒ ๐ต๐ฐ ๐ต๐ผ ๐ต๐ฆ ๐ต๐ฌ ๐ต๐พ ๐ต๐ช ๐ต๐ญ ๐ต๐ฑ ๐ต๐น ๐ถ๐ฆ ๐ฐ๐ท ๐ฒ๐ฉ ๐ท๐ด ๐ท๐บ ๐ท๐ผ ๐ฐ๐ณ ๐ฑ๐จ ๐ป๐จ ๐ผ๐ธ ๐ธ๐ฒ ๐ธ๐น ๐ธ๐ฆ ๐ธ๐ณ ๐ท๐ธ ๐ธ๐จ ๐ธ๐ฑ ๐ธ๐ฌ ๐ธ๐ฐ ๐ธ๐ฎ ๐ธ๐ง ๐ธ๐ด ๐ฟ๐ฆ ๐ธ๐ธ ๐ช๐ธ ๐ฑ๐ฐ ๐ธ๐ฉ ๐ธ๐ท ๐ธ๐ช ๐จ๐ญ ๐ธ๐พ ๐น๐ฏ ๐น๐ญ ๐น๐ฑ ๐น๐ฌ ๐น๐ด ๐น๐น ๐น๐ณ ๐น๐ท ๐น๐ฒ ๐น๐ป ๐บ๐ฌ ๐บ๐ฆ ๐ฆ๐ช ๐ฌ๐ง ๐น๐ฟ ๐บ๐ธ ๐บ๐พ ๐บ๐ฟ ๐ป๐บ ๐ป๐ช ๐ป๐ณ ๐พ๐ช ๐ฟ๐ฒ ๐ฟ๐ผ
Babelstone flags abcdefghijklmnopqrstuvwxyz0123456789
My search continued, until I found the Noto Color Emoji font. Written down in that readme is also the reason older discussions mentioned that there was no solution to the missing flag emoji on Windows:
NotoColorEmoji uses the CBDT/CBLC color font format, (..) Windows supports it starting with Windows 10 Anniversary Update (..)
Great! This means we kind of solved the Windows emoji issue, but only for people on a recently updated version of Windows 10, which will be around 75% percent of the Windows users. Quite a substantial fix! I included the font as follows;
<style>
@font-face {
font-family: NotoColorEmoji;
src: url("/assets/fonts/NotoColorEmoji.woff2") format('woff2'),
url("/assets/fonts/NotoColorEmoji.woff") format('woff'),
url("/assets/fonts/NotoColorEmoji.ttf") format('truetype');
}
</style>
<div style="font-family: 'NotoColorEmoji'">
๐ฆ๐ซ ๐ฆ๐ฑ ...
</div>
With the following as output:
๐ฆ๐ซ ๐ฆ๐ฑ ๐ฉ๐ฟ ๐ฆ๐ฉ ๐ฆ๐ด ๐ฆ๐ฌ ๐ฆ๐ท ๐ฆ๐ฒ ๐ฆ๐บ ๐ฆ๐น ๐ฆ๐ฟ ๐ง๐ธ ๐ง๐ญ ๐ง๐ฉ ๐ง๐ง ๐ง๐พ ๐ง๐ช ๐ง๐ฟ ๐ง๐ฏ ๐ง๐น ๐ง๐ด ๐ง๐ฆ ๐ง๐ผ ๐ง๐ท ๐ง๐ณ ๐ง๐ฌ ๐ง๐ซ ๐ง๐ฎ ๐จ๐ป ๐ฐ๐ญ ๐จ๐ฒ ๐จ๐ฆ ๐จ๐ซ ๐น๐ฉ ๐จ๐ฑ ๐จ๐ด ๐ฐ๐ฒ ๐จ๐ฉ ๐จ๐ท ๐จ๐ฎ ๐ญ๐ท ๐จ๐บ ๐จ๐พ ๐จ๐ฟ ๐ฐ๐ต ๐จ๐ฌ ๐ฉ๐ฐ ๐ฉ๐ฏ ๐ฉ๐ฒ ๐ฉ๐ด ๐ช๐จ ๐ช๐ฌ ๐ธ๐ป ๐ฌ๐ถ ๐ช๐ท ๐ช๐ช ๐ธ๐ฟ ๐ช๐น ๐ซ๐ฏ ๐ซ๐ฎ ๐ซ๐ท ๐ฌ๐ฆ ๐ฌ๐ฒ ๐ฌ๐ช ๐ฉ๐ช ๐ฌ๐ญ ๐ฌ๐ท ๐ฌ๐ฉ ๐ฌ๐น ๐ฌ๐ณ ๐ฌ๐ผ ๐ฌ๐พ ๐ญ๐น ๐ญ๐ณ ๐ญ๐บ ๐ฎ๐ธ ๐ฎ๐ณ ๐ฎ๐ฉ ๐ฎ๐ท ๐ฎ๐ถ ๐ฎ๐ช ๐ฎ๐ฑ ๐ฎ๐น ๐ฏ๐ฒ ๐ฏ๐ต ๐ฏ๐ด ๐ฐ๐ฟ ๐ฐ๐ช ๐ฐ๐ฎ ๐ฐ๐ผ ๐ฐ๐ฌ ๐ฑ๐ฆ ๐ฑ๐ป ๐ฑ๐ง ๐ฑ๐ธ ๐ฑ๐ท ๐ฑ๐พ ๐ฑ๐ฎ ๐ฑ๐น ๐ฑ๐บ ๐ฒ๐ฌ ๐ฒ๐ผ ๐ฒ๐พ ๐ฒ๐ป ๐ฒ๐ฑ ๐ฒ๐น ๐ฒ๐ญ ๐ฒ๐ท ๐ฒ๐บ ๐ฒ๐ฝ ๐ซ๐ฒ ๐ฒ๐จ ๐ฒ๐ณ ๐ฒ๐ช ๐ฒ๐ฆ ๐ฒ๐ฟ ๐ฒ๐ฒ ๐ณ๐ฆ ๐ณ๐ท ๐ณ๐ต ๐ณ๐ฑ ๐ณ๐ฟ ๐ณ๐ฎ ๐ณ๐ช ๐ณ๐ฌ ๐ฒ๐ฐ ๐ณ๐ด ๐ด๐ฒ ๐ต๐ฐ ๐ต๐ผ ๐ต๐ฆ ๐ต๐ฌ ๐ต๐พ ๐ต๐ช ๐ต๐ญ ๐ต๐ฑ ๐ต๐น ๐ถ๐ฆ ๐ฐ๐ท ๐ฒ๐ฉ ๐ท๐ด ๐ท๐บ ๐ท๐ผ ๐ฐ๐ณ ๐ฑ๐จ ๐ป๐จ ๐ผ๐ธ ๐ธ๐ฒ ๐ธ๐น ๐ธ๐ฆ ๐ธ๐ณ ๐ท๐ธ ๐ธ๐จ ๐ธ๐ฑ ๐ธ๐ฌ ๐ธ๐ฐ ๐ธ๐ฎ ๐ธ๐ง ๐ธ๐ด ๐ฟ๐ฆ ๐ธ๐ธ ๐ช๐ธ ๐ฑ๐ฐ ๐ธ๐ฉ ๐ธ๐ท ๐ธ๐ช ๐จ๐ญ ๐ธ๐พ ๐น๐ฏ ๐น๐ญ ๐น๐ฑ ๐น๐ฌ ๐น๐ด ๐น๐น ๐น๐ณ ๐น๐ท ๐น๐ฒ ๐น๐ป ๐บ๐ฌ ๐บ๐ฆ ๐ฆ๐ช ๐ฌ๐ง ๐น๐ฟ ๐บ๐ธ ๐บ๐พ ๐บ๐ฟ ๐ป๐บ ๐ป๐ช ๐ป๐ณ ๐พ๐ช ๐ฟ๐ฒ ๐ฟ๐ผ
Noto Color Emoji abcdefghijklmnopqrstuvwxyz0123456789
That looks nice! It is also a monospace font, meaning that contrary to the BabelStone font all flags are the same width. And the borders around the flags make them more distinguishable when part of the flag is white on a white background.
There is still one issue left. All characters are displayed in the font, even non emoji characters like spaces. You can see this very clearly especially in the NotoColorEmoji font as the spaces are huge and the numbers are different. We could wrap every individual flag in a span and make sure the font is only used for that span by using a css selector or applying the style on that element directly. But we can use more css magic, the unicode-range property on the font face. Letโs take the previous snippet and introduce it:
<style>
@font-face {
font-family: NotoColorEmojiLimited;
unicode-range: U+1F1E6-1F1FF;
src: url("/assets/fonts/NotoColorEmoji.woff2") format('woff2'),
url("/assets/fonts/NotoColorEmoji.woff") format('woff'),
url("/assets/fonts/NotoColorEmoji.ttf") format('truetype');
}
</style>
<div style="font-family: 'NotoColorEmojiLimited', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'">
๐ฆ๐ซ ๐ฆ๐ฑ ...
</div>
The NotoColorEmojiLimited - differently named as the previous one to avoid a collision - is set as a font family before the other fonts to make sure that it is used when one of the characters in the range 1F1E6-1F1FF is used. The other fonts are also set as font families as they are the defaults for this site, so things like spaces and numbers are displayed in the style of the rest of the site.
๐ฆ๐ซ ๐ฆ๐ฑ ๐ฉ๐ฟ ๐ฆ๐ฉ ๐ฆ๐ด ๐ฆ๐ฌ ๐ฆ๐ท ๐ฆ๐ฒ ๐ฆ๐บ ๐ฆ๐น ๐ฆ๐ฟ ๐ง๐ธ ๐ง๐ญ ๐ง๐ฉ ๐ง๐ง ๐ง๐พ ๐ง๐ช ๐ง๐ฟ ๐ง๐ฏ ๐ง๐น ๐ง๐ด ๐ง๐ฆ ๐ง๐ผ ๐ง๐ท ๐ง๐ณ ๐ง๐ฌ ๐ง๐ซ ๐ง๐ฎ ๐จ๐ป ๐ฐ๐ญ ๐จ๐ฒ ๐จ๐ฆ ๐จ๐ซ ๐น๐ฉ ๐จ๐ฑ ๐จ๐ด ๐ฐ๐ฒ ๐จ๐ฉ ๐จ๐ท ๐จ๐ฎ ๐ญ๐ท ๐จ๐บ ๐จ๐พ ๐จ๐ฟ ๐ฐ๐ต ๐จ๐ฌ ๐ฉ๐ฐ ๐ฉ๐ฏ ๐ฉ๐ฒ ๐ฉ๐ด ๐ช๐จ ๐ช๐ฌ ๐ธ๐ป ๐ฌ๐ถ ๐ช๐ท ๐ช๐ช ๐ธ๐ฟ ๐ช๐น ๐ซ๐ฏ ๐ซ๐ฎ ๐ซ๐ท ๐ฌ๐ฆ ๐ฌ๐ฒ ๐ฌ๐ช ๐ฉ๐ช ๐ฌ๐ญ ๐ฌ๐ท ๐ฌ๐ฉ ๐ฌ๐น ๐ฌ๐ณ ๐ฌ๐ผ ๐ฌ๐พ ๐ญ๐น ๐ญ๐ณ ๐ญ๐บ ๐ฎ๐ธ ๐ฎ๐ณ ๐ฎ๐ฉ ๐ฎ๐ท ๐ฎ๐ถ ๐ฎ๐ช ๐ฎ๐ฑ ๐ฎ๐น ๐ฏ๐ฒ ๐ฏ๐ต ๐ฏ๐ด ๐ฐ๐ฟ ๐ฐ๐ช ๐ฐ๐ฎ ๐ฐ๐ผ ๐ฐ๐ฌ ๐ฑ๐ฆ ๐ฑ๐ป ๐ฑ๐ง ๐ฑ๐ธ ๐ฑ๐ท ๐ฑ๐พ ๐ฑ๐ฎ ๐ฑ๐น ๐ฑ๐บ ๐ฒ๐ฌ ๐ฒ๐ผ ๐ฒ๐พ ๐ฒ๐ป ๐ฒ๐ฑ ๐ฒ๐น ๐ฒ๐ญ ๐ฒ๐ท ๐ฒ๐บ ๐ฒ๐ฝ ๐ซ๐ฒ ๐ฒ๐จ ๐ฒ๐ณ ๐ฒ๐ช ๐ฒ๐ฆ ๐ฒ๐ฟ ๐ฒ๐ฒ ๐ณ๐ฆ ๐ณ๐ท ๐ณ๐ต ๐ณ๐ฑ ๐ณ๐ฟ ๐ณ๐ฎ ๐ณ๐ช ๐ณ๐ฌ ๐ฒ๐ฐ ๐ณ๐ด ๐ด๐ฒ ๐ต๐ฐ ๐ต๐ผ ๐ต๐ฆ ๐ต๐ฌ ๐ต๐พ ๐ต๐ช ๐ต๐ญ ๐ต๐ฑ ๐ต๐น ๐ถ๐ฆ ๐ฐ๐ท ๐ฒ๐ฉ ๐ท๐ด ๐ท๐บ ๐ท๐ผ ๐ฐ๐ณ ๐ฑ๐จ ๐ป๐จ ๐ผ๐ธ ๐ธ๐ฒ ๐ธ๐น ๐ธ๐ฆ ๐ธ๐ณ ๐ท๐ธ ๐ธ๐จ ๐ธ๐ฑ ๐ธ๐ฌ ๐ธ๐ฐ ๐ธ๐ฎ ๐ธ๐ง ๐ธ๐ด ๐ฟ๐ฆ ๐ธ๐ธ ๐ช๐ธ ๐ฑ๐ฐ ๐ธ๐ฉ ๐ธ๐ท ๐ธ๐ช ๐จ๐ญ ๐ธ๐พ ๐น๐ฏ ๐น๐ญ ๐น๐ฑ ๐น๐ฌ ๐น๐ด ๐น๐น ๐น๐ณ ๐น๐ท ๐น๐ฒ ๐น๐ป ๐บ๐ฌ ๐บ๐ฆ ๐ฆ๐ช ๐ฌ๐ง ๐น๐ฟ ๐บ๐ธ ๐บ๐พ ๐บ๐ฟ ๐ป๐บ ๐ป๐ช ๐ป๐ณ ๐พ๐ช ๐ฟ๐ฒ ๐ฟ๐ผ
Noto Color Emoji abcdefghijklmnopqrstuvwxyz0123456789
One last thing youโll notice is that the font gets reloaded on every page load and it takes a little while for the flags to appear. As this site is hosted on Github, I donโt have control over caching headers, but you can make sure the font is only downloaded once and then cached using these headers. You could also use a CDN to serve this font and make sure the user doesnโt download the font again when it was already loaded for another site. My personal distaste for CDNs will be discussed in a next post.