Skip to content

How to Format Text on Every Platform: The Definitive Cross-Platform Reference

A platform-by-platform guide to where bold, italic, and styled text are real features, where they only work as a Unicode workaround, and how to do each one correctly.

Updated 2026-06-18 Maintained by BoldlyType editors

You typed your post, reached for the bold button, and there wasn't one. That single missing button is why this page exists. Some apps treat formatting as a first-class feature with a toolbar or a markdown syntax they actually parse; others hand you a plain-text box and silently strip anything fancier than an emoji. The catch is that the two cases look identical until you hit publish, and the "fix" that works on one platform produces literal asterisks or invisible-to-search garbage on another.

This is the master reference for getting it right everywhere. For each major platform we tell you one thing first: does it format text natively, or do you need the Unicode workaround? That distinction governs everything else — which characters to type, whether your styling survives a copy-paste, and whether a screen reader or the platform's own search can still read what you wrote.

Use it as a lookup table when you're stuck, and read the methodology section once so you understand why LinkedIn needs a different trick than Discord. Everything here reflects how these apps behaved as of 2025–2026; platforms change their composers often, so we note where features are new, partial, or still rolling out.

NativeUnicodePartialNot really

The cross-platform formatting matrix

How every major platform handles each kind of formatting — green means the app does it natively, indigo means you paste a Unicode workaround. Tap a platform for its dedicated formatter.

PlatformBoldItalicStrikethroughMonospace / codeBullet listLine breaks
LinkedInPlain-text editor; paste Unicode bold 𝗯𝗼𝗹𝗱 (no native button in posts/comments)Paste Unicode italic 𝘪𝘵𝘢𝘭𝘪𝘤; no native italic in postsPaste U+0336 combining strikethrough s̶o̶ ̶l̶i̶k̶e̶ ̶t̶h̶i̶s̶Paste Unicode monospace 𝚖𝚘𝚗𝚘; no code featureNo list feature; type/paste a • char per line manuallyPress Enter; single/double breaks are preserved in posts
InstagramPlain-text bio/caption; paste Unicode bold 𝗯𝗼𝗹𝗱 (no bold button)Paste Unicode italic 𝘪𝘵𝘢𝘭𝘪𝘤; no native italic anywherePaste U+0336 combining-strikethrough textPaste Unicode monospace 𝚖𝚘𝚗𝚘; no code featureNo list feature; paste a • char per line manuallyApp collapses blank lines; paste invisible char (U+2063/U+2800) on empty lines, no trailing spaces
X (Twitter)Plain-text composer; paste Unicode bold 𝗯𝗼𝗹𝗱 (free accounts have no bold; Premium adds a native B button)Paste Unicode italic 𝘪𝘵𝘢𝘭𝘪𝘤; free accounts have no italic (Premium adds a native I button)Paste U+0336 combining-strikethrough textPaste Unicode monospace 𝚖𝚘𝚗𝚘; no code featureNo list feature; type/paste a • char per line manuallyPress Enter (Shift+Enter on web); line breaks are preserved
FacebookPlain-text composer; paste Unicode bold 𝗯𝗼𝗹𝗱Paste Unicode italic 𝘪𝘵𝘢𝘭𝘪𝘤; no native buttonPaste U+0336 overlay s̶t̶r̶i̶k̶e̶; ~~ not parsedPaste Unicode mono 𝚖𝚘𝚗𝚘; no code featurePaste a • char per line; no auto-listPress Enter; line breaks hold in post composer
ThreadsNative in long-form text-attachment (select→Bold, shipped Sept 2025); paste Unicode 𝗯𝗼𝗹𝗱 in regular feed postsNative in text-attachment; paste Unicode 𝘪𝘵𝘢𝘭𝘪𝘤 in feed postsNative in text-attachment (also has native underline there); else paste U+0336 s̶t̶r̶i̶k̶e̶ in feed postsNo native mono; paste Unicode 𝚖𝚘𝚗𝚘Paste • char per line; no native listPress Enter; breaks render in feed
TikTokPlain-text caption/bio; paste Unicode bold 𝗯𝗼𝗹𝗱Paste Unicode italic 𝘪𝘵𝘢𝘭𝘪𝘤; no native optionPaste U+0336 overlay s̶t̶r̶i̶k̶e̶ (not in @handle)Paste Unicode mono 𝚖𝚘𝚗𝚘; no code featurePaste a • char per line; no auto-list123-key Return or paste from Notes; breaks often collapse
WhatsAppWrap in *asterisks*: *bold*Wrap in _underscores_: _italic_Wrap in ~tildes~: ~strike~Wrap in ```triple backticks``` for inline monospace (single backticks do NOT format)Start lines with - or * + space; auto-formats as a list (numbered list via 1. + space)Shift+Enter (desktop) / return key (mobile)
TelegramSelect text > Bold, or Ctrl/Cmd+B; desktop also **bold**Select text > Italic, or Ctrl/Cmd+I; desktop also __italic__Select text > Strikethrough (Ctrl/Cmd+Shift+X); desktop ~~strike~~Select text > Monospace, or wrap in `backticks` / ```blocks```No list feature; paste a • or - and add line breaks manuallyShift+Enter (desktop); return key (mobile)
DiscordWrap in **double asterisks**: **bold**Wrap in *single asterisks* or _underscores_Wrap in ~~double tildes~~: ~~strike~~Inline `backticks`; ```blocks``` for multi-line codeStart lines with - or * + space; renders as a bulleted listShift+Enter (Enter alone sends the message)
SlackWrap in *single asterisks* or Cmd/Ctrl+B / toolbarWrap in _underscores_ or Cmd/Ctrl+I / toolbarWrap in ~single tildes~ or Cmd/Ctrl+Shift+X`backticks` inline; ``` triple backticks for code blockToolbar bullet button, or start a line with - or * + space and it auto-formats as a listShift+Enter for a new line within one message
RedditWrap in **double asterisks** or use Rich Text toolbarWrap in *single asterisk* or _underscore_Wrap in ~~double tildes~~`backticks` inline; ``` fence or 4-space indent for blockStart each line with - or * (toolbar in Rich Text editor)Single Enter collapses; use a blank line or two trailing spaces
YouTubeWrap word in *asterisks* (comments, descriptions, community posts)Wrap word in _underscores_Wrap word in -hyphens-No code/monospace markup; paste Unicode 𝚖𝚘𝚗𝚘 chars to fake itNo list markup; paste a • per line manuallyPress Enter (descriptions/comments keep line breaks)

Heads-up: Unicode styled text is read poorly by screen readers and can break search and hashtag matching, so use it for emphasis — not whole posts or essential details.

There are exactly two ways to make text look bold, italic, or fancy online, and almost every formatting question comes down to which one a platform gives you.

Native formatting means the app itself renders the styling. There are two flavors of native, and both are real features. The first is a toolbar (or rich-text editor) where you select text and click a B or I button — Slack, Reddit's fancy-pants editor, and LinkedIn's article editor work this way. The second is a markup syntax the app parses: you type plain symbols around your words and the app converts them on display. WhatsApp turns *hello* into hello, Discord turns **hello** into hello, and YouTube turns *hello* into bold in comments. The symbols disappear (or are hidden), and the result is genuine styled text the platform understands. Native formatting is generally the best option where it's fully supported: in a true rich-text editor (Slack, Reddit's fancy-pants, LinkedIn articles) it's readable by assistive technology, survives the platform's own search, and renders consistently. Lightweight markup like YouTube's *bold* is more limited and brittle, but it's still real, accessible text — so prefer native wherever the platform offers it.

The Unicode workaround is what you fall back to when the text box is plain text with no formatting feature at all. Instagram, X/Twitter, Threads, TikTok, Facebook, and LinkedIn's main post and comment composer all strip markup and have no bold button. The only way to show bold or italic there is to paste characters that are already bold or italic — Unicode includes full alphabets of "Mathematical Alphanumeric Symbols" (𝗯𝗼𝗹𝗱, 𝘪𝘵𝘢𝘭𝘪𝘤, 𝓼𝓬𝓻𝓲𝓹𝓽) that look like styled letters but are distinct code points. You generate them in a converter and paste them in. The style is baked into the character, not applied by the app, which is why it works in a plain-text box.

The honest caveat — and it matters. Because each Unicode "bold A" is a separate character from a normal A, screen readers often read these strings as gibberish, skip them, or announce every symbol by its formal name, making your text painful or impossible for visually impaired readers. Unicode styling can also break hashtag matching, in-app search, and how usernames are indexed. So treat it as decoration for emphasis — a standout name, one punchy line — never for body copy, calls-to-action, or anything that must be found or read aloud. When a platform offers native formatting, always prefer it; reach for Unicode only where the platform leaves you no other option.

Platform-by-platform cheat sheet

Best method: Type plainly, then paste Unicode styled characters for emphasis only; use • for bullets and Enter for spacing.

Watch out: Unicode bold/italic isn't indexed and is read poorly by screen readers, so never style keywords, hashtags, or names you want found.

Instagram

Formatter →

Best method: Paste Unicode styled characters for emphasis and use a line-break generator (invisible chars) to keep caption spacing.

Watch out: Instagram strips empty lines and Unicode glyphs aren't searchable nor screen-reader friendly, so styled keywords/hashtags stop matching.

X (Twitter)

Formatter →

Best method: Paste Unicode styled characters for emphasis (or use X Premium's native bold/italic B/I buttons if subscribed); Enter for line breaks.

Watch out: X Premium adds real native bold/italic buttons (B/I) to the composer, but free accounts are plain text and styled Unicode is invisible to X search.

Best method: Paste Unicode for bold/italic/strike/mono; real Enter handles line breaks and a pasted • makes bullets.

Watch out: The whole composer is plain text, so Unicode styled text is unsearchable and read poorly by screen readers — use it for emphasis, not body copy.

Best method: For long-form, use the text-attachment toolbar (select text → style); for feed posts paste Unicode to stand out.

Watch out: Native bold/italic/underline/strike (shipped Sept 2025) live ONLY in the long-form text-attachment surface (up to 10,000 chars) — the regular 500-char feed composer is still plain text and needs Unicode.

Best method: Paste Unicode for all styling; type breaks via the in-app numeric-keyboard Return or a line-break generator.

Watch out: Line breaks frequently collapse when captions are pasted, so many creators inject invisible spacer characters (line-break generators) to force the breaks to survive.

Best method: Use WhatsApp's built-in *_~ syntax (or long-press > Format) and - / 1. for lists — no Unicode workaround needed.

Watch out: Markers must hug the text with no inner spaces; monospace needs TRIPLE backticks (single ` does nothing), and stray * or _ in normal text can accidentally trigger formatting.

Best method: Select text and use the pop-up formatting menu (bold/italic/strike/mono/spoiler) - fully native.

Watch out: Markdown shortcuts work on Desktop (note __double underscore__ = italic, not underline) but the apply-as-you-type set varies by client; the select-text menu is the reliable path everywhere.

Best method: Type Discord markdown directly (**bold**, *italic*, ~~strike~~, `code`) - native, no Unicode.

Watch out: Bold is DOUBLE asterisks and strike is DOUBLE tildes (unlike Slack/WhatsApp single); a lone Enter sends the message instead of adding a new line.

Best method: Use the WYSIWYG toolbar or single-char mrkdwn (*bold*, _italic_, ~strike~) and the list button or - / 1. for lists; it's a real native feature, no Unicode needed.

Watch out: Slack uses SINGLE asterisks for bold and SINGLE tildes for strike — Discord-style **double** and ~~double~~ won't render.

Best method: Switch to Markdown mode and use full markdown (**bold**, ~~strike~~, - bullets); native and reliable.

Watch out: A single Enter is ignored — you need a blank line (or two trailing spaces) or text runs together into one paragraph.

Best method: Use the limited native markup (*bold*, _italic_, -strike-) on clean words; fall back to Unicode for monospace/bullets.

Watch out: Markup breaks if the styled text touches punctuation or numbers, e.g. -42- and _Thanks!_ won't format — pad as _Thanks_ ! ; only *bold* / _italic_ / -strike- exist (no mono, no lists).

Key takeaways

  • Every formatting question reduces to one fork: does the platform format text natively (toolbar or parsed markup), or is it a plain-text box where you need the Unicode workaround?
  • Native is always better when available — it's readable by screen readers, survives the platform's search, and renders consistently. Reach for Unicode only when there's no native option.
  • Chat and community apps (WhatsApp, Telegram, Discord, Slack, Reddit, YouTube comments) format natively; public feeds (Instagram, X, Threads, TikTok, Facebook) are plain text and need pasted Unicode characters.
  • Syntax differs even among native apps — Slack bold is a single asterisk `*bold*` while Discord is double `**bold**`, and YouTube uses hyphens for strikethrough. Copy a habit from one app and it breaks on another.
  • LinkedIn is split: its main posts and comments are plain text (Unicode only, and invisible to search), but its 'Write article' editor has true rich text.
  • Unicode styled text is for short emphasis, not body copy — it can be read as gibberish by assistive tech and can break hashtags and in-app search.

Text formatting — frequently asked questions

Latest questions readers ask us about this topic.

Does LinkedIn support bold and italic text natively?

Not in posts or comments. LinkedIn's main composer is plain text with no bold or italic button and no markdown, so bold there requires pasting Unicode styled characters from a converter. The one exception is LinkedIn's 'Write article' editor, which is a true rich-text editor with real bold, italic, headings, and lists. Note that Unicode text in posts is not readable by LinkedIn's search, so keep it to headlines and short emphasis, not keywords.

Why does *bold* work in WhatsApp but show literal asterisks on Instagram?

Because WhatsApp natively parses that markup and Instagram doesn't. WhatsApp reads `*text*` and renders it bold, treating the asterisks as a formatting instruction. Instagram's caption and bio fields are plain text with no formatting engine, so it keeps the asterisks as literal characters. To get bold on Instagram you must paste Unicode styled characters instead, since the style has to be baked into the letters themselves.

Why is Slack bold a single asterisk but Discord bold a double asterisk?

The two apps simply chose different syntaxes for their native formatting. Slack uses single asterisks — `*bold*` — and typing `**bold**` there shows literal asterisks or an extra one inside the bold. Discord follows standard Markdown with double asterisks — `**bold**`. Slack also offers a WYSIWYG toolbar (the Aa icon) so you can click a B button instead of typing symbols. Mixing the two conventions up is the single most common cross-platform formatting mistake.

How do I format text on YouTube comments and descriptions?

YouTube has limited native markup. Wrap text in asterisks for *bold*, underscores for _italic_, and hyphens for -strikethrough-, in both comments and descriptions. Two gotchas: put a space between the formatted text and any adjacent punctuation (otherwise the markup may not render), and strikethrough won't work around numerals because the hyphen reads as a minus sign. There's no native bullet, code, or heading formatting on YouTube.

Is Unicode 'fancy text' bad for accessibility and SEO?

It can be, so use it sparingly. Because Unicode styled letters are distinct characters from normal ones, screen readers may read them as gibberish, skip them, or announce each symbol's formal name — a real barrier for visually impaired readers. The same character substitution can break hashtag matching and in-app search. Use Unicode for short emphasis like a standout name or one line, never for body text, calls-to-action, or anything that needs to be searchable or read aloud.

Which platforms format text natively versus needing the Unicode workaround?

Native formatting (toolbar or parsed markup): WhatsApp, Telegram, Discord, Slack, Reddit, YouTube comments/descriptions, and LinkedIn's article editor. Unicode workaround (plain-text boxes with no formatting feature): Instagram, X/Twitter, Threads, TikTok, Facebook, and LinkedIn's posts and comments. The rule of thumb: chat and community apps tend to be native; public social feeds tend to be plain text, where pasted Unicode characters are your only option for bold or italic.

The sub-questions readers ask next — answered, with where to go.

LinkedIn's post box is plain text, so there's no toolbar — the workaround the whole creator economy uses is Unicode bold. Type your line, convert it to bold Unicode, then paste it into your post, comment, headline or About section and the emphasis sticks. Bold just the hook — the part that shows before the “…see more” cut-off — to earn the click. Keep the rest plain so the post stays skimmable and accessible.

Format a LinkedIn post

Instagram collapses the returns you type in the native composer, which is why captions come out as one block. The reliable fix is to add the breaks with a tool that inserts real spacing rather than invisible-character hacks (which can break search and accessibility). Write the caption with the breaks you want, generate it, and paste the result. Put your hook on line one, since that's the part that shows before 'more'.

Open the line-break tool

WhatsApp is the exception — it has its own built-in markdown: wrap text in *asterisks* for bold, _underscores_ for italic, and ~tildes~ for strikethrough. You usually don't need Unicode there. Use a WhatsApp formatter when you want a style WhatsApp's markdown doesn't cover (like small caps or script for a status), or when you're writing once and posting the same text across several apps that don't share WhatsApp's syntax.

Format for WhatsApp

Because that editor is plain-text and strips markup. Markdown (*bold*), HTML tags and rich-text styling only render where the platform explicitly supports them — paste them into Instagram or LinkedIn and you see the raw asterisks or nothing at all. Unicode styling is different: the style is baked into the characters, so it survives any plain-text box. That's the whole reason Unicode formatters exist.

Generate paste-proof styles

Explore the topic cluster

More formatting guides and tools across the platforms.