Twitter Color Emoji SVGinOT Font
A color and B&W emoji SVG-OpenType / SVGinOT font built from the Twitter Emoji for Everyone artwork with support for ZWJ, skin tone diversity and country flags.
The font works in all operating systems, but will currently only show color emoji in Firefox, Thunderbird, and Photoshop CC 2017+. This is not a limitation of the font, but of the operating systems and applications. Why doesn't it work on Chrome? Regular B&W outline emoji are included for backwards/fallback compatibility.
Table of Contents
- Examples
- What is SVGinOT?
- Install on Linux
- Install on MacOS
- Install on Windows
- Uninstalling
- Building
- License
Examples
What is SVGinOT?
SVG in Open Type is a standard by Adobe and Mozilla for color OpenType and Open Font Format fonts. It allows font creators to embed complete SVG files within a font enabling full color and even animations. There are more details in the SVGinOT proposal and the OpenType SVG table specifications.
SVGinOT Font demos (Firefox only):
- https://hacks.mozilla.org/2014/10/svg-colors-in-opentype-fonts/
- https://xerographer.github.io/reinebow/
- https://xerographer.github.io/multicoloure/
Install on Linux
The font can be installed for a user or system-wide. Get the latest version from releases: https://github.com/13rac1/twemoji-color-font/releases
Note: This requires Bitstream Vera
is installed and will change your
systems default serif, sans-serif and monospace fonts.
Why Bitstream Vera
The default serif, sans-serif and monospace font for most Linux distributions is
DejaVu
. DejaVu
includes a wide range of symbols which override the
Twitter Color Emoji
characters. The previous solution was to make
Twitter Color Emoji
the default system font, but that causes a number of issues.
A better solution is a different font that doesn't override any emoji characters
such as Bitstream Vera
. Bitstream Vera
is the source of the glyphs used in
DejaVu
, so it's not very different. 99%+ of people will not notice the
difference.
Additional default font options
The Noto
and Roboto
font families conflict far less than DejaVu
. You may
want to try them. Primary issues are the 0x2639 and 0x263a characters.
Known issues
- Symbols/emoji in monospace formatted text cause incorrect character alignment. The whitespace character widths from the most recently selected fallback font are used in Pango/GTK applications.
- [Issue #31] Some font families are not matched correctly in Linux Firefox.
Workaround: Open
about:config
setgfx.font_rendering.fontconfig.fontlist.enabled
tofalse
. Note: May cause crashes in Firefox <48.
Manual install on any Linux
Install for the current user without root:
# 1. Download the latest version
wget https://github.com/13rac1/twemoji-color-font/releases/download/v14.0.2/TwitterColorEmoji-SVGinOT-Linux-14.0.2.tar.gz
# 2. Uncompress the file
tar zxf TwitterColorEmoji-SVGinOT-Linux-14.0.2.tar.gz
# 3. Run the installer
cd TwitterColorEmoji-SVGinOT-Linux-14.0.2
./install.sh
Install on Ubuntu Linux
Launchpad PPA: https://launchpad.net/~eosrei/+archive/ubuntu/fonts
sudo apt-add-repository ppa:eosrei/fonts
sudo apt-get update
sudo apt-get install fonts-twemoji-svginot
Install on Arch Linux
Available in AUR as package ttf-twemoji-color
.
Install on Gentoo Linux
Gentoo repository: https://github.com/jorgicio/jorgicio-gentoo
# Install layman using Portage with USE="git" enabled, the default.
emerge layman
# Add the repo.
layman -a jorgicio
# Install the package.
emerge twemoji-color-font
Install on MacOS
Both SVGinOT versions are available from releases: https://github.com/13rac1/twemoji-color-font/releases
TwitterColorEmoji-SVGinOT-14.0.2.zip
- The regular version of the font installs like any other font and can be specifically selected, but MacOS will default to theApple Color Emoji
font for emojis.TwitterColorEmoji-SVGinOT-MacOS-14.0.2.zip
- A hack to replace theApple Color Emoji
font by using the same internal name. Install and accept the warning in Font Book.
A Homebrew package is available.
# Tap the brew tap homebrew/cask-fonts keg (caskroom/fonts keg were moved into this).
brew tap homebrew/cask-fonts
# Install the font using brew
brew cask install font-twitter-color-emoji
# If that doesnt work, try...
brew install --cask font-twitter-color-emoji
Reiterating: Only FireFox supports the SVGinOT color emoji for now. Safari and Chrome will use the fallback black and white emoji.
Install on Windows
There are two standard install options for Windows. Both SVGinOT versions are available from releases: https://github.com/13rac1/twemoji-color-font/releases
You can also use the Chocolatey package to handle the installation and the future updates.
choco install twemoji
Standard install
The regular version of the font installs like any other font and can be
specifically selected, but Windows will default to the Segoe UI Emoji
font for emoji characters. Download:
https://github.com/13rac1/twemoji-color-font/releases/download/v14.0.2/TwitterColorEmoji-SVGinOT-14.0.2.zip
Replace the default Windows emoji fonts
Windows 7, 8, 10 use emoji from both Segoe UI Symbol and Segoe UI Emoji. We need to replace both fonts, but keep the existing symbol characters from Segoe UI Symbol.
This package contains an install script that will generate both fonts (or in Windows 7, just Segoe UI Symbol) and install them for you. Running the install script requires both Python and pip in the PATH.
- Download the most recent Python 3 for Windows: https://www.python.org/downloads/windows/
- Start the installer, select "Add Python 3.6 to PATH", finish the install process, then reboot.
- Download Twitter Color Emoji Windows package from releases: https://github.com/13rac1/twemoji-color-font/releases/download/v14.0.2/TwitterColorEmoji-SVGinOT-Win-14.0.2.zip
- Uncompress the file.
- Open the new TwitterColorEmoji directory.
- Run install.cmd. Note: This will take some time.
- Install both new fonts when requested.
- Done!
Reiterating: Only FireFox and Edge (legacy) support the SVGinOT color emoji for now. Chrome and Edge (Chromium based) will use the fallback black and white emoji.
Uninstalling
There are uninstall scripts for Windows and Linux available. They are also included in the release files.
Building
Overview:
- B&W SVGs are generated on-the-fly from the color SVGs
- The B&W SVGs are imported based on their filename to create either regular glyphs or ligature glyphs.
- The color SVGs are imported to override both types of glyphs.
Requires:
- Inkscape 1.0+
- Imagemagick
- potrace/mkbitmap
- FontTools 4.14+
- FontForge 20190801+
- SVGO
- make
- SCFBuild (Created for this project!)
Setup and build on Ubuntu 20.04 LTS:
sudo apt-get update
sudo apt-get install inkscape potrace npm nodejs fontforge \
devscripts python3-fontforge python3-pip python3-yaml imagemagick \
git make debhelper build-essential
sudo npm install -g svgo
sudo pip3 install fonttools
git clone https://github.com/13rac1/twemoji-color-font.git
cd twemoji-color-font
git clone https://github.com/13rac1/scfbuild.git SCFBuild
make -j 4
License
The artwork and TTF fonts are licensed CC-BY-4.0. Please see LICENSE.md for details.