Logo

MonoCalc

/

Kaomoji Picker

Social Media

Showing 230 of 230 kaomoji. Names describe what the drawing depicts; the tags are informal community usage that varies by region and changes over time, not a fixed meaning. Library reviewed 2026-09-15.

Kaomoji render with the fonts installed on your own device and no web font is loaded here, so characters your device has no font for appear as boxes — on this page and potentially wherever you paste them. Per-character Unicode names are not shipped; the breakdown table gives the U+XXXX code and a role worked out at runtime, so there is no name snapshot here to go stale.

Pick a kaomoji

Choose one from the grid to copy it and to see its copy variants, its cost in graphemes, code points and UTF-16 code units, and how it sits inside a line of text.

About This Tool

Kaomoji Picker – Browse, Copy and Measure Text Emoticons

A kaomoji is a face built out of ordinary text characters and read the right way up, which is what separates it from a Western emoticon like :-) and from an emoji. The word is Japanese for “face character”, and the family runs from the three-character -_- to elaborate scenes such as (╯°□°)╯︵ ┻━┻. This kaomoji picker is a browsable library of 230 of them with one-click copy, a character-cost readout and a neutral preview of how one sits inside a line of text.

Why kaomoji survive where emoji do not

Because a kaomoji is plain Unicode text, it goes wherever text goes: a comment box, a commit message, a profile bio, a filename, a terminal. Nothing has to support an image format. That same property is what makes kaomoji fragile in a way emoji are not — they are assembled out of brackets, katakana, combining marks and box-drawing characters that were never designed to appear together, so four things routinely break them.

The four ways a kaomoji breaks

Normalisation. Running text through Unicode NFKC rewrites halfwidth katakana (ノ becomes ノ) and collapses fullwidth brackets (( becomes (), which quietly redraws the face. This tool never normalises a glyph; the only thing it folds is the search key it builds from the name and tags.

Markdown. A Markdown renderer eats backslashes and turns paired underscores into italics, so ¯\_(ツ)_/¯ pasted raw commonly arrives with one arm missing. The Markdown-safe copy variant escapes the punctuation that a renderer would otherwise consume, and shows you the escaped string so you can see exactly what changed.

Fonts. A character renders only if the device has a font containing it. Kaomoji borrow from Japanese, Korean, Thai, Canadian Aboriginal syllabics and several symbol blocks, and no device carries all of them, so boxes are a font-coverage fact rather than a bug — on your machine or on whatever you paste into.

Counting. The same string has three legitimate lengths, and the tool reports all three separately.

Graphemes, code points and UTF-16 units

A grapheme is what a reader perceives as one character. A code point is one Unicode scalar value. A UTF-16 code unit is what String.lengthcounts in JavaScript. A combining mark adds a code point without adding a grapheme; a character outside the basic multilingual plane costs two UTF-16 units; a zero-width joiner and a variation selector are invisible and still cost. Grapheme segmentation here uses Intl.Segmenter with the locale pinned, so the same kaomoji measures the same on every machine, and the tool falls back to code-point counting — clearly labelled as approximate — on engines that lack it.

Names describe the picture, not the meaning
Every label in the library says what the drawing depicts, such as “table flip” or “bear”. Connotations appear only as informal search tags. Kaomoji usage varies by region and community and shifts over time, so nothing here should be read as an authoritative meaning.

What the tool deliberately does not do

It reports the cost of the kaomoji you selected and nothing else. It does not accept free-form text for analysis, does not assert any platform’s character limit, and makes no claim about how a kaomoji performs anywhere. The composer preview is a plain unbranded box shown at several sizes, including a monospace line, because many kaomoji were drawn for fixed-width contexts and shift noticeably outside them. It shows how the characters sit against surrounding text on your device — it cannot predict another platform’s rendering.

Favourites, recents and privacy

Starred entries and recently copied ones are kept in your browser’s local storage as entry identifiers, never as glyphs, and every read is validated against the library before anything is shown. Nothing is uploaded, no analytics call carries your search term, and the tool works end to end with storage blocked — it simply forgets between visits.

Frequently Asked Questions

Is the Kaomoji Picker free?

Yes, Kaomoji Picker is totally free :)

Can I use the Kaomoji Picker offline?

Yes, you can install the webapp as PWA.

Is it safe to use Kaomoji Picker?

Yes, any data related to Kaomoji Picker only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

What is a kaomoji?

A kaomoji is a face drawn out of ordinary text characters, read upright rather than sideways — (╯°□°)╯︵ ┻━┻ rather than :-). The word is Japanese for 'face character'. Because a kaomoji is plain Unicode text rather than a picture, it can be typed or pasted into any field that accepts text, including ones that strip images or reject emoji.

How does this kaomoji picker work?

The whole library is compiled into the page, so filtering, copying and counting all happen in your browser with no network requests of any kind. Pick a category or type a search term, click a card to copy it, and the detail panel shows the copy variants, the character-cost breakdown and a neutral composer preview for whichever one you selected.

Why does a kaomoji look wrong after I paste it into a Markdown box?

Markdown treats a backslash as an escape character and a pair of underscores as italics, so ¯\_(ツ)_/¯ pasted raw very often comes out as ¯_(ツ)_/¯ with the arms mangled and the middle italicised. The Markdown-safe copy button gives you the same kaomoji with those characters backslash-escaped, which renders as the literal characters instead. Use the plain variant everywhere that is not a Markdown renderer.

Why does the tool show three different character counts?

Because they measure three different things and a field may charge you by any of them. Graphemes are what a person sees as one character, code points are Unicode scalar values, and UTF-16 code units are what JavaScript's String.length reports. A combining mark adds a code point without adding a grapheme, and a character outside the basic plane costs two UTF-16 units, so the three numbers can all differ for the same kaomoji. This tool never presents one of them as 'the' character count.

Why do some kaomoji show up as empty boxes?

A box means your device has no font containing that character, so the browser falls back to a placeholder. Kaomoji draw on Japanese, Korean, Thai, Canadian Aboriginal syllabics and assorted symbol blocks, and no single device ships all of them. This tool deliberately loads no web font, so what you see is your own device's font coverage — and the same character may render differently, or not at all, wherever you paste it.

Does copying work on a phone?

Usually yes. Copying uses the browser clipboard API, which needs a secure context and can be refused by permission settings; when that happens the tool selects the text and asks you to press the copy shortcut or use your device's copy action rather than failing silently. You can also select the kaomoji by hand — every one on the page is real, selectable text, not an image.