How keycap emoji work

The number-in-a-box emoji — 1️⃣, #️⃣, *️⃣ — look simple but are built from three stacked code points. They're a neat example of how emoji sequences compose.

Three parts

A keycap is: the base character (a digit, # or *), the emoji variation selector U+FE0F, and the combining enclosing keycap U+20E3. So 1️⃣ is U+0031 U+FE0F U+20E3.

The enclosing keycap

U+20E3 is a combining character that draws a rounded key/button around the preceding character. The variation selector ensures the emoji (colourful) presentation so it looks like a phone key rather than plain text.

Developer note

Like other sequences, one visible keycap is three code points — so counting or slicing naively can split it. Only digits 0–9, # and * have standard keycap emoji.

Frequently asked questions

How is the 1 emoji made?

1️⃣ is three code points: the digit 1, the variation selector U+FE0F, and the combining enclosing keycap U+20E3.

Which characters have keycap emoji?

Digits 0–9 plus # and *.