Unicode Blocks Behind Every Style This Site Generates
Which Unicode block each of the 32 styles draws from, with the exact code point ranges, the official charts, and the characters each block leaves out.

Every style on this site is plain Unicode text. Nothing here is an image, a font file or a piece of CSS. When you copy styled text you are copying real characters that happen to look like a different typeface, which is why they survive a paste into a bio field that has no formatting controls.
That also explains every limitation on this page. A style can only render characters that exist in its block, and the blocks were never designed to be alphabets for social media.
Each block below links the Unicode Consortium’s own chart for it, which is the authoritative list of what the block contains. The full index is at unicode.org/charts.
Mathematical Alphanumeric Symbols
Most styles draw from this block, U+1D400 to U+1D7FF. It was added for mathematical notation, where a bold A and an italic A mean different things and therefore need separate code points.
| Style | Range starts at | Covers |
|---|---|---|
| Bold serif | U+1D400 | A–Z, a–z, 0–9 |
| Italic serif | U+1D434 | A–Z, a–z |
| Bold italic serif | U+1D468 | A–Z, a–z |
| Sans-serif | U+1D5A0 | A–Z, a–z, 0–9 |
| Bold sans-serif | U+1D5D4 | A–Z, a–z, 0–9 |
| Italic sans-serif | U+1D608 | A–Z, a–z |
| Bold italic sans-serif | U+1D63C | A–Z, a–z |
| Monospace | U+1D670 | A–Z, a–z, 0–9 |
| Script | U+1D49C | A–Z, a–z |
| Bold script | U+1D4D0 | A–Z, a–z |
| Fraktur | U+1D504 | A–Z, a–z |
| Bold fraktur | U+1D56C | A–Z, a–z |
| Double-struck | U+1D538 | A–Z, a–z, 0–9 |
The holes in this block
The block is not a clean run. Unicode had already encoded several of these letters elsewhere, as “letterlike symbols”, so the mathematical block skips them and the older code point has to be substituted.
Script style borrows eight characters this way: ℬ, ℰ, ℱ, ℋ, ℐ, ℒ, ℳ, ℛ, plus ℯ, ℊ and ℴ in lowercase. Fraktur borrows ℭ, ℌ, ℑ, ℜ and ℨ. Double-struck borrows ℂ, ℍ, ℕ, ℙ, ℚ, ℝ and ℤ. Italic serif borrows ℎ for lowercase h.
If a style seems to render one letter in a slightly different weight, this is why. The substituted character comes from a different part of the standard and font designers did not always draw it to match.
Digits
Only five of these styles include digits: bold serif, sans-serif, bold sans-serif, monospace and double-struck. The script, fraktur and italic styles have no digit range at all, so numbers pass through unchanged. That is not a bug in the generator; those code points do not exist.
In depth: mathematical alphanumeric symbols, with every hole listed and the code point each missing letter really has.
Enclosed Alphanumerics
Circled letters come from U+24B6 (Ⓐ) for uppercase and U+24D0 (ⓐ) for lowercase, with digits 1–9 at U+2460 and zero at U+24EA.
Filled circled letters come from U+1F150 (🅐), which is in Enclosed Alphanumeric Supplement. That block has uppercase only, so lowercase input is mapped to the same uppercase glyph.
Squared letters come from U+1F130 (🄰) and filled squared from U+1F170 (🅰), both uppercase only for the same reason.
In depth: circled letters in Unicode.
Halfwidth and Fullwidth Forms
Fullwidth, the vaporwave look, uses U+FF21 to U+FF5A plus U+FF10 to U+FF19. These are the wide forms used in Chinese, Japanese and Korean typesetting, where Latin letters occupy the same square cell as a CJK character. The extra spacing is the character, not padding added by the tool.
In depth: fullwidth text, and why the space is in a different block again.
Phonetic Extensions and Spacing Modifiers
Small caps are assembled from several blocks rather than one, mostly IPA Extensions and Phonetic Extensions. Coverage is genuinely incomplete: there is no small-capital X in Unicode, so the generator leaves a lowercase x in place.
Superscript and subscript are similarly scattered across Latin-1 Supplement, Spacing Modifier Letters and Superscripts and Subscripts. Several letters have no superscript form, and q has no subscript form.
In depth: small caps in Unicode and superscript and subscript.
Combining Diacritical Marks
The seven modifiers, and the Zalgo generator, use U+0300 to U+036F. These are zero-width marks that attach to the preceding character rather than occupying their own cell.
- Underline uses U+0332 combining low line
- Strikethrough uses U+0336 combining long stroke overlay
- Slash uses U+0338 combining long solidus overlay
- Dotted above uses U+0307 combining dot above
- Wavy tilde uses U+0303 combining tilde
Because they attach to whatever comes before them, they compose with any other style. A bold fraktur letter can carry an underline mark, and the result is still a single user-perceived character.
Stacking many marks on one character is what produces the Zalgo effect. It is also why heavily corrupted text can overflow its line box: the marks are drawn above and below the baseline with no reserved space.
In depth: combining diacritical marks, including the canonical ordering rules and the stacking limit in UAX #15.
What none of these blocks contain
None of them cover accented Latin characters. Type é, ü or ñ into any style and the character passes through unchanged, because there is no bold fraktur é in Unicode.
The same is true for Cyrillic, Greek, Arabic, Hebrew and every CJK script, and for most punctuation. Spaces, digits in unsupported styles, punctuation and emoji are all deliberately passed through untouched rather than dropped.