Kaomoji

Text Faces

Faces made out of ordinary characters, in both traditions: the sideways Western emoticons you read at a tilt, and the upright Japanese ones you do not. Every entry copies as plain text.

Tap any tile to copy it. Nothing is sent anywhere — the copy happens in your browser.

Two traditions, one keyboard

A text face is any face assembled from ordinary characters rather than drawn as a picture, and there are two ways of doing it.

The Western emoticon is written sideways. :-) is a face rotated ninety degrees: colon for eyes, hyphen for nose, closing bracket for mouth, and you read it by tilting your head. Because the eyes are always a colon, the entire expression rests on the last character — :-), :-(, :-D, :-P differ in one keystroke each. The sideways set on its own, including the faces built purely from ASCII punctuation, is at ASCII emoticons.

The Japanese style is written upright and needs no tilt. The parentheses are the sides of the head and everything sits where it belongs. Here the mouth is often nothing at all — a bare underscore — and the eyes carry the meaning. (^_^), (T_T), (>_<), (=_=) and (ಠ_ಠ) share an identical mouth and read as pleased, weeping, wincing, exhausted and unimpressed.

The practical consequence is that the upright style scales further. A sideways emoticon has one slot to vary; an upright one has two eyes, a mouth, a frame, and room outside the frame for arms, sweat and blush. That is why almost everything on this page is upright.

The standard parts

Most upright faces are built from a small vocabulary reused constantly:

  • Happy eyes arch upward — ^, , , and squeezed together.
  • Sad eyes run downward — T, , , or a semicolon parked at the tear duct.
  • Flat eyes refuse to give anything — -, =, ¬, .
  • Wide eyes gain a pupil — , , , .
  • Mouths are usually a single mark: _ for none, ω for soft, and for open, Д for shouting, for gritted.

Modifiers go outside the eyes, because there is no room anywhere else: * or for blush, ; for sweat, above the head for anger, z trailing off the side for sleep. Learn those and you can read a face you have never seen before, and build one of your own.

What breaks a text face

Three things, all of them mundane. Missing glyphs: the characters borrowed from Kannada and Hangul above will show as an empty box on a device whose fonts do not cover them. Proportional fonts: anything relying on aligned columns drifts out of true when letters are different widths. And formatting: an underscore or asterisk inside a face can be read as italic or bold markup by a chat client and silently removed, which is the same class of bug that eats the shrug emoticon‘s arm. The rest of the paste failures — ASCII-only fields, rich-text restyling, three-byte database columns — are worked through at kaomoji copy and paste.

The upright faces here are a cross-section of the full kaomoji collection; the soft end of the range is at cute kaomoji. The same characters arranged over several lines instead of one become text art.