Text Styling

Fancy text generator

Generated in your browser · nothing is uploaded

Local · Mathematical Alphanumeric Symbols, U+1D400

Type once and the same text comes back in nineteen Unicode styles: bold, italic and bold italic, script and bold script, fraktur, double-struck, sans bold and sans italic, monospace, circled, squared, fullwidth, small caps, superscript, upside down, and struck through, underlined or slashed. Tap any line to copy it.

How to use the fancy text generator

1 Type or paste your text.
2 Every style appears below at once — scroll to the one you want.
3 Tap a result to copy it, then paste it wherever you need it.
4 Check it renders where you are pasting it. Older Android is missing several of these blocks.

Most of what is on this page comes out of one block. Unicode 3.1 added Mathematical Alphanumeric Symbols at U+1D400, a contiguous run of over a thousand codepoints, so that a paper could distinguish a bold vector from an italic variable as characters rather than as formatting. Ten of the nineteen styles here are that block, and because it is contiguous each one is a flat offset from ASCII: bold A is U+1D400, bold B is the next codepoint, and so on to the end of the alphabet. That arithmetic is what makes a generator like this three lines of code, and it is also what makes the exceptions worth naming.

Script is the famous exception. B, E, F, H, I, L, M and R had already been encoded years earlier in Letterlike Symbols, so Unicode refused to encode them twice and left eight holes in the new block. A generator that only adds an offset produces blanks or unrelated glyphs on exactly those letters, which is why so much cursive text on the web has gaps in it; this substitutes the older characters, so every letter renders. Fraktur and double-struck have the same shape of hole in fewer places.

The styles that are not from the maths block each come from somewhere with its own reason. Circled letters — bubble text, which is what almost everybody calls them — were encoded for numbered lists and diagram callouts. The block runs ① to ⑳, but this styles one character at a time, so it uses ⓪ to ⑨ only and a longer number comes out digit by digit: 20 is ②⓪ rather than ⑳. Squared letters exist as uppercase only, because they were encoded for signage and abbreviations. Fullwidth comes from CJK typesetting, where a Latin letter is drawn to fill the same square cell as a Chinese character, which is exactly what produces the airy spaced out look — the spacing is the cell, not added padding. Upside down is scavenged from all over: the turned a is a phonetic vowel, the turned e is a schwa, the turned capital A is a logical quantifier, and the string is reversed as well, which is the half of the trick most tools forget. Small caps and superscript are the two here borrowed from the phonetic alphabets, and their missing letters are set out on the small text generator.

Two consequences follow from all of this being real characters and not formatting. Everything from the maths block sits above U+FFFF, so in UTF-16 each letter is a surrogate pair: a twenty-letter name is forty units against any limit counted that way, which is most of them. And search behaviour depends entirely on normalisation — under NFKC these fold back to plain letters, so a system that normalises before indexing will match 𝐡𝐞𝐥𝐥𝐨 against hello and one that does not never will. You cannot tell which you are dealing with from the outside.

The last three styles are different in kind. Strikethrough, underline and slash append a combining mark after each character instead of replacing it, so the underlying word is untouched: it still matches a search and a screen reader still reads it. That makes them the only ones here that cost nothing but character count, and they double it.

What people use it for

  • Styling a display name or bio in bold, italic or script
  • Getting cursive and bold-script letters that paste into a message
  • Getting bubble letters — circled or squared — for a list or a diagram
  • Striking text through on a platform that offers no formatting
  • Flipping a line of text upside down
  • Spacing a line out with fullwidth characters
  • Checking how a style renders before pasting it anywhere

Questions

It swaps each letter for a different Unicode character that happens to look styled. No font is involved, which is why it survives a paste.

Unicode, Mathematical Alphanumeric Symbols (U+1D400)
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding