· emoji, guides

Emoji combos: the characters underneath

A chain of oversized emoji, a hand, a heart, and the French flag linked to a laptop and a woman technologist, plus signs floating between them on a deep teal background

An emoji combo is a sequence of Unicode characters that a font draws as one emoji: a base character plus a skin tone modifier, an invisible joiner, or a pair of flag letters. Most “new emoji” are combos rather than new characters. Of Emoji 17.0’s 163 additions, only seven are new codepoints; the rest are combinations.

When Unicode 17.0 shipped in September 2025, the announcement said 163 new emoji, and the fine print said seven new codepoints. Both numbers were honest. The other 156 were combinations: existing characters arranged in sequences that fonts are instructed to draw as single pictures. A large and growing share of what you think of as “an emoji” is not a character at all. It is a small sentence, spelled in codepoints, that your device’s emoji font renders as one glyph.

There are two things the internet calls combos, and it is worth separating them. Decorative combos are strings of separate emoji typed together for effect, the sparkles and butterflies around a caption; each one is its own character, and they travel as a row. Tools like the keyboard at emoji.party exist to build those rows: stack emoji in order, apply a skin tone where one fits, and copy the finished string. Composed emoji are the subject of this post: sequences that fuse into a single visible character, indistinguishable from a “real” emoji until you look at the characters underneath. Watch the three core tricks do it. The glyphs below are drawn by your own device’s emoji font:

What are the four ways emoji combine?

Skin tone modifiers. Five characters, U+1F3FB through U+1F3FF, encode the Fitzpatrick scale of human skin tones. Placed after a hand, a face, or a person, a modifier instructs the font to repaint the base glyph in that tone. One base times six presentations, default plus five tones, with no new codepoint per tone. Multi-person emoji can carry a different modifier per person, which is where the combinatorics explode: most of Emoji 17.0’s 163 were exactly this arithmetic. Here is the whole ladder, drawn live by your own emoji font:

👋base alonedefault
👋🏻U+1F3FBFitzpatrick I–II
👋🏼U+1F3FCFitzpatrick III
👋🏽U+1F3FDFitzpatrick IV
👋🏾U+1F3FEFitzpatrick V
👋🏿U+1F3FFFitzpatrick VI

The five modifiers as characters in their own right: 🏻 🏼 🏽 🏾 🏿 On their own they draw as swatches; after a person, hand, or face, they repaint it.

The Zero Width Joiner. U+200D is an invisible character that prints nothing. Inside an emoji sequence it is an instruction: draw what surrounds me as one glyph, if you have it. Woman plus joiner plus laptop becomes the woman technologist. Person plus joiner plus ballet shoes became Emoji 17.0’s Ballet Dancer, an emoji that exists in the emoji standard without existing as a codepoint in Unicode at all. The joiner is a ligature request, the same idea as the fi ligature in a text face, applied to pictures.

Regional indicators. Country flags are pairs of special letters that spell the ISO country code: the regional indicators for F and R fuse into the French flag. England, Scotland, and Wales use a longer trick, a black flag base followed by invisible tag letters spelling the subdivision code. And a font that has no flag glyph, which on Windows is every font, simply shows the letters. The mechanism and a shelf of results:

Regional indicator symbol letter FU+1F1EB indicator F
+
Regional indicator symbol letter RU+1F1F7 indicator R
=
Flag of Franceone flag: France
Flag of United StatesUS · United StatesU+1F1FA U+1F1F8
Flag of United KingdomGB · United KingdomU+1F1EC U+1F1E7
Flag of FranceFR · FranceU+1F1EB U+1F1F7
Flag of GermanyDE · GermanyU+1F1E9 U+1F1EA
Flag of JapanJP · JapanU+1F1EF U+1F1F5
Flag of BrazilBR · BrazilU+1F1E7 U+1F1F7
Flag of CanadaCA · CanadaU+1F1E8 U+1F1E6
Flag of IndiaIN · IndiaU+1F1EE U+1F1F3
Flag of ItalyIT · ItalyU+1F1EE U+1F1F9
Flag of SpainES · SpainU+1F1EA U+1F1F8

These flags are pictures, drawn from Google's Noto Color Emoji font, for a reason the post itself explains: a Windows font has no flag glyphs, so the live characters would show you letter pairs instead. The England subdivision flag (black flag plus invisible tag letters spelling gbeng) is here the same way: Flag of England

Keycaps and the presentation switch. A digit, the variation selector U+FE0F, and a combining enclosing keycap produce the boxed number keys. The variation selector deserves its own sentence, because it is quietly everywhere: it is a text versus emoji presentation switch, requesting that a character be drawn in color emoji style (or, its sibling U+FE0E, in plain text style). The red heart in our specimen plate is an ordinary text character, U+2764, plus that selector asking for the emoji drawing. Both tricks, live:

1️⃣1 + U+FE0F + U+20E3
2️⃣2 + U+FE0F + U+20E3
#️⃣# + U+FE0F + U+20E3
*️⃣* + U+FE0F + U+20E3
❤U+2764 alone: text style
❤️U+2764 + U+FE0F: emoji style

Same heart character in both of the last two boxes. The only difference is the invisible selector after it, asking the font for the other drawing.

A plate decomposing three composed emoji: a waving hand plus a skin tone swatch equals the toned hand, a woman plus a ZWJ chip plus a laptop equals the technologist, and the regional indicator letters F and R equal the French flag, all rendered from the Noto Color Emoji font

Why do character counters get emoji wrong?

Composition is why “character” has stopped meaning anything simple in software. A toned, joined family emoji can run past ten codepoints while occupying one cell on screen, so character counters, text field limits, cursor movement, and truncation all have to count something more subtle, the grapheme cluster, or they break in ways users describe as “the app ate my emoji.” When you see a post limit measured in characters, sequences are spending several of them invisibly.

What happens when the fusion fails?

Every mechanism degrades, by design, and the failure modes are the same ones fonts have always had. A font without the joined glyph shows the parts side by side: still readable, clearly lesser. A font missing a codepoint entirely shows the empty tofu box, which is why the newest emoji arrive as boxes for months. A platform that strips joiners or normalizes text quietly takes the composition apart. And none of this is exotic: it is fallback, coverage, and versioning, the ordinary physics of text, applied to pictures. The three failure modes, drawn out:

Three panels of emoji fusion failing: a woman and a laptop sitting side by side unfused; two empty tofu boxes, one plain and one crossed; and the letters F and R standing in dashed boxes where the French flag should be

Fusion failing three ways: the combo falls back to its parts, the missing character falls back to tofu, and the flag falls back to its letters.

The letters in your bio obey the same physics, which is the thread connecting this post to the fonts that are not fonts. Whether the characters are mathematical letters pretending to be a typeface or emoji pretending to be a single character, what you see is never the text itself. It is what the reader’s fonts could make of it.