Generate over 358 distinctive Unicode typographic styles in real time. Perfect for Instagram bios, Discord nicknames, gaming handles, and creative digital copywriting.
Nothing on this page installs a typeface. Each of the 358 rows above is a lookup table: your letter goes in, a different Unicode character comes out, and that character is what lands on your clipboard. Type a capital A, pick the bold row, and you get U+1D400, MATHEMATICAL BOLD CAPITAL A. That is a distinct character with its own name and its own place in the standard, not the letter A wearing a heavier weight.
Most substitution alphabets here draw from the Mathematical Alphanumeric Symbols block, U+1D400 to U+1D7FF, which covers bold, italic, script, fraktur, double-struck, sans-serif and monospace letters plus several digit sets. The circled and parenthesised rows come from Enclosed Alphanumerics at U+2460 to U+24FF. The wide, evenly spaced vaporwave row comes from Halfwidth and Fullwidth Forms at U+FF00 to U+FFEF. The small-capital rows borrow letterforms from Phonetic Extensions at U+1D00 to U+1D7F, where they were encoded to write pronunciation rather than decoration.
That origin explains the quirks you will meet further down: a block built for equations or for phonetics contains exactly the characters those uses needed and nothing more. The app you paste into never learns you meant a styled A; it stores the code point it was handed, and everything below follows from that.
Strikethrough and underline work in the opposite direction. Your letters are left exactly as typed (a lowercase a stays U+0061) and a zero-width mark is inserted after each one. The single strike row appends U+0336, COMBINING LONG STROKE OVERLAY. The double strike adds U+0335 on top of that. The underline row appends U+0332, COMBINING LOW LINE, and the double underline uses U+0333. All of them come from the Combining Diacritical Marks block at U+0300 to U+036F, the same block that puts an accent over a vowel in French or Vietnamese.
A combining mark has no width of its own. It draws on the character before it, so a base letter and its mark render as one visible unit, what Unicode's text segmentation annex, UAX #29, calls a grapheme cluster. Your eye sees one struck-through letter; the string holds two characters.
That is the whole trick, and it explains why overlays behave unlike anything else here. The underlying word stays plain ASCII, so a system that strips combining marks before comparing can still match it. Overlays are also the one category whose length grows in step with your input, and by more than most people expect, which the next section puts numbers to.
The third mechanism changes no letters at all. A frame is a fixed prefix and a fixed suffix concatenated around whatever string it receives. Clan Wings brackets your text with U+A9C1 and U+0F3A in front, U+0F3B and U+A9C2 behind. The Javanese pair are rerenggan, ornamental marks from the Javanese block; the Tibetan pair are gug rtags, bracketing marks used in Tibetan text. Shooting Stars pairs U+2605 with U+5F61, a CJK ideograph. The bracket frames use CJK corner brackets at U+300C and U+300D or their doubled forms at U+300E and U+300F.
Most framed rows in this list are a composition rather than a single mechanism. The ornament wraps a substituted alphabet, so the outside is a frame and the inside is still mathematical letters, and you pay for both. A handful of the named signature styles wrap your plain text directly instead, and those are worth finding, because they are the rows that give you decoration with no change to the word itself.
Either way, the frame is text. It travels through a copy like any other characters, it counts against a field limit, and software announces or validates it exactly as it does the letters. Nothing about a frame is metadata; every ornament in it is payload.
Because the mechanisms differ, so does what each does to your character count, and this tool measures that rather than guessing. Run every style over a three-character string and over a forty-eight-character string, then compare: 24 of the 358 add nothing at all, 308 add the same fixed number however long your text is, and 26 grow with the input.
The fixed group is the frames. Clan Wings costs six characters, an ornament pair and a space at each end, and that number does not move whether your text is three letters or forty-eight. That is easy to plan around: subtract the frame's cost from the limit once, and the rest of the budget is yours.
The growing group is the overlays, and it is the one that actually breaks a cap. Single strikethrough added 41 characters to a 48-character test string, because it appends one mark per non-space character. Double strikethrough added 121. The most extreme zalgo row added 160, taking that 48-character string past 200. Ratios mislead you here, which is why the badges report absolute characters: ten added characters is half again as long on a 20-character handle and barely visible in a 2,200-character caption, so a percentage cannot be checked against a fixed limit while a character count can.
The Mathematical Alphanumeric Symbols block sits above U+FFFF, outside the Basic Multilingual Plane. That boundary matters because UTF-16 (the string encoding inside JavaScript, Java, C# and the text engines of most apps you paste into) stores anything above U+FFFF as a surrogate pair, two 16-bit units for one character. The block landed there in Unicode 3.1, released in March 2001, the first version of the standard to encode anything beyond the BMP at all.
The practical result is a factor of two in any field that counts code units rather than characters. Take a 23-character phrase containing two spaces: 23 characters plain, 23 code units. Convert it to mathematical bold and it is still 23 characters but 44 code units, because each of the 21 letters now costs two while the spaces still cost one.
So a limit you have always read as a character count can behave like half of itself. An Instagram bio caps at 150 characters, a display name at 30, a WhatsApp About at 139, an X post at 280. Whether you get the whole number or roughly half depends on how that field counts, and the only reliable check is to paste and watch the counter. Read each row's badge as a floor, not a promise.
Styled text buys visual novelty and pays for it in three places, none of them visible on screen.
Assistive technology is the worst. A screen reader meeting U+1D400 finds a character named MATHEMATICAL BOLD CAPITAL A, and depending on the reader and its speech dictionary it may announce that name, spell the run out letter by letter, or skip it and say nothing. A bio written in script can arrive as silence or as a recitation of character names. For someone using a reader, that is the difference between your profile being readable and not existing.
Plain-text search is the second. A find-in-page for a plain word will not match its bold version, because none of the code points are the same. There is a partial escape: the normalisation form NFKC applies compatibility mappings that fold these alphabets back to their ASCII equivalents, so a system that normalises before comparing does match. Most search boxes do not.
The third is silent removal. Plenty of platforms strip or reject characters outside a permitted range in structured fields, so a name that looked right in the preview arrives blank, mangled, or refused on save. Styling text that people need to read, search or quote is where this whole category is a bad idea.
Three questions settle almost every choice here, and none of them is about which row looks best in the preview.
First: how small will it render? A username shows at a small size in most feeds, often smaller than the text you are reading now. Double-struck and outline alphabets lose their interior detail at that size and turn into grey noise, and blackletter capitals I and J are hard to tell apart anywhere. Bold sans-serif and monospace hold up smallest, because they were drawn to stay legible in dense equations. Judge a candidate by shrinking your browser text, not by reading the row at full size.
Second: is the field searched or matched? Anything someone will look up (a shop name, a hashtag, an event title, a support handle) should stay plain. If a friend cannot type it and a search cannot find it, the styling has cost you the thing the text existed for.
Third: will a human have to retype it? Handles and usernames are the clearest case. Many networks restrict those fields to ASCII letters, digits and a separator, which makes every substitution alphabet here unavailable rather than merely unwise. Where a page on this site covers a handle field, its row badges say exactly that instead of showing a length you could never use.
Press copy and nothing about a typeface goes to the clipboard. What goes is a sequence of code points. The receiving app looks each one up in whatever fonts it has, finds a glyph, and draws it. That is why styled text works in places that offer no formatting at all (a game name field, a Discord nickname, an Instagram bio, an SMS) and why it survives moving between apps without carrying any styling that could be stripped along the way.
The flip side is the same mechanic backwards. If the reader's device has no font containing the code point you sent, it cannot draw anything, so it draws the missing-glyph box: a hollow rectangle, sometimes with the hex digits of the code point inside. That placeholder is a font's .notdef glyph, and it is the usual way styled text goes wrong on somebody else's screen, likelier on older Android builds, locked-down work machines and smart TVs than on a current phone.
A subtler version of the same problem is coverage. A block may not contain every letter, digit or punctuation mark a style needs, so the tool passes the missing ones through untouched and the word drops back to plain letters partway along. Type the exact text you intend to post before you copy, and any gap shows itself immediately.
Yes, free, and no. Every transformation runs in your browser, your text is never uploaded, and there is nothing to sign up for, no trial and no paid tier. Recent conversions and favourites are stored only in your own browser's local storage, so clearing site data clears them.
Because a few of those letters were encoded before that block existed. Script B, E, F, H, I, L, M and R, and blackletter C, H, I, R and Z, live in Letterlike Symbols at U+2100 to U+214F rather than the U+1D400 range, so fonts may draw them differently.
Avoid all three. URLs must percent-encode anything outside a restricted ASCII set, so a styled slug becomes unreadable. Filenames may work locally and break when the file moves between systems. Passwords are worst: some login forms normalise or strip what you type, so a password you can set may be one you cannot re-enter.
A quote, a repost or a copy carries the characters intact, because they are the text rather than formatting applied to it. A screenshot turns them into pixels, which looks fine but kills selection and search. Notification snippets and link previews sometimes truncate mid-character and leave a stray box.
Treat it as text a crawler may not match to the query you want. A heading built from substituted code points is not the same string as the plain word, and nothing guarantees a given indexer folds it back. Keep titles, headings and body copy plain, and get the look from CSS instead.
They do, as characters. The copy control on each row can also write real rich text for those destinations, pasting cursive or blackletter as ordinary letters carrying a genuine font family instead of substituted code points. That version stays searchable and spell-checkable in the document, and cannot turn into boxes.
Because an emoji is a code point too, and each vendor ships its own artwork. The crown, fire and blossom ornaments in the frame list render in Apple's design on iOS, Google's on Android, and something different again on Windows or inside a game client. Symbol-only frames vary far less.
Retyping is the reliable route, since the styled string keeps no memory of what you typed. For longer text, paste it into a converter that applies compatibility normalisation, which maps most substituted alphabets back to ASCII. Overlay styles are easier: strip the combining marks and the original letters are still there.