TL;DR A free X account has no bold or italic button anywhere — not in tweets, replies, your bio, or your display name. The free way to get a bold look is to paste pre-styled Unicode characters (𝗯𝗼𝗹𝗱, 𝘪𝘵𝘢𝘭𝘪𝘤) from a generator: the style is baked into each character, so it survives copy-paste anywhere on X. It works visually, but it isn't real formatting — screen readers mangle it, in-app search won't match it, and your @handle can't use it. X Premium does add genuine native bold/italic — a B and I button that works on ordinary tweets, replies, and long posts — but it still can't format your bio or display name, so the Unicode trick stays the only option for those two fields.
You want a word to stand out in a tweet or your bio, you hunt for the bold button, and there isn't one. That's not a bug. On a free X account, tweets, replies, the bio, and the display name are all plain text — there's no bold, italic, or underline control, and no keyboard shortcut for them. Paying for Premium adds a real bold button for some of those places (more on exactly which, below) — but not for your bio or display name, and free accounts get nothing.
So how do people get 𝗯𝗼𝗹𝗱 words into their tweets and bios for free? They don't format anything. They paste special characters that are already shaped to look bold. Here's exactly how that works, where it holds up, and where it quietly breaks.
The free way to bold text on X: paste Unicode
The trick is to swap your normal letters for look-alike characters that come pre-styled. Instead of formatting the letter a, you replace it with 𝗮 — a completely different character that just happens to look bold on its own. Because that look is built into the character (not applied as a style), it pastes cleanly into any plain-text box, including X's.
Here's the same sentence in a few styles you can copy:
- Bold: 𝗟𝗮𝘂𝗻𝗰𝗵𝗶𝗻𝗴 𝘁𝗼𝗱𝗮𝘆
- Italic: 𝘓𝘢𝘶𝘯𝘤𝘩𝘪𝘯𝘨 𝘵𝘰𝘥𝘢𝘺
- Bold italic: 𝙇𝙖𝙪𝙣𝙘𝙝𝙞𝙣𝙜 𝙩𝙤𝙙𝙖𝙮
To do it: type your text into a generator, pick a style, copy the output, and paste it into the tweet, reply, bio, or display name field. No app, no browser extension, no signup. The fastest path for X specifically is the X text formatter, or the dedicated bold text generator if you only want bold. If you want to understand the swap under the hood, how bold text generators work breaks it down.
A practical note on space: styled characters count the same as normal letters toward your limit, but emoji and some symbols don't — if you're tight on room, check the X / Twitter character limit before you commit.
What's really happening (it isn't bold)
This matters because it explains every quirk that follows. The "bold" a generator gives you is not real bold formatting. Each styled glyph is its own separate Unicode character. The bold and italic letters shown above come from a range called the Mathematical Alphanumeric Symbols block (U+1D400–U+1D7FF). That block exists so mathematicians can write a bold X that means something different from a plain X in an equation. Generators repurpose those letters for social posts.
In real formatting, the letter a stays a and a hidden instruction says "draw this one heavier." Paste that into a plain-text field and the instruction gets stripped — you're left with bare a. Unicode "bold" has nothing to strip: 𝗮 is simply a different character that already looks bold. Copy it, paste it, send it through X's database, and it stays 𝗮 because that's just which character it is.
That single fact is why the workaround works and why it has limits. Anything that needs to read the text — search, screen readers, crawlers — sees unfamiliar symbols, not the word.
(One caveat for the curious: not every "fancy" style comes from that math block. Bold, italic, and bold-italic do, but effects like strikethrough are built differently — they layer a combining mark, U+0336, over normal letters rather than swapping in a new code point. For plain bold and italic, though, the swap above is the whole story.)
Where it works on X (and where it can't)
Because the styled characters are native Unicode, they show up without any app or extension in:
- Tweets and replies — paste them straight into the compose box.
- Your bio (the ~160-character field).
- Your display name — the name above your handle.
Where it can't go:
- Your @handle (username). X restricts handles to standard letters, numbers, and underscores. Unicode styling is rejected there — only the separate display name field accepts it. So your handle stays plain no matter what.
A rendering caveat: not every device has every glyph. Bold sans-serif is widely supported, but rarer decorative styles (script, fraktur) can fall back to empty boxes (□) on devices missing the font. If you've ever wondered about that, why fancy text shows as boxes explains the fallback. Rule of thumb: prefer bold sans-serif, and sanity-check on a second device before you rely on it.
Where it breaks: search, reach, and screen readers
This is the honest part, and it's the reason to use the trick sparingly.
Screen readers mangle it. Because the glyphs are math/symbol code points, assistive tech often skips them or announces them by their Unicode name — a bold A may be read aloud as "mathematical sans-serif bold capital A." For a blind user, a styled bio or tweet can become noise or vanish entirely. That's well documented, and it's the single biggest reason not to style essential content. We go deeper in are Unicode fonts accessible? and on the accessibility guide.
In-app search won't match it. To X's search, 𝗯𝗼𝗹𝗱 and bold are different strings. If you Unicode-bold your name or a keyword, someone searching the plain spelling may not find it. Keep anything you want discovered — your real name, keywords, hashtags — in plain text.
It can render inconsistently across devices and fonts, as noted above.
The takeaway: never put load-bearing information — links, your handle, hashtags, prices, dates — in styled characters. Use Unicode bold for a word or two of emphasis, and keep everything that has to be read, searched, or heard in plain text.
What X Premium actually adds (and what it still can't do)
Here's where a lot of advice gets it wrong, so let's be precise.
X Premium (formerly Twitter Blue) does add genuine, native bold and italic — a real B and I button in the post composer itself. On desktop web they appear along the bottom of the compose box; on mobile they're tucked behind the AA (formatting) button. Select your text, tap the button, and you get true formatting — not a Unicode swap. And it works where you'd expect:
- Ordinary tweets — yes, including a short sub-280-character one.
- Replies — yes.
- Long posts — yes. A "Longer post" isn't a separate formatting-only surface; it's the same composer with the character cap raised to up to 25,000 characters, using the same B/I buttons. Longer posts are available across X's paid tiers, including the entry-level one.
There's also a heavier long-form format, Articles — a full blog-style editor with headings, bold, italics, strikethrough, and lists. Articles are more restricted: they're limited to the higher Premium+ tier (and Verified Organizations), and they're composed on desktop web (x.com), not mobile. Anyone can read an Article; only those tiers can create one.
Now the part Premium still can't do, because this is where the Unicode trick keeps earning its place:
- Your bio has no native bold or italic — on any account, free or Premium. It's a plain-text field, full stop.
- Your display name has no native bold or italic either, on any account.
- Your @handle can't be styled at all, by anyone, by any method.
So the honest split is simple. Premium = real native bold and italic in posts, replies, and long posts. Nobody gets native bold in the bio, display name, or handle. Free accounts get no native formatting anywhere. That means the Unicode-paste workaround is the only way to put a bold look in your bio or display name — paid or not — and it's the free alternative to Premium's B/I button inside tweets.
So which should you use?
- You're on a free account, or you want to style your bio or display name. Unicode paste is your only route. Lean on bold sans-serif, keep it to a word or two, and keep keywords and links plain.
- You pay for Premium and you're styling a tweet, reply, or long post. Use the native B/I buttons — it's real formatting that search can still match on the underlying word, so it's the more robust choice for emphasis inside posts.
- Either way, mind accessibility. Native bold reads fine to screen readers; Unicode "bold" does not. The more important it is that everyone can read, search, and hear your words, the more you should keep them plain — and reserve styled characters for decoration, not meaning.
That's the whole picture, minus the myths: free X has no bold button, the Unicode trick fakes one anywhere text is allowed, and Premium adds the real thing to your posts — but never to your bio or your name.