How Unicode Fancy Fonts Actually Work

By Christopher Shangrei, Chrismark Studio · Published · 5 min read

There's no fancy font in your bio, even when it looks like there is. When you paste text into an app, only the characters make the trip. The font and any formatting stay behind.

So how does 𝓢𝓸𝓯𝓲𝓪 end up looking like handwriting in a place where you can't pick a font? You didn't change the font at all. You changed the letters.

You're swapping letters, not changing the font

Every character you can type has an official number and name in Unicode. That shared list is how phones and computers agree on what each character is. A normal capital A is one character. 𝐀 is a different character, with a different number.

A fancy-text generator works a lot like find and replace. For each letter you type, it looks up a styled character and swaps it in. Type Sofia, pick a style, and you get five brand-new characters that happen to look like a styled version of your name.

Because the result is just characters, it goes anywhere plain text goes: bios, usernames, comments, game name fields. As long as the reader's device can draw those characters, they show up styled. When it can't, you get empty boxes, which our guide on why fancy text shows as boxes explains.

Where the styled alphabets come from

Here's the funny part: a lot of these letters weren't made for bios. They live in a Unicode block named Mathematical Alphanumeric Symbols, which was added for writing maths.

You can tell from their official names. 𝐀 is MATHEMATICAL BOLD CAPITAL A. 𝒜 is MATHEMATICAL SCRIPT CAPITAL A. The block has full alphabets in bold, italic, script, gothic (which Unicode calls fraktur), double-struck, sans-serif and monospace, plus some mixes like bold italic and bold script.

It even has styled numbers. 𝟎 is MATHEMATICAL BOLD DIGIT ZERO, so a gamer tag can have bold digits that match its bold letters.

The missing letters

The math alphabets aren't complete. Across the 11 styles we checked letter by letter, there are 24 empty slots where a letter should be. Those slots are reserved and empty.

For each gap, a matching letter lives in a separate set of letter symbols instead, so generators borrow it from there. Take the script capital H. There's no MATHEMATICAL SCRIPT CAPITAL H. The letter you get is ℋ, whose name is just SCRIPT CAPITAL H. You can see it in the Cursive Light row on our H in different fonts page.

The oddest one is the italic small h. Its slot is empty, and the character used in its place is ℎ. Its official Unicode name is PLANCK CONSTANT, a symbol from physics. Type a lowercase h into the Elegant Serif style on the H page and that's the character you're copying. In a bio it just looks like a slanted h, so nobody reading it will ever know.

Other tricks besides the math alphabets

Not every style comes from the math block. Some of the looks you'll find on this site use completely different parts of Unicode.

Wide letters. A is FULLWIDTH LATIN CAPITAL LETTER A, a wide version of the normal letter. It's the Fullwidth row on every letter page.

Circled letters. Ⓐ is CIRCLED LATIN CAPITAL LETTER A, the Circled row.

Small capitals. ᴀ is LATIN LETTER SMALL CAPITAL A, a capital shape drawn at lowercase height. Unicode has one for every letter except X, which our X page talks about.

Upside-down letters. Upside-down text swaps letters for characters that look turned over, and those characters come from all over Unicode. Some are Latin letters, like ɐ, LATIN SMALL LETTER TURNED A. Others are borrowed from completely different writing systems: פ is a Hebrew letter, Ԁ is Cyrillic, and ᗡ comes from Canadian Syllabics. A few are maths symbols, like ∀, officially called FOR ALL.

Lines and glitches. Strikethrough and zalgo styles keep your original letters and pile combining marks on top of them. Those marks are characters too, they just attach themselves to whatever comes before them.

How computers can still read 𝐇𝐞𝐥𝐥𝐨 as "Hello"

Many styled characters carry a hidden note in Unicode that says which plain letter they're based on. 𝐀 is marked as a font version of A. A is marked as a wide A, and Ⓐ as a circled A.

Software can use those notes to turn styled text back into plain letters. The standard way of doing this is called NFKC normalisation. Run 𝐇𝐞𝐥𝐥𝐨 through it and you get plain Hello.

Not every style has a note like that, though. Here's how a few of them come out:

CharacterUnicode's noteAfter NFKC
𝐀font version of AA
ℋfont version of HH
Awide AA
Ⓐcircled AA
ᴀnoneᴀ (unchanged)
ɐnoneɐ (unchanged)
🅐none🅐 (unchanged)

So small capitals, turned letters and filled circle letters can't be converted back this way. To a computer, they stay their own characters.

Why styled names hit length limits sooner

If an app limits how long your name can be, there's a catch: "how long" can be measured in more than one way.

One common way to store text inside a computer is called UTF-16. In UTF-16, everyday letters take one unit each, but some characters take two. 𝐇𝐞𝐥𝐥𝐨 is five characters to you. In UTF-16 it's 10 units, because every one of those bold letters takes two. Their numbers, like U+1D407 for 𝐇, are too big to fit in one unit. A fullwidth A (U+FF21) fits in one, so it only costs one.

Some software counts length in those units rather than in characters. JavaScript, the programming language used on web pages, counts a string's length that way. So a styled name can run into a length limit sooner than the plain version would. If your styled name gets cut off or won't save, try styling only part of it.

Searching and hashtags

Will people find you if they search for your name in plain letters? Honestly, it depends on the app.

If an app converts styled characters back to plain ones before it searches, the way NFKC does, a search for Sofia could match 𝓢𝓸𝓯𝓲𝓪. If it doesn't, the search sees completely different characters and comes back empty. We can't promise which apps do which.

The safe move is to keep anything people need to find in plain letters, like your username and your hashtags. Save the styling for your display name or a word or two in your bio. If you want to see these tricks side by side, try the Unicode text, upside-down text and tiny text generators.