Discord Text Formatting: Bold, Italic, Underline & More (Cheat Sheet)
You want one line in a raid ping to read as a whisper. Type a single asterisk on each side of the words (*stay quiet on this pull*) and Discord italicizes the sentence when you press Enter. Each format is that same trick: a pair of markers, the words in the middle, send.
Discord text formatting is one command per look: **bold**, *italic*, __underline__, ~~strikethrough~~, ||spoiler||, `code`, a triple-backtick block, a > quote, and a - list. If you only need asterisks, see how to bold text in Discord. If you only need a strike, see how to strikethrough in Discord. For color inside a code block, see how to make Discord colored text. For a styled nickname rather than a formatted message, change your Discord fonts.
Discord Formatting Cheat Sheet
Copy the middle column into a channel, a DM, or a thread. Markers must touch the first and last letter.
| Format | Type this | Renders as | Desktop | Mobile |
|---|---|---|---|---|
| Bold | **Server reset at 9pm EST** |
Server reset at 9pm EST | Yes | Yes |
| Italic | *stay quiet on this pull* |
stay quiet on this pull | Yes | Yes |
| Underline | __loot rules__ |
loot rules | Yes | Yes |
| Strikethrough | ~~Friday 8pm~~ |
Yes | Yes | |
| Spoiler | ||the bartender did it|| |
Hidden until click or tap | Yes | Yes |
| Inline code | `!play queue` |
!play queue |
Yes | Yes |
| Code block | ``` on its own line, paste the log, close with ``` |
Monospace block, optional language tag | Yes | Yes |
| Quote | > Saturday 9pm EST at the start of a line |
Indented quote bar | Yes | Yes |
| List | - potions on its own line (space after the dash) |
Bulleted item | Yes | Yes |
Italic also accepts _quietly_. That is not underline: underline is the double underscore __title__. Lists accept * or 1. in place of the dash. >>> plus a space quotes every following line. Headers use #, ##, or ### plus a space. Subtext uses -#. Masked links use [patch notes](https://example.com).
How to Format Text in Discord (Step by Step)
The composer keeps the markers visible. Discord paints the result after you send, not while you type.
- Open a channel, a DM, or a thread and click the message box.
- Type the opening marker, your words, then the matching closer. No space between the marker and the first or last letter:
**go**, not** go **. - If a quote or a list does nothing, start a new line with
>or-plus a space. - Press Enter. The formatted line appears in the channel. Edit the message if a closer is missing.
On desktop and web, highlight a word and press Ctrl+B (Cmd+B on Mac) for **, Ctrl+I for *, and Ctrl+U for __. iOS and Android parse the same markdown but skip those keybinds, so you type the characters. The backtick is often a long-press on the apostrophe. A Chinese or Japanese IME can insert a full-width *, and that character will not format.
Strikethrough & Spoiler
These two get mixed up. One leaves the words readable. The other hides them until a click or a tap.
Strikethrough: ~~ ~~
Type ~~raid moved off Friday~~. People still see the old plan, with a line through it, so a late reader can follow the change.
Use it when a time or rule is no longer true. A pin that said Friday 8pm becomes ~~Friday 8pm EST~~ Saturday 9pm EST. The crossed time is history, not a secret.
Spoiler: || ||
Type ||the traitor is the bartender||. The words sit behind a black bar until someone clicks (desktop) or taps (phone).
Use it for a plot point, a raid cutscene, or a link preview someone asked not to see. A spoiler around a URL also hides the embed. Other markdown can sit inside (||**final boss** dies in act three||). A code fence turns spoiler tags off.
Combining Formatting
Layer markers from the outside in. Underline wants to sit on the outside of bold and italic. Strikethrough also works as an outer wrap. Leave no space between layers.
__**loot is mandatory**__
Bold plus underline. Pin this as a one-line rule heading.
***wipe if you stand in fire***
Three asterisks on each side is bold italic, a raid warning that still reads as a sentence.
~~**Friday 8pm EST**~~ Saturday 9pm
Strike the old call time, keep it bold so it still scans as a time, and leave the new time clean.
Discord also documents __*underline italic*__ and __***underline bold italic***__. Reverse the order on some pairs and the inner style drops. Do not put any of this inside backticks: `**not bold**` prints the stars.
Why Won't My Formatting Work?
Most Discord text formatting failures are a bad character, not a broken app. When the markers print as plain text, the parser never saw a valid pair. These are the misses that show up in help channels.
| What you see | Why | Fix |
|---|---|---|
| Stars or tildes sit in the message unchanged | A space lives inside the pair (** go **), or a closer is missing |
Hug the letters: **go**. Close every opener. |
*italic* or ~~strike~~ does nothing |
A CJK input method inserted full-width *, ~, or | instead of ASCII *, ~, or | |
Switch the keyboard to English (US) and retype the markers, or paste them from this page. |
| A quote or list stays a normal sentence | The > or dash is mid-line, or the space after it is missing |
New line, then > Saturday 9pm or - potions. |
**bold** inside a log dump still shows stars |
You are inside inline `code` or a ``` fence |
Put the callout on the line above the fence. Code always wins. |
A nickname shows **Nova** with the stars |
That field is not a message. Discord never runs markdown there | Paste Unicode letters instead. Same limit as any display name. |
| Works on desktop, fails on a phone (or the reverse) | The renderer is the same. The keyboard is not. Smart punctuation and IMEs change the character | Look at the raw edit. If the star is not the ASCII one from the cheat sheet, replace it. |
A name like my_file_name can eat underscores as italic. Wrap it in backticks or escape a marker with a backslash (\*not italic\*). Web and the desktop app parse the same commands. The gap is the keyboard. If a # Header does nothing, add the space after the hash and confirm you are in a message field, not a nickname.
FAQ
What's the difference between strikethrough and spoiler?
Strikethrough keeps the words visible. Type ~~raid is Friday~~ and people still read the old time, with a line through it. A spoiler hides the words. Type ||the bartender did it|| and the line stays blacked out until someone clicks. Use strike for a correction. Use spoiler for a plot point someone in the channel has not reached yet.
Can I mix more than one format on the same words?
Yes. Put the outer markers on the outside. __**loot is mandatory**__ is bold and underlined. ***wipe if you stand in fire*** is bold italic. ~~**Friday 8pm EST**~~ strikes a bold time. Leave a space out of the markers, and skip backticks: anything inside `code` prints literally.
Why did my asterisks stay visible instead of italicizing?
The usual miss is a space or the wrong star. * go * does not italicize. *go* does. A Chinese or Japanese IME often inserts a full-width *, which Discord will not parse. Type *quietly* with ASCII asterisks hugging the letters, or wrap a literal star in backticks like `*`.
Can I nest bold or italic inside a code block?
No. A pair of backticks, or a triple-backtick fence, freezes the contents. **error 502** inside a code block still shows the stars. Discord also turns off spoiler tags inside code, so ||secret|| next to a command dump will not hide. Keep logs in the fence and put the callout on the line above.
Does every format in this cheat sheet work on iPhone and Android?
Type **bold**, ~~done~~, ||spoiler||, or a - list in the iOS or Android composer and they render when you send. Same markdown as desktop. No Ctrl+B, Ctrl+I, or Ctrl+U. The backtick for `code` is usually a long-press on the apostrophe key.
Can a server admin set a default font for the whole server?
No. Discord has no admin toggle that changes the typeface of everyone's messages. Markdown is per message: you type **this** or > that, and only that line changes. Channel names and nicknames can use Unicode letters, but that is paste-in styling, not a server font. There is no default-font field in Server Settings.
What's the difference between a > quote and >>> ?
A single > plus a space quotes one line: > Saturday 9pm EST. Triple greater-than, >>> plus a space, quotes every line after it until the end of the message. Both only work at the start of a line. If the > sits in the middle of a sentence, Discord leaves it as a character.
Want it ready-made? Paste a line from the cute font generator into a display name or a short chat message. Keep markdown for raid pins and spoilers.
That same clipboard line also pastes into an Instagram bio. If you want the field limits and the copy-paste loop for a profile, see cute fonts on Instagram.