3tej home

What is Text Emoticons?

Text emoticons are faces made from ordinary keyboard characters, such as :-) :-D ^_^ and T_T. This page is a searchable library of more than 50 classic ASCII emoticons and kaomoji; click any one to copy it, then paste it into a chat, username, or post. It runs entirely in your browser.

Text Emoticons

Browse and copy 50+ classic ASCII emoticons. Click to copy.

🔒 Browser-only ⚡ Instant 💸 Free forever 📡 Works offline 🚫 No signup
← Utilities

TLDR

Browse 50+ classic text emoticons :-) :-D ^_^ T_T. Search by description or click any to copy.

Runs entirely in your browser. No upload, no signup, no logging. Output is for personal or commercial use; we don't claim any rights.

How to use this tool

  1. Browse the grid of more than 50 classic ASCII emoticons and kaomoji.
  2. Search to filter by description, such as heart, crying, or wave, to jump to the one you want.
  3. Click any emoticon to copy it straight to your clipboard; a confirmation appears below the grid.
  4. Paste it anywhere that accepts text: a chat, a username, a commit message, or a post.
  5. Nothing is stored. The catalog is built into the page and works offline once loaded.

Emoticons, kaomoji, and emoji

A text emoticon is a face made from ordinary keyboard characters. The Western style is read sideways, like :-) for a smile, and dates to 1982 when Scott Fahlman proposed :-) and :-( on a Carnegie Mellon message board to mark jokes. Japanese kaomoji, such as ^_^ and (T_T), are read upright and need no head tilt, which is why they read so naturally in chat. Both are plain text: they are letters, digits, and punctuation, not pictures.

That is the key difference from emoji. An emoji like a yellow smiling face is a single Unicode character that a font renders as a coloured glyph, and it can look different on each platform. An emoticon is just characters, so it appears identically everywhere, survives copy-paste into any field, and works in places that strip or block emoji, such as some usernames, terminals, and legacy systems. This page is a catalog of those character sequences with one-click copy.

Emoticon reference

EmoticonMeaningStyle
:-)SmileWestern (sideways)
;-)WinkWestern (sideways)
<3HeartWestern (sideways)
^_^HappyKaomoji (upright)
T_TCryingKaomoji (upright)
(^_^)/WaveKaomoji (upright)

Where text emoticons still beat emoji

Usernames and handles

Many sign-up forms reject emoji but accept punctuation, so a kaomoji can still add personality.

Code and commits

Commit messages, code comments, and terminals render plain text reliably where emoji may not.

Cross-platform consistency

An emoticon looks identical on every device; an emoji can vary or appear as a missing-glyph box.

Retro and ASCII art

Plain-text faces fit forum signatures, banners, and a deliberately old-school aesthetic.

Common mistakes and pitfalls

  • Confusing an emoticon with an emoji. Emoticons are typed characters; emoji are single Unicode glyphs that depend on the font.
  • Auto-correct converting :-) into a coloured emoji. Some apps swap emoticons automatically; paste into a plain-text field if you want to keep the characters.
  • Reading a kaomoji sideways. ^_^ and (T_T) are meant to be viewed upright, unlike the sideways :-).
  • Markdown eating the characters. Angle brackets in <3 or symbols can be interpreted by some editors; escape them if they vanish.
  • Expecting screen readers to announce a face. Assistive tech often reads the raw punctuation, so do not rely on an emoticon to carry essential meaning.

Related tools

Text Repeater

Repeat a phrase or emoticon any number of times.

ASCII Art Generator

Turn text into large block lettering.

Lorem Ipsum Generator

Placeholder text for mockups.

Character Name Generator

Names for stories and games.

Frequently asked questions

Is this tool free?

Yes - free forever, no signup, no daily limit.

Where does my input go?

Nowhere. The conversion runs entirely in your browser. Nothing is uploaded, stored, or logged.

Does it work offline?

After first load yes. The page caches in your browser.

Are large inputs supported?

Yes up to several megabytes. The transforms are O(n) and the browser handles MBs in milliseconds.

Is the output exactly correct?

Yes - these are deterministic transforms. Same input always gives the same output.

Why use this instead of writing the conversion in Python or Node?

Speed and convenience. The tool is a tab away with a copy button and runs in milliseconds. Useful for one-off tasks where opening a REPL or a script file is overkill. For repeatable / scripted work, do write the Python or Node version.

Can I bookmark this for offline use?

Yes - load the page once, then bookmark. Modern browsers cache the page and any CDN libraries. You can disconnect from the internet and still use the tool. Works great as a tab kept open.

Will this work on every browser?

Yes on every browser released in the last 5 years - Chrome / Edge / Firefox / Safari / Opera all support the Web APIs (Crypto, Canvas, URL constructor) the tools depend on. Internet Explorer 11 and below are not supported.

Can I use the output in production code?

Yes - the math and encodings are standards-compliant. Copy the result into your code. The tool itself is just a front-end; the underlying algorithms (URL encoding, JSON parsing, base64, etc.) are the same browser primitives your code uses.

How is this different from a Chrome extension or VS Code plugin?

Same end result, lower friction. No install, no permission prompt, no extension store. Just paste, transform, copy. The trade-off: an extension can integrate deeper (right-click menu, inline edit) - this is for ad-hoc conversion.