Twemoji COLR

Resources

demo page

git repository

Downloads

fileformatfont family namefile size
TwemojiCOLR.otfOpenType[CFF,COLRv0]Twemoji COLR996 kB
TwemojiCOLR_renamed_AppleColorEmoji.otfOpenType[CFF,COLRv0]Apple Color Emoji996 kB

About Fonts

note: when i say font, i technically mean typeface.  (this distinction doesn't matter with emoji fonts anyway).

Color Fonts

these days, emojis are usually rendered from a font file.  nearly all fonts now use the OpenType format (commonly stored as .ttf/.otf/.woff/.woff2 files), but it has several different ways of storing color glyphs:

common nameOpenType tablesimage typeoperating system and library supportweb browser support
WindowsmacOSFreeTypeGTK (Cairo)ChromiumFirefoxSafari
sbixsbixraster (PNG, JPEG, TIFF) yes (10)yes (2011)yes (2013)yes (2013)yes (2018)local onlyyes (2016)
CBDTCBDT, CBLCraster (bitmap, PNG) yes (10)?yes (2013)yes (2013)yes (2018)local onlyno
COLRv0COLR version 0, CPALvector (simple fills only) yes (8.1)yesyes (2018)yes (2022)yes (2016)yes (2014)yes (2018)
OpenType-SVGSVG , CPALvector (with gradients/clipping) yes (10)yesnoyes (2022)noyes (2014)yes (2019)
COLRv1COLR version 1, CPALvector (with gradients/clipping) yes (10)?noyes (2023)yes (2022)yes (2022)no

basically: COLRv0 has been widely adopted, but only supports simple layers with flat colors.  it's unclear which of the more advanced formats will succeed, because Google refuses to support OpenType-SVG, and Apple refuses to support COLRv1.
(personally i think that – while OpenType-SVG has a place – COLRv1 is a far better format for distribution, because it can achieve the same results while being much easier to render)

fortunately, we don't have to worry about this, because Twemoji only uses solid colors anyway, so COLRv0 is a perfect fit.

Font Names

the name of a font is stored within the file, separate from the filename.  i.e: renaming the file won't do anything; you'll need to use a tool to change the strings in the name table.

you can install multiple copies of a font under different names.

Using a Custom Emoji Font

“ok but how do i actually make an application/website use this font?”

unfortunately, there isn't a simple answer to that.  most things will either use the system emoji font, or they'll have a list of fonts that they check for.  some may have a setting to choose the emoji font, and some will use their own hardcoded emojis.

basically, the process is different for each application and website and operating system, if it's possible at all.  here are some that i'm aware of:

Firefox

in about:config, set font.name-list.emoji to Twemoji COLR.  this affects Firefox's UI and any website which doesn't specify its own emoji font.

Some Websites

some websites specify a list of emoji fonts.  they'll use the first one they find, and the list almost always begins with Apple Color Emoji, Segoe UI Emoji, ....

i.e:  unless you are on macOS, i recommend installing a copy of Twemoji COLR with its name set to Apple Color Emoji.  this affects websites such as Bluesky, Github, etc (in any browser)

Windows, macOS

you might be able to replace the system emoji font by installing a copy of Twemoji COLR with the same name as it (Segoe UI Emoji on Windows, or Apple Color Emoji on macOS).  this affects anything that uses the system font.

however, this could cause problems.  (for example, if an application tries to render emojis without color: Segoe UI Emoji contains black-and-white versions of the emojis, while Twemoji COLR doesn't).

Linux (FontConfig)

good luck.  you can probably just uninstall other emoji fonts (particularly Noto Color Emoji) until it uses the one you want.

Related Works

projectcolor formatemoji versionhas black-and-white
fallback glyphs?
13rac1/twemoji-color-fontOpenType-SVG15.1 (2024)yes
mozilla/twemoji-colrCOLRv014.0 (2022)no
12Me21/twemoji-COLRCOLRv015.1 (2024)no
whynothugo/twemoji.ttfCBDT15.1 (2024)no

my font was designed to replace Twemoji Mozilla, which hasn't been updated in a while and has some broken dependencies.

i've also added margins and increased the size of the emojis relative to other text, to match other emoji fonts (including twitter itself).

Before:
After:

unfinished zone

further reading

general truetype/opentype sources:
(very old, mostly not relevant, but nostalgic) TrueType Typography: info about TTF fonts & technology
Apple TrueType/AAT spec (old, but i prefer it to microsoft's documentation, in places where it's still relevant) TrueType Reference Manual
Microsoft OpenType spec (current) OpenType® Specification

discussing the future formats: Color fonts. Overview of the proposals for color extensions of the OpenType font format. (2013)
everyone has encountered these two: Colorful typography on the web: get ready for multicolor fonts (2014), Color Fonts - Get ready for the revolution! (2017)

surface-level, but up to date: How to use color fonts (2023)

discussing a typical scenario of beginning to support color fonts: Emoji in Qt 6.9 (2025)

i remember reading this a long time ago: Text Rendering Hates You (2019)