How FontBlaze Builds and Checks Styles

Every style on FontBlaze is built from the official Unicode Character Database and checked by automated tests. This page explains how, and is just as clear about what we have not tested.

At a glance

Unicode data
UCD 18.0.0Every alphabet is generated from the official Unicode Character Database files.
Styles in the catalog
5222 letter alphabets and 4 number styles generated from Unicode data; the rest are effects and decorations built on them.
Character gate
Unicode 11.0 or earlierNewer characters are left out because they often display as empty boxes.
Glitch cap
8 marksThe most combining marks any one character can carry.
Automated tests
Every buildThe build stops if any engine, data or content test fails.
Platform rules
Help pagesPlatform guidance comes from each platform's own help pages. FontBlaze does not test real accounts.

Where the characters come from

FontBlaze generates its alphabets from Unicode 18.0 data files published by the Unicode Consortium. Each styled character is looked up by its official name, for example MATHEMATICAL BOLD SCRIPT CAPITAL A, instead of being calculated from a starting position. That matters because several alphabets have reserved gaps where a letter was encoded earlier in another block. Those letters are handled through explicit, named exceptions, and an exception is rejected if the expected character turns out to exist.

Gates applied to every character

  • It must be an assigned, named Unicode character.
  • It must date from Unicode 11.0 or earlier, because newer characters often display as empty boxes.
  • Symbols and decorations must not default to color emoji.
  • Nothing may produce the replacement character U+FFFD or a broken surrogate pair.

How conversion behaves

  • Unsupported characters pass through unchanged, and results list the letters and digits that stayed plain.
  • Accented letters are not silently decomposed or stripped.
  • Reversing and flipping work on whole user-perceived characters, so emoji and flags stay intact.
  • Glitch effects are deterministic and capped at eight combining marks per character.

How the catalog stays distinct

FontBlaze keeps three kinds of item apart. Letter styles swap each letter for a Unicode character from one alphabet, such as bold or script. Effects add a mark to your own letters, such as a strikethrough or dots above. Themed designs combine one of these with symbols, emoji, frames around each letter or a mark between letters; they are designs, never extra alphabets. Unicodeโ€™s own FAQ calls the use of mathematical letters for styled-looking text an unintended side effect, so FontBlaze never presents them as fonts and always says which letters stayed plain.

Every style and design is rendered with several test texts, including accents, emoji and other scripts. A design is rejected when its output matches a letter style or another design, or when it differs from a design in the same theme by a single symbol. Each style page and platform page shows its strongest matches first, and its More button adds only designs from matching themes, letter styles or effects, so a page never grows with unrelated results.

How Help me choose ranks styles

On the home page, the copy and paste fonts page and the platform pages, Help me choose suggests two or three styles for what you are making, the look you want, and whether reading or decoration matters more. The ranking runs on your device, uses only the catalog and your text, and stores nothing.

  • Only styles with the look you chose are offered, one per letter shape, unless fewer than two styles have that look. Each styleโ€™s look is an editorial judgement, like its category.
  • Readability and display risk come from each styleโ€™s catalog entry, and count double when you choose Easy to read.
  • Characters in your text that a style cannot change lower its rank, and the reasons say which ones stay plain.
  • Messages avoid decorations, wide letters and combining marks. Names avoid combining marks and extra spaces. Graphics weigh display risk less, because you see the result while you make it.
  • Popularity and other visitorsโ€™ choices play no part.

Automated tests

More than a thousand automated unit tests run before each update is published. They check every alphabet against the official Unicode names, every documented exception by code point, digit coverage, preservation of punctuation, accents, emoji, flags and other scripts, determinism, glitch limits, and character counting. Randomized tests feed thousands of generated strings, including malformed text, through every style and confirm nothing crashes or produces invalid output. Browser tests check the tools at nine screen widths, from 320 to 1440 pixels, with keyboard only, and without JavaScript.

What is not tested

FontBlaze has not tested styles on live social media accounts or on a range of physical devices. Display depends on each readerโ€™s fonts, and platform rules change. That is why platform pages state only rules from each platformโ€™s own help pages, and why we recommend checking a style where you plan to use it.

Counting characters

Character counts use the browserโ€™s Intl.Segmenter to count user-perceived characters, with a fallback that was compared against it on hundreds of thousands of random sequences. Code points, UTF-16 units and bytes are shown separately.

The X post count follows the rules in Xโ€™s developer documentation and the weights in twitter-text, Xโ€™s open-source counting library: text is normalized to NFC, most letters, numbers and punctuation count as 1, most styled letters, emoji and CJK characters count as 2, and each link counts as 23. Links are found with twitter-textโ€™s own link rules. The count passes twitter-textโ€™s official conformance tests for weighted length and links, and it matched twitter-text 3.1.0 on 1,884 more texts, styled, spaced and joined. One difference is known. twitter-text 3.1.0 only knows emoji up to 2019 and counts newer joined emoji in parts, while Xโ€™s documentation says every emoji counts as 2; FontBlaze follows the documentation. Xโ€™s own emoji images stop at Emoji 15.0 (2022), so X may still count the newest joined emoji and flags, from Emoji 15.1 on, in parts: the phoenix as 5 instead of 2, for example. The count inside Xโ€™s own apps was not compared.

Coverage by style

The catalog has 52 styles: 22 letter alphabets, 4 number styles, 20 effects that work on any character (marks, order or spacing) and 6 decorated styles that add symbols around one of the alphabets. The table counts, for each alphabet and number style, how many of the basic Latin letters and digits have a styled form; everything else stays as typed. These counts come from the same data the converter uses.

Letters and digits with a styled form (out of 26 capitals, 26 small letters, 10 digits)
StyleStyled letters (capitals + small) and digits
Bold Script26 + 26 letters, 0 digits
Script26 + 26 letters, 0 digits
Bold26 + 26 letters, 10 digits
Bold Sans26 + 26 letters, 10 digits
Italic26 + 26 letters, 0 digits
Bold Italic26 + 26 letters, 0 digits
Sans Serif26 + 26 letters, 10 digits
Italic Sans26 + 26 letters, 0 digits
Bold Italic Sans26 + 26 letters, 0 digits
Fraktur26 + 26 letters, 0 digits
Bold Fraktur26 + 26 letters, 0 digits
Double-Struck26 + 26 letters, 10 digits
Monospace26 + 26 letters, 10 digits
Circled26 + 26 letters, 10 digits
Filled Circles26 + 26 letters, 10 digits
Parenthesized26 + 26 letters, 9 digits
Squared26 + 26 letters, 0 digits
Filled Squares26 + 26 letters, 0 digits
Small Caps25 + 25 letters, 0 digits
Superscript25 + 25 letters, 10 digits
Subscript17 + 17 letters, 10 digits
Fullwidth26 + 26 letters, 10 digits
Circled Numbers 1 to 100 + 0 letters, 9 digits
Filled Circled Numbers 1 to 100 + 0 letters, 9 digits
Double Circled Numbers 1 to 100 + 0 letters, 9 digits
Numbers With Full Stop 1 to 100 + 0 letters, 9 digits

Notes by style

  • Bold Script: Unicode has no digits in this style, so numbers stay plain.
  • Script: B, E, F, H, I, L, M, R, e, g and o come from the Letterlike Symbols block and may look mismatched in some fonts. Numbers stay plain.
  • Italic: Small h comes from the Letterlike Symbols block (Planck constant). Numbers stay plain.
  • Bold Italic: Unicode has no digits in this style, so numbers stay plain.
  • Italic Sans: Unicode has no digits in this style, so numbers stay plain.
  • Bold Italic Sans: Unicode has no digits in this style, so numbers stay plain.
  • Fraktur: C, H, I, R and Z come from the Letterlike Symbols block and may look mismatched in some fonts. Numbers stay plain.
  • Bold Fraktur: Unicode has no digits in this style, so numbers stay plain.
  • Double-Struck: C, H, N, P, Q, R and Z come from the Letterlike Symbols block and may look mismatched in some fonts.
  • Filled Circles: One form for both cases. Unicode only has capital letters in this style, so lowercase input becomes capitals.
  • Parenthesized: There is no parenthesized zero, so 0 stays plain.
  • Squared: One form for both cases. Capitals only, and no digits. Lowercase input becomes capitals.
  • Filled Squares: One form for both cases. Capitals only, and no digits. A, B, O and P may appear as color emoji on some devices.
  • Small Caps: One form for both cases. Unicode has no small capital X, so x stays plain. Q, F and S use newer characters that some fonts lack.
  • Superscript: One form for both cases. Capitals become small raised letters. q has no widely supported form, so it stays plain.
  • Subscript: One form for both cases. Unicode has no widely supported subscript b, c, d, f, g, q, w, y or z. Those letters stay plain.
  • Fullwidth: Spaces become wide ideographic spaces.
  • Circled Numbers 1 to 10: Numbers only: digits 1 to 9 and a 10 on its own. Unicode has no 0 in this set, so 0 stays plain, and so do letters.
  • Filled Circled Numbers 1 to 10: Numbers only: digits 1 to 9 and a 10 on its own. Unicode has no 0 in this set, so 0 stays plain, and so do letters.
  • Double Circled Numbers 1 to 10: Numbers only: digits 1 to 9 and a 10 on its own. Unicode has no 0 in this set, so 0 stays plain, and so do letters.
  • Numbers With Full Stop 1 to 10: Numbers only: digits 1 to 9 and a 10 on its own. Unicode has no 0 in this set, so 0 stays plain, and so do letters.

Why some characters stay plain: Unicode only has styled forms for the basic Latin letters and digits, and not even all of those (there is no styled italic digit, for example). Letters with accents, such as รฉ, keep their accent as a separate combining mark that may sit oddly on a styled letter. Other scripts (Arabic, Cyrillic, Devanagari, Chinese and the rest) are left as typed, because Unicode has no styled copies of them. And every result is drawn by the fonts on the reader's device, so a style that looks complete here can show boxes where those fonts lack a character.

Sources for this page

Every source FontBlaze uses is listed on the sources page.

Find a style or tool

โ†‘ โ†“ to move, Enter to open, Esc to closeSearched on this device. Nothing is sent or saved.