Font Converter

Text Layout Font Generator

Eight ways of rearranging text rather than restyling it: underlined, upside down, slanted, spaced out, bubbled and blocked. Two of them are not really possible in copied text at all, and those sections say so and explain what to do instead.

12/500 characters. Every style below updates as you type.

Pick a look

Cannot be copied. Vertical layout is a renderer instruction, not a property of any character.

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

Marcus Rodriguez

Developed by

Marcus Rodriguez

Full-stack developer specializing in web font implementation and performance optimization

Sarah Mitchell

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.

The full directory is at all font generators.

Other categories

Frequently asked questions

Can I make vertical text I can copy and paste?
No. There is no vertical character in Unicode and no way to attach a direction to a string. Unicode defines how a renderer should behave in vertical layout, in annex UAX #50, but that only applies once something has already decided to lay text out vertically, which on the web means CSS. The only portable method is to put a line break between every character, which works in fields that accept multiple lines and fails in the ones that do not.
Why does my bubble text turn back into normal letters?
The field ran Unicode compatibility normalisation when it saved. That process maps circled, fullwidth, mathematical and superscript letters straight back to plain ASCII, silently and with no error message. Upside down text, small caps, underline and strikethrough are built from characters normalisation leaves alone, so those survive. The tool at the top of this page labels every style with which of the two it is.
Why are the numbers in my slanted text still upright?
Because none of the four italic sets in Unicode has digits. Neither do script, fraktur or small caps. Only bold, monospace, double-struck, sans-serif, sans bold, fullwidth, circled and superscript have a full set of styled numerals, so if your text contains digits and you want them styled too, you need one of those.
Why do some letters not change in upside down text?
Because l, o, s, x and z look the same upside down, so there is nothing to swap them for and they pass through unchanged. Separately, there is no upside-down capital set in Unicode, so uppercase input comes out looking lowercase. And the digits are borrowed from Hangul, Bopomofo and Greek, which is why numbers are the part most likely to show as empty boxes on somebody else's device.
How do I make block letters out of solid blocks?
Not with a character substitution. Unicode has the pieces, the Block Elements range at U+2580 to U+259F including the full block U+2588, but arranging them into letter shapes is a grid-composition job rather than a per-character swap, so it needs an ASCII banner tool. If you meant block letters in the everyday sense of separated printed capitals rather than joined handwriting, that is simply uppercase.
Does underlining work everywhere?
More reliably than most styles here, with one caveat. It uses a combining mark appended after each character rather than replacing your letters, so the text stays readable and searchable underneath, and it survives Unicode normalisation. But it doubles the code point count, so a name that fits in plain text may be rejected as too long once underlined, and because the line is drawn per character, some fonts show small gaps between the segments.
Advertisement