Lenny Face
The Lenny face and its variants, ready to copy. Below the grid is a character-by-character account of how the face is assembled, which is also why it breaks the way it does.
Tap any tile to copy it. Nothing is sent anywhere — the copy happens in your browser.
Eleven characters
The Lenny face is short. Counted as codepoints it is exactly eleven characters, and counted as things a reader can see it is eight, because three of the eleven are combining marks that fuse to the character before them. Here is the whole face in order:
| # | Character | Name | Job |
|---|---|---|---|
| 1 | ( |
U+0028 LEFT PARENTHESIS | Side of the head |
| 2 | space | U+0020 SPACE | Something for the brow to sit on |
| 3 | ◌͡ |
U+0361 COMBINING DOUBLE INVERTED BREVE | Left eyebrow |
| 4 | ° |
U+00B0 DEGREE SIGN | Left eye |
| 5 | space | U+0020 SPACE | Something for the smirk to sit on |
| 6 | ◌͜ |
U+035C COMBINING DOUBLE BREVE BELOW | The curve under the mouth |
| 7 | ʖ |
U+0296 LATIN LETTER INVERTED GLOTTAL STOP | Mouth |
| 8 | space | U+0020 SPACE | Base for the second brow |
| 9 | ◌͡ |
U+0361 COMBINING DOUBLE INVERTED BREVE | Right eyebrow |
| 10 | ° |
U+00B0 DEGREE SIGN | Right eye |
| 11 | ) |
U+0029 RIGHT PARENTHESIS | Side of the head |
Only one of those characters is a letter. ʖ comes from the IPA Extensions block, where it stands for a phonetic sound; it is being used here because it looks like a mouth pulled up at one corner.
Why the spaces are not optional
The three marks at positions 3, 6 and 9 are double diacritics. Unlike an ordinary accent, which sits over one letter, a double diacritic is designed to tie two characters together — it attaches to the character before it and arcs rightward across the character after it. That is what gives Lenny its eyebrows: each brow begins over a space and sweeps over the eye that follows.
Delete those spaces and the marks have nothing to start from but the parenthesis and the eye itself, so the arcs collapse onto the wrong characters and the brows either vanish or stack on the side of the head. It is also the shape of the damage when the face arrives mangled: any system that strips or reorders combining marks — a search box that normalises input, a database column that rejects them, a form that trims whitespace — takes the eyebrows off first.
Dongers
The dongers on this page — faces built with combining marks and characters raided from a dozen scripts — are the elaborate end of the text faces, the same idea as (^_^) run with a far larger character set. The grid above shows the pattern: a fixed core — ͡° ͜ʖ ͡° — that stays recognisable while everything around it is swapped out. Change the frame from () to [], bolt on ლ for arms, drop the whole thing inside the shrug, and it is still read as the same face.
Where it breaks
Three failure modes. Fonts that do not position double diacritics well render the brows too high, too far left, or as two separate arcs floating above the head. Single-line input fields with a fixed height clip the marks off the top. And a field that strips combining characters returns Lenny as ( ° ʖ °), correct in its parts and expressionless. A combining mark is allotted no cell of its own — it is drawn relative to the character before it — which is why a long stack of them is drawn outside its own line box, over whatever sits above. A field that does that to Lenny will still take an ASCII emoticon intact, because nothing in one of those is a combining mark.
The rest of the collection is at kaomoji. Two other single faces have a page to themselves here: the shrug emoticon and the table flip.