Social Media Font Generator
11/500 characters. Every style below updates as you type.
Script
Mathematical script
Reverts to plain text if the field normalises what you save
Bold Script
Mathematical bold script
Reverts to plain text if the field normalises what you save
Small Caps
Unicode small capitals
Survives normalisation, stays styled once saved
Circled
Enclosed alphanumerics
Reverts to plain text if the field normalises what you save
Italic
Mathematical italic
Reverts to plain text if the field normalises what you save
Fullwidth
Fullwidth Latin
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
Short-bio platforms
All three of these give you the same four text surfaces, and almost every "does this work" question turns out to be a question about which one you meant.
- The handle. The @name. It is an identifier: it has to be unique, it is part of your profile URL, and it is restricted to a small set of ASCII characters. Nothing on this page can go in it, on any of these platforms.
- The display name. A separate, free-text field that does not have to be unique. This is where the styled names you have seen actually live.
- The bio. Free text, short limit, and the field where character counting bites hardest.
- The post or caption body. Free text, long limit, and the surface with the strongest reason not to style anything, because it is the part people actually read.
Keep that split in mind and most of the confusion goes away. When someone says they saw a styled username, they saw a display name.
Instagram bios and display names
Instagram keeps the username and the name in two different places, and they behave nothing alike. The username is the handle in your profile URL and is limited to ordinary letters, digits, full stops and underscores, so no character produced by this tool will be accepted there. The name is a plain text field sitting above it, and that is the one people style.
The trade is worth stating plainly, because it is a real one. Instagram matches search queries against the username and the name. A styled name is a different string from the plain spelling, so somebody typing your name the ordinary way is matching against characters you no longer have. If being found matters more than the look, leave the name alone and put the styling in the bio, where nobody is searching for you anyway.
One quiet detail about the circled set in this preset: those characters are not letters. U+24D0 CIRCLED LATIN SMALL LETTER A carries the Unicode general category So, Symbol other, the same class as an arrow or a dingbat. Everything downstream that treats text as language, from search to machine translation to a speech synthesiser, is entitled to treat it that way too.
- ๐ดโด๐๐ โ๐ถ๐๐น๐โฏScript
- ๐จ๐ธ๐พ๐ป ๐๐ช๐ท๐ญ๐ต๐ฎBold Script
- สแดแดส สแดษดแด สแดSmall Caps
- โโโคโก โฝโโโโโCircled
- ๐๐๐ข๐ ๐ป๐๐๐๐๐Italic
- ๏ผน๏ฝ๏ฝ๏ฝ ๏ผจ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ Fullwidth
TikTok nicknames, and the tightest field on this page
Same two-field split as Instagram. The @username is an identifier on an ASCII character set; the nickname above it is free text. What makes TikTok different is length. Its bio is a tight field, tight enough that the choice of style stops being an aesthetic question and becomes an arithmetic one.
Take the phrase "coffee and code", fifteen characters as you see it. In small caps, superscript, upside down, circled or fullwidth it is still fifteen: those styles swap each letter for exactly one replacement character. Add a strikethrough and it becomes thirty, because that style leaves your letters alone and appends a combining mark after every one of them. In the glitch style it is forty-one. The preset above leads with the one-for-one styles for exactly that reason.
Superscript is the odd one in this set. Those characters live in the phonetic extensions and carry the category Lm, modifier letter, rather than being letters proper, and the alphabet is incomplete: there is no superscript q anywhere in Unicode, so that letter always comes through at full size. It is also one of the styles a normalising field will fold straight back to plain text, which the badge in the tool above will tell you.
- สแดแดส สแดษดแด สแดSmall Caps
- สธแตแตสณ สฐแตโฟแตหกแตTiny / Superscript
- วlpuษษฅ ษนnoสUpside Down
- ๐๐๐๐ ๐ท๐๐๐๐๐Monospace
- ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ป๐ฑ๐น๐ฒSans Bold
- โโโคโก โฝโโโโโCircled
X display names and the handle rule that differs
X splits its fields the same way, with one difference from the two above that catches people out: its handle allows letters, digits and underscores, and no full stops. If you have been copying a handle pattern across from Instagram or TikTok, that is the character that will be rejected, long before any styled character gets a chance to be.
The display name is free text and is where this preset is aimed. It leans on the sans-serif family because those glyphs hold their shape at the size a timeline renders a name at, and it includes small caps and upside down because, of everything in the set, those two are built from characters that a field running Unicode compatibility normalisation leaves untouched. Every style in the tool above carries a badge saying which group it falls into, computed by running the real output through NFKC rather than read off a list.
- ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ป๐ฑ๐น๐ฒSans Bold
- ๐๐จ๐ฎ๐ซ ๐๐๐ง๐๐ฅ๐Bold
- สแดแดส สแดษดแด สแดSmall Caps
- ๐๐ ๐ฆ๐ฃ โ๐๐๐๐๐Double-Struck
- ๐๐๐๐ ๐ท๐๐๐๐๐Monospace
- วlpuษษฅ ษนnoสUpside Down
Profiles where your name is a record, not a decoration
Facebook and LinkedIn are the two here where the name field is not just a label on a profile. It is matched against other people's contacts, exported into other systems, and on one of them governed by a stated policy rather than only a character limit. The cost of styling it is correspondingly higher, so both sections below spend more time on what it costs than on what it looks like.
Facebook posts, Page names and the profile name field
The genuinely useful application on Facebook is not the profile name at all, it is the post. The composer has no bold control and no italic control of its own, so if you want one word in a paragraph to carry weight, pasting a styled version of that word is the only way to do it without turning the post into an image. That is why this preset opens with bold and italic rather than with anything decorative. Contrast it with Discord, which has its own markdown syntax for exactly this job and so has very little reason to use Unicode styling inside a message at all.
Underline and strikethrough are worth understanding here, because they work on a completely different principle from the rest of the page. They do not replace your letters. They leave the ordinary ASCII text exactly as it is and append a combining mark after each character, U+0332 for the underline and U+0336 for the overlay, both of category Mn. Your original word is still in there, letter for letter, which is why any process that strips combining marks recovers it perfectly and why these two survive a normalising save when the mathematical styles do not.
The profile name field is the part to be careful with, and it is the one place in this section where the honest answer is that you should check rather than trust a page like this one.
- ๐๐จ๐ฎ๐ซ ๐๐๐ง๐๐ฅ๐Bold
- ๐๐๐ข๐ ๐ป๐๐๐๐๐Italic
- ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ป๐ฑ๐น๐ฒSans Bold
- Yฬฒoฬฒuฬฒrฬฒ ฬฒHฬฒaฬฒnฬฒdฬฒlฬฒeฬฒUnderline
- Yฬถoฬถuฬถrฬถ ฬถHฬถaฬถnฬถdฬถlฬถeฬถStrikethrough
- สแดแดส สแดษดแด สแดSmall Caps
LinkedIn headlines, and the strongest case on this page for not doing it
LinkedIn is where the arithmetic turns against styled text hardest, and it has nothing to do with whether the characters render. Your name and your headline are the fields that other people search, that connection suggestions match against, and that get pulled into applicant tracking systems, CRM records and CSV exports. Every one of those is doing exact string comparison on the characters you actually stored.
So a headline that says "๐ฃ๐ฟ๐ผ๐ฑ๐๐ฐ๐ ๐ ๐ฎ๐ป๐ฎ๐ด๐ฒ๐ฟ" is not a bolder version of the words product manager. It is a string that contains neither of those words. A recruiter filtering on the plain term does not see you, and no amount of visual weight compensates for being absent from the result set. That is a measurable cost, not a stylistic preference.
If you want to use it anyway, the version that survives contact with reality is narrow: one styled word as a visual divider, or a symbol between sections of an About block, with every term you actually want to be found for left in ordinary letters. The preset above sticks to the sans faces and small caps for the same reason, they read as deliberate emphasis rather than as a rendering fault, on a network where looking broken is expensive.
- ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ป๐ฑ๐น๐ฒSans Bold
- ๐๐จ๐ฎ๐ซ ๐๐๐ง๐๐ฅ๐Bold
- สแดแดส สแดษดแด สแดSmall Caps
- ๐ธ๐๐๐ ๐ง๐บ๐๐ฝ๐ ๐พSans-Serif
- ๐๐๐๐ ๐ท๐๐๐๐๐Monospace
- ๐๐ ๐ฆ๐ฃ โ๐๐๐๐๐Double-Struck
When what you want is a company logo typeface
Two of the terms that land on this page are not really requests for styled text. They are requests for one specific commercial typeface: the one on the logo, or the one on the title card. Unicode has no mechanism for that, and saying so is more useful than offering a substitute and hoping you do not notice.
Spotify display names and playlist titles
There are two free-text fields most people mean here: the display name on your listener profile, and the titles and descriptions of playlists you make. Playlists are the best target on this entire page for decorative styling, and for a reason that has nothing to do with Spotify. A playlist is reached by being followed, shared or embedded, not by someone typing its exact title into a search box, so the discovery cost that makes styling a bad idea on LinkedIn barely applies.
An artist name is a different thing entirely and is not a text box you can edit. It is attached to the artist profile rather than to your account, which is why a styled artist name is not something a generator can give you.
And if what you came for is the lettering in the Spotify wordmark itself, no arrangement of Unicode characters will get you there. That mark is set in a licensed commercial typeface that the company does not distribute, and the closest this tool can honestly offer is a heavy sans face that is visibly not it.
- ๏ผน๏ฝ๏ฝ๏ฝ ๏ผจ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ Fullwidth
- ๐จ๐ธ๐พ๐ป ๐๐ช๐ท๐ญ๐ต๐ฎBold Script
- โโโคโก โฝโโโโโCircled
- สแดแดส สแดษดแด สแดSmall Caps
- สธแตแตสณ สฐแตโฟแตหกแตTiny / Superscript
- ๐ดโด๐๐ โ๐ถ๐๐น๐โฏScript
Netflix profile names, and the show titles people mean
Netflix barely has a text field. Profile names are effectively the only thing a viewer writes, they are short, and almost nobody else ever sees them, so the practical use for styled text here is close to nil. If you are after a video platform where the text you write is public and does have consequences, the YouTube page covers channel names, titles and descriptions.
Which means the search almost always wants something else: the lettering from a title card. The Stranger Things logotype, the Wednesday titles, the Squid Game credits. Those are drawn or licensed display faces, distributed as font files, and there is no character in Unicode that approximates any of them. A copy and paste tool is the wrong instrument, and a page that pretends otherwise is selling you a substitution.
The Netflix wordmark is the same story one level up: a custom typeface commissioned by the company and not licensed for general use. If you need a real font file for a show title, the full generator directory lists the pages that carry downloadable faces with their licences attached, which is a different kind of page from this one.
- ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ป๐ฑ๐น๐ฒSans Bold
- ๐๐จ๐ฎ๐ซ ๐๐๐ง๐๐ฅ๐Bold
- ๐๐๐๐ ๐ณ๐๐๐๐๐Bold Fraktur
- ๐๐ ๐ฆ๐ฃ โ๐๐๐๐๐Double-Struck
- ๏ผน๏ฝ๏ฝ๏ฝ ๏ผจ๏ฝ๏ฝ๏ฝ๏ฝ๏ฝ Fullwidth
- Yฬฬถoฬดอ uอ ฬดrฬถฬ Hฬฬaฬฬnฬฅฬdฬฬถlฬดอ eอ ฬดGlitch
Why a styled name sometimes reverts the moment you save it
A social media font generator cannot change the typeface an app renders in. What it hands you is a set of characters that already exist in Unicode and happen to be shaped like styled Latin letters. Most of them come from the Mathematical Alphanumeric Symbols block, U+1D400 to U+1D7FF, added so that a bold x and an italic x could mean different things in an equation. Nobody encoded them for bios.
That origin is the whole reason styled names revert. Every character in that block carries a compatibility mapping back to the plain ASCII letter it was derived from. Run Unicode compatibility normalisation, NFKC, over a bold name and it comes out as an ordinary one. Some fields do exactly that when they save an identifier, silently, with no error message, which is why the text looked right in the box and wrong on the profile a second later.
Measured against the twenty-one styles this tool produces, sixteen fold back to plain ASCII under NFKC and five do not. The five that survive are small caps, upside down, strikethrough, underline and glitch, and they survive for two different reasons. Small caps and upside down are made of characters that are genuine letters in their own right, borrowed from the phonetic alphabets, with no compatibility mapping to anything: U+1D00 is LATIN LETTER SMALL CAPITAL A and U+0250 is LATIN SMALL LETTER TURNED A, and normalisation has nothing to turn them into. Strikethrough, underline and glitch are not replacement letters at all, they are combining marks stacked onto your original text, and normalisation leaves both parts where they are.
The badge on every style in the tool at the top of this page is computed by running that style's actual output through NFKC and comparing it against the input, in the browser, at the moment you look at it. It is not read from a table somebody has to remember to update, which means it cannot drift out of step with what the converter actually produces.
How a bio limit counts what you paste
A field that looks like it has room can still reject styled text, because there are three different numbers in play and you only ever see one of them. There is what you see on screen. There is the count of Unicode code points. And there is the count of UTF-16 code units, which is what a validator written in JavaScript gets from value.length. Take the phrase "coffee and code", fifteen characters plain:
| Style group | What you see | Code points | UTF-16 units |
|---|---|---|---|
| Plain text | 15 | 15 | 15 |
| Bold, italic, sans, monospace, double-struck | 15 | 15 | 28 |
| Script | 15 | 15 | 23 |
| Small caps, circled, fullwidth, superscript, upside down | 15 | 15 | 15 |
| Strikethrough, underline | 15 | 30 | 30 |
| Glitch | 15 | 41 | 41 |
Two useful conclusions come out of that. The mathematical styles look free, because what you see and the code point count agree, but they cost nearly double against any field counting UTF-16 units, and a lot of fields do. The combining styles cost double or triple against every count there is, which is why a strikethrough name gets rejected by a field a plain one fitted comfortably into.
The script row is a small curiosity that shows the numbers here are measured rather than assumed. Script is a mathematical style, so it should cost 30 UTF-16 units, but it costs 23, because a handful of script letters were already encoded years earlier in the Letterlike Symbols block and Unicode does not duplicate characters. The o and the e in that phrase come out as U+2134 and U+212F, which sit low enough in the code space to fit in a single unit each.
What styling a profile actually costs you
Every one of these is a consequence of the same fact, that you have replaced your letters with different characters, so none of them depends on a platform behaving a particular way this month.
- 1.Screen readers make a mess of it. Circled letters are categorised in Unicode as symbols rather than letters. The mathematical letters are categorised as letters, but no speech synthesiser ships a pronunciation for them, so they get read out by character name, one at a time, or dropped. Never style anything somebody has to read in order to act on it: instructions, a link description, a call to action.
- 2.Search and mentions stop matching. Your styled name is a different string, so typing your name the ordinary way will not find you and mention autocomplete will not suggest you. On an account you want people to reach, that is the whole point of the account.
- 3.A styled hashtag is a different hashtag. Tag matching is string matching. Styling the word does not join the conversation under the plain tag, it starts an empty one nobody is reading.
- 4.Anything that reads your text as language fails. Machine translation, auto-captioning, a recruiting tool parsing your headline, a screen scraper building a contact record. They all tokenise words, and you have given them symbols.
- 5.Other people are not on your device. Whether a glyph appears depends on the fonts installed where it is being read. The main mathematical ranges are well covered on current Windows, macOS, iOS and Android. The small capitals and the rarer phonetic characters are patchier, which is how a name renders perfectly for you and shows up as two empty boxes for somebody else.
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.
Platforms that kept their own page
These three had enough platform-specific behaviour to be worth explaining on their own rather than in a section here.
- Discord Font GeneratorDiscord has native markdown as well as Unicode, and the two apply in different places. That page covers both, field by field.
- YouTube Font GeneratorChannel names, video titles and descriptions, plus what a styled title does to your search results.
- OnlyFans Font GeneratorDisplay names and bios on a platform whose field rules differ from every other one here.
Looks people ask for by name on a feed
When you already know the aesthetic you want rather than the app you want it in.
- Aesthetic Font GeneratorFullwidth spacing and the vaporwave-adjacent looks.
- Aesthetic Name GeneratorThe same styles with a name rather than a sentence as the default input.
- Cursive Font GeneratorJoined, sloping script, the closest Unicode gets to handwriting.
- Freaky Font GeneratorStacked combining marks, the heaviest style here and the one most often rejected.
- Rainbow Font GeneratorColour, which Unicode cannot carry, so that page explains what it can do instead.
- Emoji Font GeneratorEmoji rather than styled letters, for the parts of a bio that are decoration.
- PicsArt Font GeneratorFor text going into an image editor rather than into a profile field.
One typographic property at a time
When you want that property and nothing else, these go deeper on a single style than a platform preset can.
- Bold Font GeneratorEvery bold variant, serif through sans, including the ones with digits.
- Italic Text GeneratorItalic and sans italic, including the U+210E exception for lowercase h.
- Small Caps Font GeneratorThe style that survives normalisation, and the missing small-cap x explained.
- Monospace Font GeneratorFixed-width letters and digits, the terminal look.
- Sans Serif Font GeneratorThe four sans variants on their own, without the decorative sets.
- Unicode Font GeneratorThe full character-level view, if what you actually want is the mechanism.
The full directory is at all font generators.
