Skip to main content

Kaomoji, Explained: How Japanese Emoticons Like the Shrug and Table Flip Actually Work

Kaomoji are upright text faces built from Unicode characters. Learn how they differ from emoji, how to browse them by mood, and where to paste them.

Published By Li Lei
#kaomoji #japanese-emoticons #text-faces #unicode

Kaomoji, Explained: How Japanese Emoticons Like the Shrug and Table Flip Actually Work

You have seen ¯\(ツ)/¯ at the end of a Slack message and (╯°□°)╯︵ ┻━┻ in a game chat. Those are kaomoji: Japanese emoticons, little faces and scenes assembled from ordinary text characters. They are not emoji, even though people use the words interchangeably, and the difference is the whole reason they behave the way they do. This guide walks through what a kaomoji really is, how it differs from the emoji on your phone keyboard, how to find one by mood, and where it will and will not paste cleanly.

What a kaomoji actually is

A kaomoji is a face you read upright. That sounds obvious until you compare it to the Western emoticon. The classic :) is sideways. You tilt your head ninety degrees to see the eyes and the smile. A kaomoji like (^_^) or the teary (╥﹏╥) faces you head-on, no neck strain required. The word itself is Japanese: kao means face, moji means character.

Here is the concrete part that everything else depends on. A kaomoji is built from plain Unicode characters strung together. The happy face (。♥‿♥。) is literally the sequence left-paren, ideographic full stop, heart, tie character, heart, full stop, right-paren. You can select it, copy it, and retype each piece. It is not one special symbol. It is a string. That single fact is what separates it from an emoji and makes it so portable.

The two most famous kaomoji in the English-speaking internet are both built this exact way. The shrug ¯\(ツ)/¯ is a macron, a backslash, an underscore, the katakana tsu ツ in parentheses, an underscore, a forward slash, and a closing macron. The table flip (╯°□°)╯︵ ┻━┻ uses box-drawing characters for the table that goes flying. Neither one is a single codepoint your phone draws. Each is a tiny piece of typography you could, in theory, type by hand. In practice nobody wants to hunt down a macron and a katakana character, which is exactly why a picker exists.

How kaomoji differ from emoji

This is the question people actually mean when they ask. An emoji such as the grinning face is a single Unicode codepoint, and every platform draws that codepoint with its own colorful artwork. The same emoji looks like one thing on an iPhone, another on Android, and another on Windows. You have no control over the rendering; the operating system owns it.

A kaomoji is plain text. Several normal characters in a row, rendered in whatever font the text box is already using, with no color and no platform artwork. Because there is no special emoji codepoint involved, the platform never redraws it. As long as the font contains the glyphs, the face reads identically everywhere. That is why kaomoji feel at home in places emoji feel out of place: commit messages, code comments, monospace terminals, and any context where you want text to stay text.

It also means kaomoji survive in places that strip emoji entirely. Older chat clients, many command-line tools, plain-text email, and some username fields reject emoji codepoints but happily accept text. Drop a kaomoji there and it goes through, because to the system it is just more characters. If you want the colorful single-codepoint kind instead, that is a different job entirely, and an emoji finder is the right tool for searching those by name.

Browsing by emotion instead of memorizing

Nobody memorizes a hundred faces. The practical way to use kaomoji is to start from a mood. The kaomoji picker groups its faces into categories like happy, sad, angry, love, surprised, cute, and animals. You pick the mood you are in, scan the row, and grab the one that fits.

When you already know the specific face you want, search is faster. Every face carries English keywords, so typing shrug jumps straight to ¯\(ツ)/¯, typing bear surfaces ʕ•ᴥ•ʔ, and typing wink, cry, or angry filters the list as you type even though the faces themselves are language-neutral symbols. You can also combine the two: open the cute category and then type a keyword to narrow it down. The faces are the same characters regardless of language, so the search is just a convenience layer sitting on top of plain text.

A worked example: picking a face for a mood

Say a teammate asks why the staging build got slow, and the honest answer is that you do not know yet. You want to acknowledge it without writing a paragraph of hedging. Here is the flow.

You open the picker, type shrug in the search box, and the list narrows to the shrug faces. The classic ¯\(ツ)/¯ is right there. You click it. A small confirmation pops up and the full string is now on your clipboard, including the awkward macron and katakana you would never get right by hand. You switch to Slack, paste, and add the real reply underneath: "Looking into it, probably the new asset step." The face carries the tone, the words carry the content, and you spent about three seconds on it.

The same flow handles the table flip after a lost ranked match. Pick the angry category, click (╯°□°)╯︵ ┻━┻, paste into the game chat. Because it is plain text, it shows up in the client where a real emoji would often get stripped, and the box-drawing pieces render cleanly on any modern font, so your teammates actually see the table go flying.

Where kaomoji paste, and where they get tricky

The short answer is everywhere that accepts text, which is almost everywhere. Slack, Discord, WhatsApp, X, a git commit message, a code comment, a YouTube title, a game username, an email signature, a terminal prompt. Since there is no emoji codepoint involved, kaomoji even work in the plain-text corners where real emoji vanish.

The one caveat is fonts. The common ASCII pieces like (^_^) render on every device ever made. Faces that lean on katakana such as ツ, or on box-drawing parts like ┻━┻, need a font that contains those specific glyphs. On a very old device without that coverage, a reader sees a tofu box, the little empty rectangle that means "I have no glyph for this." Modern phones and browsers ship fonts that cover these characters, so the vast majority of people see the faces correctly, but if your audience runs ancient clients, lean on the pure ASCII faces.

Two small traps are worth naming. First, do not hand-rebuild the shrug character by character; you will end up with a broken ¯(ツ)/¯ missing a slash or with the wrong dashes. Copy the whole string from one source. Second, when you put a shrug in code or JSON, escape the backslash. A raw ¯\(ツ)/¯ in a string literal eats the underscore as an escape sequence, so you need ¯\\(ツ)/¯ for the backslash to survive to the output.

When I reach for a kaomoji

I keep the picker open in a pinned tab for one reason: commit messages. Colorful emoji are a gamble in a monospace terminal, but a kaomoji is safe because the font draws the characters directly instead of a platform redrawing a codepoint. I tag a relieved bugfix with (´。• ᵕ •。`) and a defeated one with (╥﹏╥), and they read the same in git log, on the web diff, and in my terminal. It costs nothing, it survives everywhere, and it adds a flicker of tone to a log that is otherwise all dates and hashes. If I want decorative lettering for a title instead of a face, I switch over to a fancy text generator, but for a quick face, the picker wins every time.

That is the whole idea. Kaomoji are upright faces made of plain Unicode text. They differ from emoji because they are characters, not codepoints, which is why they paste anywhere and read consistently. Browse by mood, click to copy, and let the picker handle the macron and the katakana you would rather not type.


Made by Toolora · Updated 2026-06-13