How color emoji fonts work
Regular fonts store black-and-white outlines. Emoji need colour, so vendors invented several “colour font” formats to pack full-colour artwork into a typeface. Here are the four that matter.
The four formats
| Format | Type | Used by |
|---|---|---|
| COLR/CPAL | Layered vector + palette | Microsoft (Segoe UI Emoji), Windows |
| sbix | Embedded PNG bitmaps | Apple (Apple Color Emoji) |
| CBDT/CBLC | Embedded bitmaps | Google (older Android/Noto) |
| SVG-in-OpenType | Full SVG per glyph | Firefox, some Adobe/Google fonts |
Vector vs bitmap
Vector approaches (COLR, SVG-in-OpenType) scale crisply and stay small. Bitmap approaches (sbix, CBDT) embed pixel images at set sizes — sharp at those sizes, but larger files. This is partly why the same emoji looks slightly different and scales differently across platforms.
Why emoji look different everywhere
Each vendor draws its own artwork in its own colour-font format, so 😂 from Apple, Google, Microsoft, Samsung and Twemoji all differ — same code point, different pictures. For consistent cross-platform visuals, projects like Twemoji ship the emoji as SVG images instead of relying on the system font.
Frequently asked questions
Why do emoji look different on iPhone vs Android?
Each vendor ships its own emoji artwork in its own colour-font format, so the same code point renders as different pictures.
How do fonts store color emoji?
Via colour-font formats: COLR/CPAL (layered vectors), sbix and CBDT (bitmaps), or SVG-in-OpenType (full SVG per glyph).