Text Layout Font Generator
12/500 characters. Every style below updates as you type.
Fullwidth
Fullwidth Latin
Reverts to plain text if the field normalises what you save
Circled
Enclosed alphanumerics
Reverts to plain text if the field normalises what you save
Small Caps
Unicode small capitals
Survives normalisation, stays styled once saved
Monospace
Mathematical monospace
Reverts to plain text if the field normalises what you save
Developer & Verifier
Developed by
Marcus Rodriguez
Full-stack developer specializing in web font implementation and performance optimization
Verified by
Sarah Mitchell
Typography expert specializing in font design, web typography, and accessibility
Where the characters sit
Direction, size and spacing are the three things people most often try to change by copying characters, and they are the three that work least well, because all three are decided by whatever is drawing the text rather than by the text itself. Two of the sections here are therefore partly about what not to bother trying.
Vertical text
This is the clearest example on the site of something a generator genuinely cannot do, so here is the mechanism. There is no vertical character in Unicode and no vertical flag you can attach to a string. Unicode does define how vertical text should behave, in an annex called UAX #50, which gives every character a Vertical_Orientation property saying whether it should be rotated or kept upright when a renderer is laying text out vertically. That is an instruction for the renderer. It only does anything when something is already choosing to lay text out vertically, which on the web means CSS writing-mode, and you cannot put CSS into a bio field.
What people actually do, and it is the only portable method, is put a line break between every character so the text stacks. It works in any field that accepts multi-line input, and it fails completely in any field that does not, which includes most display-name inputs. If you do it, use the fullwidth letters above rather than ordinary ones: they are square, so the column lines up instead of wobbling with each letter's width.
The tool at the top of this page will not insert those breaks for you. Doing so would produce something that looks right in the preview and then arrives as one long line, or gets rejected, nearly everywhere you paste it, which is worse than not offering it.
- Line By LineFullwidth
- Ⓛⓘⓝⓔ Ⓑⓨ ⓁⓘⓝⓔCircled
- ʟɪɴᴇ ʙʏ ʟɪɴᴇSmall Caps
- 𝙻𝚒𝚗𝚎 𝙱𝚢 𝙻𝚒𝚗𝚎Monospace
Big and wide text
Same problem as vertical, with one real workaround. Font size is set by whatever renders the text, so no character is bigger than another. The one thing Unicode has that genuinely occupies more space is the fullwidth block, U+FF01 to U+FF5E, where each Latin letter is drawn to fill a full character cell. It exists so that Latin can be mixed into Japanese text without breaking the square grid Japanese is set on, and a side effect is that fullwidth text takes up roughly twice the width of the same letters typed normally.
That is also the whole of what "wide font generator" means in practice. The alternative people reach for, putting an ordinary space between every letter, has real costs: it breaks search, so nobody can find your text by typing it, it breaks word wrapping, and a screen reader will read it out letter by letter. If you must space text manually, U+2009, the thin space, is less damaging than a full space, but the fullwidth characters are still the better answer.
If you genuinely need larger text rather than wider text, the answer is the platform, not the characters. Discord and most markdown fields make a heading with a hash at the start of a line, and everywhere else it is an image. Note also that fullwidth text is folded straight back to plain ASCII by platforms that normalise what you save, which the tool at the top of this page flags on every style.
- Line By LineFullwidth
- 𝐋𝐢𝐧𝐞 𝐁𝐲 𝐋𝐢𝐧𝐞Bold
- 𝗟𝗶𝗻𝗲 𝗕𝘆 𝗟𝗶𝗻𝗲Sans Bold
- 𝕃𝕚𝕟𝕖 𝔹𝕪 𝕃𝕚𝕟𝕖Double-Struck
Upside down text
Upside down text is not rotated, and understanding what actually happens explains every one of its quirks. The generator reverses the order of the characters, then swaps each one for a different Unicode character that happens to look like the flipped shape. Those substitutes come from all over the standard: ɐ is U+0250, a turned a from the IPA vowel set, ʞ is U+029E, ɹ is U+0279, ʇ is U+0287. None of them has anything to do with the letter it is standing in for.
Three consequences fall straight out of that. Five letters are their own reflection, l, o, s, x and z, so they pass through unchanged, and b and d simply swap with q and p. There is no upside-down capital set, so uppercase input comes out looking lowercase. And the digits are borrowed from other scripts entirely: 2 becomes ᄅ, a Hangul letter, 4 and 7 become ㄣ and ㄥ from Bopomofo, and 5 becomes ϛ, the Greek stigma. Those are the characters most likely to render as an empty box for someone else, which is why a flipped phone number breaks more often than a flipped name.
Two more things worth knowing before you use it. Punctuation is not flipped here, so a question mark stays a question mark and, because the string is reversed, ends up at the left of the line still the right way up. And because every character genuinely is a different character, no platform can normalise it back, so unlike bold or bubble text this one survives being saved in a name field. It also survives being unreadable to a screen reader, which will read the reversed string as nonsense.
- ǝuᴉl ʎq ǝuᴉlUpside Down
- L̶i̶n̶e̶ ̶B̶y̶ ̶L̶i̶n̶e̶Strikethrough
- ʟɪɴᴇ ʙʏ ʟɪɴᴇSmall Caps
- 𝙻𝚒𝚗𝚎 𝙱𝚢 𝙻𝚒𝚗𝚎Monospace
What each character is swapped for
These three are conventional style substitutions: your letter is exchanged for a different character that already exists in Unicode. They are the ones that behave predictably, and the ones a platform can quietly undo.
Bubble and bubbly letters
Bubble letters come from the Enclosed Alphanumerics block, U+2460 to U+24FF. Capitals start at U+24B6 with Ⓐ, lowercase at U+24D0 with ⓐ, and unusually for a Unicode style set it is complete: all fifty-two letters exist, plus a zero at U+24EA and one to nine from U+2460. Most of the styles on this site are missing something. This one is not, which is why it is the safest decorative set to use on text containing numbers.
There is a second, filled version people sometimes want, the white-on-black 🅐 to 🅩 at U+1F150 onwards in the Enclosed Alphanumeric Supplement. This tool does not use it on purpose: those characters sit in a range most platforms render as emoji, so a name set in them arrives as a row of coloured tiles on one device and as outlined letters on another. The outlined set above behaves the same way everywhere.
One warning. Circled letters are noticeably wider and taller than plain ones, so a bubble name takes up more room than the character count suggests and will be cut off in a short field. They are also folded back to plain letters by any platform that runs compatibility normalisation when it saves, which is the usual reason a bubble username reverts. For drawn bubble letterforms rather than enclosed ones, the bubble shelf at the bottom of this page has the seven fonts that exist.
- Ⓛⓘⓝⓔ Ⓑⓨ ⓁⓘⓝⓔCircled
- Line By LineFullwidth
- ʟɪɴᴇ ʙʏ ʟɪɴᴇSmall Caps
- ˡⁱⁿᵉ ᵇʸ ˡⁱⁿᵉTiny / Superscript
Block letters
Block letters means one of two things and it is worth being clear which you want. The everyday sense, the one on a form that says please print in block letters, just means separated capitals rather than joined handwriting. There is nothing to generate: that is your caps-lock key. The styles above are the ones that read as deliberately squared and evenly spaced if you want the feel rather than the instruction.
The other sense is letters built out of solid blocks, the banner lettering you see in terminal output and old forum posts. Unicode does have the pieces: the Block Elements range at U+2580 to U+259F contains the full block █ at U+2588, and the upper and lower half blocks ▀ and ▄. Building letters from them is an arrangement job, not a character substitution, so it needs a tool that composes a grid, and this one does not do it. If that is what you came for, the honest answer is that you need an ASCII banner generator, and the closest thing on this site is the ASCII converter.
The block letter shelf below is a third thing again: real fonts drawn as squared, even-weight capitals. Most of them are craft and scrapbooking families, so they ship capitals and little else. Check the preview with your actual text.
- Line By LineFullwidth
- 𝕃𝕚𝕟𝕖 𝔹𝕪 𝕃𝕚𝕟𝕖Double-Struck
- 𝐋𝐢𝐧𝐞 𝐁𝐲 𝐋𝐢𝐧𝐞Bold
- ʟɪɴᴇ ʙʏ ʟɪɴᴇSmall Caps
Slanted and italic text
Slanted text and italic text are not quite the same thing, and the difference explains what you get here. A true italic is a separate design based on cursive handwriting: the letterforms change shape, not just angle, so a single-storey a replaces the double-storey one and the g is usually redrawn entirely. An oblique is the roman design mechanically slanted, which is what a word processor does when you press the italic button on a font that has no real italic.
Unicode encodes the true italic, at U+1D434 onwards, as part of the mathematical alphabets. There is no oblique set. Two gaps are worth knowing about. Lowercase h is not where the pattern says it should be: that slot was left reserved because the character already existed as ℎ at U+210E, the Planck constant, so a tool that adds a fixed offset produces a blank there. And none of the four italic sets above has digits at all, so numbers in your text stay upright while the letters slant.
If italic is the only thing you want, the italic text generator covers it in more depth and has the font side of the question, which is why there is no italic group on the shelf here.
- 𝐿𝑖𝑛𝑒 𝐵𝑦 𝐿𝑖𝑛𝑒Italic
- 𝘓𝘪𝘯𝘦 𝘉𝘺 𝘓𝘪𝘯𝘦Sans Italic
- 𝑳𝒊𝒏𝒆 𝑩𝒚 𝑳𝒊𝒏𝒆Bold Italic
- 𝙇𝙞𝙣𝙚 𝘽𝙮 𝙇𝙞𝙣𝙚Sans Bold Italic
Marks added on top, and single letters
The last two work differently from everything above. One of them leaves your letters completely alone and adds something to them, and the other is about what happens when you only need one character.
Underlined text
There is no underlined alphabet in Unicode, and there does not need to be. Underline is done with a combining mark: U+0332, combining low line, which is appended after a character and drawn underneath it. Strikethrough is the same idea with U+0336, combining long stroke overlay. The letters themselves are never replaced, which gives this method one large advantage over every other style on the site. Your text stays genuinely readable and genuinely searchable, because underneath the marks it is still plain a, b, c.
The cost is length. A combining mark is a separate character, so underlining doubles the code point count: a 15 character name becomes 30. Length limits count code points rather than what you see, so a name that fits comfortably in plain text can be rejected once it is underlined. Backspacing behaves oddly for the same reason, removing the mark before the letter.
Two rendering notes. Because each mark belongs to its own character, the line is drawn per letter, so in some fonts you see small gaps between the segments rather than one continuous rule. And underlining does survive Unicode normalisation, unlike bold, bubble and fullwidth text, so it is one of the few styles here that stays applied in a field that normalises what it saves.
- L̲i̲n̲e̲ ̲B̲y̲ ̲L̲i̲n̲e̲Underline
- L̶i̶n̶e̶ ̶B̶y̶ ̶L̶i̶n̶e̶Strikethrough
- 𝕃𝕚𝕟𝕖 𝔹𝕪 𝕃𝕚𝕟𝕖Double-Struck
- 𝙻𝚒𝚗𝚎 𝙱𝚢 𝙻𝚒𝚗𝚎Monospace
Styling one letter at a time
A single styled letter, an initial or a monogram, is the hardest case to get right, and for a reason that is not obvious. With a word, one missing or badly supported character is survivable; the reader still gets the rest. With one character, a gap in the font is the whole message.
Several of these style sets have gaps, and they are specific. Small capitals have no X, because Unicode has never encoded a small-capital X, so an X comes through as an ordinary lowercase x. Superscript has no q for the same reason. Script, fraktur and double-struck each have a handful of capitals that live in the Letterlike Symbols block rather than in the main range, which is fine here because this tool maps them correctly, but it does mean those particular letters may render at a different weight to their neighbours on some devices.
The four sets above are complete across A to Z, a to z and 0 to 9, with no substituted or passed-through characters anywhere in them, which makes them safe choices for an initial. If the letter is for a logo or a wordmark rather than a profile, none of this is the right tool: a wordmark has to be one fixed shape you control, and copied characters are drawn by whatever font the viewer happens to have.
- 𝕃𝕚𝕟𝕖 𝔹𝕪 𝕃𝕚𝕟𝕖Double-Struck
- Ⓛⓘⓝⓔ Ⓑⓨ ⓁⓘⓝⓔCircled
- Line By LineFullwidth
- 𝙻𝚒𝚗𝚎 𝙱𝚢 𝙻𝚒𝚗𝚎Monospace
Which of these styles have numbers
This is the most common complaint about styled text and it has an exact answer, because digit coverage in Unicode was decided set by set. If a style has no digits, nothing can be done about it: the characters do not exist, so the numbers pass through as ordinary ASCII and sit in your styled text looking wrong. That is not a bug in a generator, and any tool claiming otherwise is substituting lookalikes from another script.
Styles with a full set of digits: bold, monospace, double-struck, sans-serif, sans bold, fullwidth, circled and superscript. Upside down has digits too, but they are borrowed from Hangul, Bopomofo and Greek rather than drawn as digits, so they are the least reliably rendered characters on the page.
Styles with no digits at all: italic, bold italic, sans italic, sans bold italic, script, bold script, fraktur, bold fraktur and small caps. Nine of the twenty-one. If your text contains a year, a house number or a handle with digits in it, those nine will style the letters and leave the numbers plain, which is usually the giveaway that text has been through a generator.
Underline, strikethrough and the glitch effect are the exception to the whole question. All three add a mark to whatever is already there rather than replacing it, so they work on digits, punctuation, accented letters and other alphabets equally. If you need every character in a string treated the same way, those three are the ones that can promise it.
What breaks when you rearrange text
- 1.Search stops matching, permanently. This matters more on this page than on the styling ones, because reversing a string and spacing one out both destroy the word entirely. Nobody will find your text by typing it, and mention autocomplete will not suggest you.
- 2.Length limits count code points. Underline and strikethrough double the count. Fullwidth does not double the count but does double the visual width, so it hits a different limit: the field accepts it and then truncates what is displayed.
- 3.Normalisation undoes most of this silently. Circled, fullwidth, italic and the rest of the mathematical sets are folded back to plain ASCII by any field that runs Unicode compatibility normalisation on save, with no error shown. Upside down, small caps, underline and strikethrough are built from characters that folding leaves alone, so they stick. Every style in the tool at the top of this page is labelled with which group it is in, and the label is computed by running the real output through the normalisation rather than read from a list.
- 4.Screen readers do badly with all of it. Reversed text is read as nonsense, spaced text is read letter by letter, and combining marks are often announced by name. Never do any of this to text somebody needs in order to use something: rules, instructions, headings, channel descriptions.
- 5.Sorting and comparison break too. A styled string does not compare equal to its plain spelling, so it sorts in a strange place in any list, and any system that deduplicates or matches names will treat it as a different person.
Downloadable fonts, grouped by look
Everything above is Unicode text, which means it renders in whatever font the reader's device happens to supply. When you need a specific look to survive that, you need a real font file. These are grouped so you can browse by the look you are after, and each name links through to its download page and its licence on FreeFontZone.
Block letter faces
Squared, even-weight capitals of the kind you would hand-print rather than write. Mostly craft and scrapbooking families, so expect capitals and simple punctuation only.
Bubble and rounded faces
Seven of them, which is the whole category. Inflated, soft-cornered letterforms, the drawn version of the circled characters above rather than the enclosed ones.
Browse the individual generators
The styles above cover the looks people ask for by mood. When you already know the typographic name for what you want, these pages go deeper on one style each.
One typographic property, in depth
Where the slanted, block and single-letter sections above stop, these carry on.
- Italic Text GeneratorThe full italic answer, including the U+210E h exception and the font side.
- Bold Font GeneratorEvery bold variant, serif through sans, and all of them have digits.
- Monospace Font GeneratorFixed-width letters and digits, and where they do and do not line up.
- Small Caps Font GeneratorSmall capitals on their own, and the missing X explained properly.
- Large Font GeneratorThe other half of the big text question, with a font shelf behind it.
Layout done with a real font
When the shape of the text matters more than the characters, these are download pages rather than copy and paste tools.
When the characters themselves are the point
Pages about the standard rather than about a look.
The full directory is at all font generators.
