Fancy text generator
Type or paste text once and see it instantly converted to 20 decorative Unicode styles at the same time — bold, italic, cursive script, gothic, double-struck, circled, small caps and more — each with its own copy button. These are real Unicode characters, not a font file, so they paste as-is into any bio, username or chat that only accepts plain text.
How it works — and why some letters are exceptions
Every style on this page is a fixed table mapping plain A-Z, a-z and sometimes 0-9 to a different set of pre-existing Unicode characters. Nothing is rendered in a special font — 𝐛𝐨𝐥𝐝 is the literal character U+1D41B, sitting in the block called Mathematical Alphanumeric Symbols (U+1D400-U+1D7FF), which was added to Unicode specifically so mathematicians could write bold and blackboard-bold variables in plain text.
The reserved slots ("holes")
Most of that block is one clean, contiguous run of 52 characters per style (26 capitals, 26 lowercase) — but not all of it. A handful of letters in italic, script, gothic and double-struck already had a widely-used character somewhere else in Unicode before this block existed — physicists had been writing italic h for Planck's constant, and mathematicians blackboard-bold ℝ for the real numbers, for decades. Rather than create a duplicate, Unicode left that one slot in the new block unassigned and expects the older character to keep being used instead. Ask a renderer to draw the unassigned slot directly and you get an empty box — not because a font is missing a glyph, but because that specific code point was never given a meaning.
| Style | Letter(s) | Real character used |
|---|---|---|
| Italic | h | ℎ U+210E, Planck constant |
| Script | B E F H I L M R, e g o | e.g. ℋ U+210B, ℯ U+212F — Letterlike Symbols block |
| Gothic (fraktur) | C H I R Z | e.g. ℭ U+212D, ℌ U+210C — Letterlike Symbols block |
| Double-struck | C H N P Q R Z | e.g. ℝ U+211D, ℕ U+2115 — Letterlike Symbols block |
Bold, bold italic, bold script, bold gothic, every sans-serif weight and monospace have no such gaps: none of those styles existed as separate characters before this Unicode block was created, so there was nothing to unify with and every one of their 52 slots is assigned.
Everything that isn't the math-alphabet block
Circled, squared, small caps, fullwidth, upside down, strikethrough and underline aren't part of Mathematical Alphanumeric Symbols at all:
- Circled comes from Enclosed Alphanumerics — the same block that gives you ①②③.
- Squared comes from the Enclosed Alphanumeric Supplement, the same block behind emoji like 🅰 and 🅾 — capital letters only, no lowercase or digit forms exist, so lowercase input is upper-cased before lookup and digits pass straight through.
- Small caps has no dedicated Unicode block at all; it's assembled from three different ones (Latin Extended-B, IPA Extensions, Phonetic Extensions). There is no small-capital X anywhere in Unicode, so that one letter passes through unchanged.
- Fullwidth is a fixed arithmetic offset (+0xFEE0) over printable ASCII, borrowed from the Halfwidth and Fullwidth Forms block built for East Asian typesetting.
- Upside down uses look-alike characters from half a dozen unrelated scripts and reverses the character order — it is not a true 180° rotation of every glyph, because most letters have no dedicated "turned" character in Unicode at all.
- Strikethrough and underline insert a combining character — U+0336 or U+0332 — after every visible character rather than substituting a different letter.
Verified before shipping. Every reserved slot listed above, and every style's full A-Z / a-z / 0-9 output, was checked under Node against the Unicode 15.0 code charts to confirm nothing resolves to an unassigned code point or a replacement-character box. See About this tool for how.
All 20 styles, with "Fancy Text" as the example
| Style | "Fancy Text" becomes | Source block |
|---|---|---|
| Bold | 𝐅𝐚𝐧𝐜𝐲 𝐓𝐞𝐱𝐭 | Mathematical Alphanumeric Symbols |
| Italic | 𝐹𝑎𝑛𝑐𝑦 𝑇𝑒𝑥𝑡 | Mathematical Alphanumeric Symbols + Letterlike Symbols |
| Bold Italic | 𝑭𝒂𝒏𝒄𝒚 𝑻𝒆𝒙𝒕 | Mathematical Alphanumeric Symbols |
| Script | ℱ𝒶𝓃𝒸𝓎 𝒯ℯ𝓍𝓉 | Mathematical Alphanumeric Symbols + Letterlike Symbols |
| Bold Script | 𝓕𝓪𝓷𝓬𝔂 𝓣𝓮𝔁𝓽 | Mathematical Alphanumeric Symbols |
| Gothic (Fraktur) | 𝔉𝔞𝔫𝔠𝔶 𝔗𝔢𝔵𝔱 | Mathematical Alphanumeric Symbols + Letterlike Symbols |
| Bold Gothic | 𝕱𝖆𝖓𝖈𝖞 𝕿𝖊𝖝𝖙 | Mathematical Alphanumeric Symbols |
| Double-Struck | 𝔽𝕒𝕟𝕔𝕪 𝕋𝕖𝕩𝕥 | Mathematical Alphanumeric Symbols + Letterlike Symbols |
| Sans-Serif | 𝖥𝖺𝗇𝖼𝗒 𝖳𝖾𝗑𝗍 | Mathematical Alphanumeric Symbols |
| Sans-Serif Bold | 𝗙𝗮𝗻𝗰𝘆 𝗧𝗲𝘅𝘁 | Mathematical Alphanumeric Symbols |
| Sans-Serif Italic | 𝘍𝘢𝘯𝘤𝘺 𝘛𝘦𝘹𝘵 | Mathematical Alphanumeric Symbols |
| Sans-Serif Bold Italic | 𝙁𝙖𝙣𝙘𝙮 𝙏𝙚𝙭𝙩 | Mathematical Alphanumeric Symbols |
| Monospace | 𝙵𝚊𝚗𝚌𝚢 𝚃𝚎𝚡𝚝 | Mathematical Alphanumeric Symbols |
| Circled (Bubble) | Ⓕⓐⓝⓒⓨ Ⓣⓔⓧⓣ | Enclosed Alphanumerics |
| Squared | 🅵🅰🅽🅲🆈 🆃🅴🆇🆃 | Enclosed Alphanumeric Supplement |
| Small Caps | Fᴀɴᴄʏ Tᴇxᴛ | Latin Extended-B / IPA / Phonetic Extensions |
| Fullwidth (Wide) | Fancy Text | Halfwidth and Fullwidth Forms |
| Upside Down | ʇxǝ⊥ ʎɔuɐℲ | IPA Extensions and others (look-alikes) |
| Strikethrough | F̶a̶n̶c̶y̶ ̶T̶e̶x̶t̶ | Combining Diacritical Marks (U+0336) |
| Underline | F̲a̲n̲c̲y̲ ̲T̲e̲x̲t̲ | Combining Diacritical Marks (U+0332) |
Where these work, and where they honestly break
Where they work well
- Anywhere plain text is accepted. Social bios, display names, chat messages, document titles, forum posts — anywhere the field stores arbitrary Unicode, these paste in and display exactly as shown here.
- Standing out in a feed or a list. A bold or circled name reads differently at a glance among a wall of plain text — which is also exactly why some platforms rate-limit or flag unusual Unicode density as spam-like; use it for a name or a heading, not a whole paragraph.
Where they break
- Username/handle fields, not display-name fields. Most platforms restrict the actual @handle to ASCII so it stays typeable; a pasted fancy handle is typically rejected or silently stripped back to plain characters.
- Search and sorting. A bold "A" (U+1D400) is a completely different character from a plain "A" to a search index, a spreadsheet sort, or a Ctrl+F in most browsers. Text styled this way generally will not match a plain-text search for the same word.
- Older devices and narrow custom fonts. If the rendering font has no glyph for a given Unicode range, that character shows as a blank box — see the FAQ below.
- Form validation. Fields that only accept letters/digits/basic punctuation (many name fields, some payment forms) will reject or mangle these characters.
- Screen readers. Covered honestly in its own FAQ answer below — this is the limitation to take most seriously before using these styles anywhere accessibility matters.
Frequently asked questions
Is this actually a different font?
No — there is no font involved at all. Each style is a fixed table of ordinary Unicode characters that happen to look bold, italic, script and so on; 𝐛 is the single character U+1D41B, not the letter b rendered in a bold typeface. That is exactly why it pastes correctly into places that only accept plain text and have no way to apply CSS or a font file, like a bio field or a chat message.
Why do some of the styles show up as boxes or blank squares for me?
Because the device or app you're viewing them on doesn't ship a font with glyphs for that particular Unicode range. The Mathematical Alphanumeric Symbols block, where bold, italic, script, gothic, double-struck, sans-serif and monospace all live, is well covered by modern iOS, Android, Windows and macOS system fonts, but older devices, some Linux setups, and apps that substitute a narrow custom font can be missing it. There is nothing this tool can do about a font a visitor's own device doesn't have — the character being produced is correct even when a particular renderer can't draw it.
Will these work in my Instagram bio, Discord name or TikTok profile?
Almost always in a bio, display name or post — those fields generally accept any Unicode text. Actual login usernames/handles are a different story: most platforms restrict the account @handle itself to plain ASCII letters, digits, underscores and periods, specifically so it stays typeable and searchable, and will reject or silently strip a pasted fancy-styled handle. If a style doesn't save, try the display-name field instead of the username field.
Are these styles accessible to screen reader users?
Honestly, not well, and that's worth saying plainly rather than glossing over. A math-alphabet character has no semantic link to the plain letter it resembles, so screen readers commonly read it as an unrecognised symbol, spell it out letter by letter with unpredictable pronunciation, or announce nothing useful at all — behaviour varies a lot by screen reader and voice. Strikethrough and underline are worse: the combining marks they use are routinely ignored entirely, so the text is simply read out normally with no indication anything was struck through or underlined. Use these styles for decorative display names and social bios, not for text that carries information someone relies on a screen reader to get, and never as a substitute for real HTML <strong>, <em>, <s> or <u> tags in body content.
Why don't small caps have an X, or squared letters have digits?
Because the underlying Unicode characters simply don't exist for those combinations — it isn't a bug this tool could fix by trying harder. There is no dedicated small-capital X anywhere in Unicode, so that one letter passes through as an ordinary lowercase x. The squared letter block was only ever assigned for A-Z, with no matching digit forms, so 0-9 pass through unchanged in that style too. Wherever a style is missing a character, this tool always leaves the original character alone rather than substituting something that looks wrong.
Is my text uploaded or stored anywhere?
No. Every conversion runs as plain JavaScript in your browser — what you type never leaves your device, there is no server call involved, and nothing is saved between visits. Reloading the page clears the text box.
Can I combine two styles, like bold and strikethrough together?
Not from this tool directly — each row applies exactly one style to your original plain text, not to another row's output. You can do it by hand: copy a styled row such as Bold, paste it back into the input box, and the Strikethrough or Underline row will still lay its combining mark over the bold characters, because a combining mark attaches to whatever character comes right before it, math-alphabet or not. Stacking two math-alphabet styles into one character, such as bold and italic at once, isn't possible — that specific combination is already its own fixed character, and it's the one shown in the Bold Italic row.