Kaomoji style
The kaomoji series writes a character as one line of text: (・ω・), ☁(^▽^) ♪, ฅ(・ω・)ฅ. The shape chooses the brackets, the state chooses the face and the tail. It has no body, which makes it the lightest series — and one you can still tell apart inside a line of prose.
The default series is vector; a character with no style set is drawn in it.
Variants
The shape picks the brackets
Which brackets a shape wears is decided by SHAPE_WRAPPERS in the engine: a cat is ฅ( )ฅ, a bunny ૮( )ა, a cloud ☁( ), and a shape without brackets of its own gets a plain pair of parentheses.
mochi | (・ω・) |
circle | (・ω・) |
blob | (・ω・) |
pebble | (・ω・) |
egg | (・ω・) |
bun | (・ω・) |
tofu | [・ω・] |
pill | ⊂(・ω・)⊃ |
hex | ⬡(・ω・) |
onigiri | △(・ω・) |
gem | ◇(・ω・) |
cloud | ☁(・ω・) |
drop | (・ω・) |
leaf | ❀(・ω・) |
flower | ✿(・ω・) |
clover | ✤(・ω・) |
sprout | ʚ(・ω・)ɞ |
mushroom | (・ω・) |
acorn | ⌒(・ω・) |
cactus | ٩(・ω・)۶ |
pear | (・ω・) |
apple | ◖(・ω・)◗ |
strawberry | ∴(・ω・)∴ |
cherry | ⚬(・ω・)⚬ |
star | ☆(・ω・) |
heart | ♡(・ω・) |
flame | ♨(・ω・) |
bell | ♪(・ω・) |
ghost | ༼ ・ω・ ༽ |
bot | [・ω・] |
crescent | ☾(・ω・) |
boba | ◦(・ω・)◦ |
fish | (・ω・)>< |
octopus | 〜(・ω・)〜 |
cat | ฅ(・ω・)ฅ |
bunny | ૮(・ω・)ა |
bear | ʕ・ω・ʔ |
chick | (・ω・) |
penguin | (・ω・) |
pig | ∪(・ω・)∪ |
fox | /(・ω・)\ |
bob | (・ω・) |
topknot | (・ω・) |
spiky | (・ω・) |
curly | (・ω・) |
twinbuns | (・ω・) |
The state picks the face and the tail
The face inside the brackets keeps the grammar of the cute face: dot eyes for attention, arcs for contentment, crosses for refusal. The tail after the brackets is the state's mood effect written as a mark: zZ, ♪, ✎, !. Every state has a face (STATE_FACES) and a tail (STATE_TAILS, which may be empty).
styleOptions.tail switches the tail off and leaves the brackets and the face.
As plain text
kaomoji(shape, state) returns the very line the series draws, so chat messages, terminal output and logs can use the same characters:
Parameters
As in the other series, the engine clamps values into range and drops unknown keys, and a running character can switch with update({ style, variant, styleOptions }).
What it draws, and what it does not
The line of text is the whole character. It rides the body's transform, so a hop, a squash or a tilt carries the text with it. The belt, the HUD dial and the particles have no counterpart here — mood is told by the tail, and activity by the tail and the face.
- The text is rendered in the host's font (falling back through
ui-sans-serif,PingFang SCandMicrosoft YaHei), so glyphs differ a little between systems. Width is estimated, and the font size is scaled so the whole line fits the character's box. - The colour is the character's ink, so it follows the light and dark theme like every other series.
- Static output is deterministic and needs no DOM, so it is safe for server rendering.
Next
- Vector styles — the default series and its seven variants
- Pixel style — the same character on a grid
- Shapes — where each shape's brackets come from