Articles about emoji

How a composite emoji is built: the invisible joiner, skin tones and gender

More than two thirds of the catalogue is written not as one character but as a chain. The mechanics of joining, measured against our own database: how many characters go into one glyph, where the five skin tones came from, and why whole releases of the standard consist of nothing but combinations.

Type ๐Ÿ‘ฉโ€๐Ÿ’ป and press backspace once. On some keyboards the glyph disappears whole; on others you are left with a plain woman and no laptop. Nothing is broken: that emoji was never one character. It is three, welded together by an invisible one. A large part of the catalogue works this way, and it explains most of the odd things that happen to emoji when they are copied, truncated or searched.

One glyph is not one character

Our catalogue holds 3,953 entries. Only 1,193 of them โ€” under a third โ€” are written with a single Unicode character. Everything else is a run of several characters that shows up as one picture purely because the font recognises the chain.

How many characters go into one emoji (catalogue, 13 Aug 2026)
Characters in the chainEntriesShareExample
11,19330.2%๐Ÿ˜€ grinning face
21,13128.6%โ˜ ๏ธ skull and crossbones, ๐Ÿ‡ท๐Ÿ‡บ flag
3902.3%๐Ÿ‘ฉโ€๐Ÿ’ป woman technologist
444011.1%๐Ÿ™‚โ€โ†”๏ธ head shaking horizontally
559515.1%๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ people holding hands
6120.3%๐Ÿง‘โ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right
72696.8%๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag of England
81283.2%๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss
10952.4%๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss with two skin tones

Notice the gap: there is not a single nine-character entry. Length does not grow smoothly, it grows in steps, because every step adds a whole block โ€” a joiner, a tone modifier, a gender sign. There is nowhere for a spare character to come from.

The invisible joiner

The main assembly tool is U+200D, the zero width joiner. It draws nothing and takes no space. It was not invented for emoji: in Arabic and in Indic scripts it asks for a connected letter form where the default would be a separated one.

With emoji it does the same job. The font sees a chain of characters linked by joiners, and if it happens to own a picture for exactly that chain, it draws one glyph instead of three. A kiss is assembled syllable by syllable:

  1. ๐Ÿ‘ฉ woman โ€” an ordinary character that stands on its own.
  2. A joiner โ€” the signal that what follows belongs to what came before.
  3. โค๏ธ heart, another joiner, ๐Ÿ’‹ kiss mark, another joiner.
  4. ๐Ÿ‘จ man โ€” end of chain.

Eight characters in total, half of them invisible. The same trick produces things far from romantic: a lime is a lemon plus a green square, and a phoenix is a bird plus fire. The meaning is new; not a single code point was spent on it.

The key consequence: joining does not create a new character in the standard. It only records an agreement โ€” โ€œwhen you see this chain, draw this pictureโ€. That is why the emoji set grows far faster than Unicode itself.

A joiner appears in 1,614 catalogue entries โ€” 40.8% of the whole set. They are spread unevenly: 1,098 entries carry one joiner, 408 carry two and 108 carry three. Three is the ceiling; nothing goes further.

Five skin tones

The second mechanism arrived in 2015 with Unicode 8.0. Human glyphs gained five skin tone modifiers based on the Fitzpatrick scale: it has six phototypes, but the first two were merged in the standard โ€” at glyph size they are indistinguishable.

The modifiers are characters in their own right, with their own pages and their own catalogue section, components. There are nine such utility characters in all: five tones and four hair types.

Tone modifiers and their weight in the catalogue
ToneCharacterCode pointEntries
Light๐ŸปU+1F3FB407
Medium-light๐ŸผU+1F3FC407
Medium๐ŸฝU+1F3FD407
Medium-dark๐ŸพU+1F3FE407
Dark๐ŸฟU+1F3FF407
No tone givenโ€”โ€”1,918

Not every glyph takes a tone โ€” 273 base characters do: hands, faces, people, professions. Each unfolds into five variants, which adds up to 2,035 entries, more than half the catalogue. That is exactly why the People and body section is so enormous: it holds six times fewer distinct pictures than rows.

A tone attaches to its glyph without a joiner โ€” it simply follows it. That is why ๐Ÿ‘‹๐Ÿฝ is two characters rather than three, and why it deletes one keystroke faster than ๐Ÿ‘ฉโ€๐Ÿ’ป.

Gender: three states, not a switch

Gender variants are assembled with the same joiner: โ™€๏ธ or โ™‚๏ธ is appended to a base glyph. The catalogue shows the shape of it โ€” 605 female entries, exactly the same number of male ones and 2,743 neutral. A gender pair exists for 186 base characters.

The symmetry is not a coincidence: female and male forms are only ever introduced in pairs, never one at a time. And the neutral form is not a third gender but the original character with nothing specified: a handshake is neither male nor female, it is just a handshake.

The clearest release in this respect is Emoji 12.1, from 2019. It contains 168 entries, and all 168 are joined chains: neutral forms built for pairs that already existed. Not one new drawing entered the standard.

The standard has long grown through new combinations of old characters rather than new characters. The font gains pictures; the code charts gain almost nothing.

Two people in one glyph

Glyphs with two people are a story of their own. They need two independent tones, and the combinatorics explode immediately. Every such base carries 20 two-tone variants: five tones by five, minus the five matching pairs already covered by the ordinary single-tone form.

Take people holding hands. In the catalogue that is 26 rows: the neutral glyph itself, five single-tone variants and twenty two-tone ones. Entries with two different tones number 380 in total, and they belong to twelve bases: handshake, kiss, couple with heart in three gender pairings, wrestlers, people with bunny ears.

Two-tone variants are the youngest and most fragile part of the set. A vendor has to draw each of the twenty combinations separately, and where that was not done the system shows no placeholder but two separate figures in different colours. It looks like ordinary text rather than an error, which misleads far more effectively than an empty box.

Releases made entirely of combinations

Looking at releases through our catalogue, combining has clearly become the main way the set grows. We counted the share of entries in each release that contain a joiner.

Share of joined chains per release
ReleaseEntriesWith a joinerShareWhat was added
Emoji 4.059857996.8%professions in male and female form, families
Emoji 12.1168168100%neutral forms for existing pairs
Emoji 13.121720795.4%beards, veils, heart variants
Emoji 15.1118118100%facing-right movement, phoenix, lime
Emoji 17.016314689.6%new scenes built on existing people

Emoji 15.1 is the extreme case: that release added no new code points at all. All 118 of its entries are made from what already existed. Hence, for example, the person walking facing right: the old pedestrian, a joiner and an arrow โžก๏ธ. There are 108 such directional variants among the release's 118 entries.

The recent Emoji 17.0 is built the same way, only slightly more generously: 163 entries, of which genuinely new characters number seven โ€” distorted face, fight cloud, hairy creature, orca, landslide, trombone and treasure chest. The eighth novelty, the ballet dancer, is already a chain: a person plus ballet shoes. The full release-by-release layout lives on the versions page.

Flags, keycaps and other assemblies

The joiner is not the only way to build a glyph. Four more mechanisms live in the catalogue, each with its own logic:

  • Country flags โ€” a pair of โ€œregional indicatorsโ€, special Aโ€“Z letters. ๐Ÿ‡ท๐Ÿ‡บ is the letters R and U placed side by side. We hold 259 such pairs, all gathered in the flags section.
  • Regional flags โ€” a black flag, the region's name written in invisible tag letters, and a terminator. Hence the seven characters behind the flag of England; there are exactly three such flags in the set โ€” England, Scotland and Wales.
  • Flags with a picture โ€” a plain white flag, a joiner and an image: that is how the rainbow flag is put together.
  • Keycaps โ€” a character, an instruction to display it as emoji, and the enclosing key. Keycap 1 is an ordinary digit in a box, and there are exactly 12 of them.
  • Presentation selector โ€” the character U+FE0F, which asks for a colourful picture rather than a black-and-white typographic sign. It appears in 1,180 entries, and it is the reason โค๏ธ takes two characters instead of one.

What one glyph weighs

Chain length has a measurable consequence: space. A โ€œ20 characters maximumโ€ limit in a profile name, or 70 characters in a text message, counts characters rather than glyphs, and a composite emoji eats them by the handful.

Glyph weight in characters and bytes
GlyphCharactersBytes in UTF-8
๐Ÿ‘ thumbs up14
โค๏ธ red heart26
๐Ÿ‡ท๐Ÿ‡บ flag28
1๏ธโƒฃ keycap37
๐Ÿ‘ฉโ€๐Ÿ’ป woman technologist311
๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ people holding hands518
๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss827
๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag of England728
๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss with two tones1035

The gap between ๐Ÿ‘ and ๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ is close to ninefold. One such glyph in a text message can claim half a line, and in a field with a hard limit it simply will not fit.

What this breaks

Composite storage has four practical consequences, and all four turn up daily:

  • Deleting in pieces. One press of backspace removes the last character, not the glyph. A good keyboard takes the whole chain; a mediocre one leaves a stump.
  • Cutting mid-chain. Software that trims text โ€œat 100 charactersโ€ knows nothing about joiners. A severed chain falls apart into its parts: instead of a family, three little people in a row.
  • Search and sorting. To a machine ๐Ÿ‘ฉโ€๐Ÿ’ป and ๐Ÿง‘โ€๐Ÿ’ป are entirely different strings, though a human reads them as one glyph in two forms. That is why our popularity ranking and our search count by the base character, with variants attached to it.
  • Outdated fonts. A system that does not know a chain honestly draws every part of it. That is neither a box nor an error โ€” simply several glyphs where one was meant; there is more on this in our piece on empty boxes instead of emoji.

What to do about it

  1. Count characters, not glyphs. If a field is length-limited, check the emoji in advance โ€” the table above gives the order of magnitude.
  2. Use single-character glyphs where it matters. In a profile name, an email subject or a signature, a glyph from the first row of the table is safer: it has no parts to scatter.
  3. Never trim strings blindly. Cutting by character count breaks composite glyphs; if you are writing the code, cut on cluster boundaries.
  4. Check the composition before pasting. Every character page here shows the full chain, so you can see how many parts it is made of.
  5. Remember the two young zones. Two-tone variants and the fresh directional forms have the weakest support; that is where โ€œparts instead of a wholeโ€ is most likely.

The general rule is simple: the longer the chain, the more places it can come apart. A one-character glyph is either there or not; a ten-character one can fail in nine different ways.

The short version

Fewer than a third of the catalogue entries are genuine single characters. Everything else is assembled โ€” with a joiner, a tone modifier, a gender sign, a regional letter or a keycap box. That is how the standard grows: through combinations rather than new characters, and whole releases such as Emoji 15.1 add nothing new to the code charts at all. Knowing what a glyph is made of answers several everyday questions at once: why it deletes by halves, why it eats ten characters out of twenty, and why the person you are writing to sees three separate people where you sent a family.