Blog
EN

Discord Text Formatting: The Complete Markdown Guide

Every formatting code Discord understands, in one cheat sheet — and when to use fancy fonts instead.

Discord formats messages with Markdown, a set of simple symbols you put around text. You type the symbols, and Discord shows the formatted result in the message. Markdown only works inside Discord messages, embeds and a few profile fields — for display names and channel names you need Discord fonts made of Unicode characters instead.

Discord formatting cheat sheet

EffectType thisLooks like
Boldtext𝐭𝐞𝐱𝐭
Italic*text* or _text_𝑡𝑒𝑥𝑡
Bold italic*text*𝒕𝒆𝒙𝒕
Underline__text__t̲e̲x̲t̲
Strikethrough~~text~~t̶e̶x̶t̶
Spoiler||text||hidden until clicked
Inline code`text`text in a grey box
Masked link[text](https://…)clickable “text”

The effects combine: *__~~text~~__* is bold, italic, underlined and crossed out at once. To show a symbol without formatting, put a backslash in front of it: \*not italic\*.

Headers and subtext

Start a line with one, two or three hash signs and a space to make a big, medium or small header. Start a line with -# and a space for small grey subtext — handy for notes, sources and credits.

Type thisResult
# Big headerLarge bold title
## Medium headerMedium title
### Small headerSmall title
-# small noteSmall grey text

Headers and subtext must be at the very start of a line, with a space after the symbols. They do not work in the middle of a sentence.

Lists and quotes

  • Bullet list — start lines with - or * and a space.
  • Numbered list — start lines with 1. 2. 3.
  • Nested list — add two spaces before the - to indent a point.
  • Quote one line — start the line with > and a space.
  • Quote everything after — start with >>> and a space; the rest of the message is quoted.

Code blocks and syntax colours

Wrap a word in single backticks for inline code. For several lines put three backticks on their own line before and after the block. Write a language name right after the first three backticks — js, py, css, json — and Discord colours the code like an editor does.

Coloured text in Discord

Discord has no colour option for normal text, but code blocks can fake it:

  • diff — lines starting with + turn green and lines starting with - turn red.
  • fix — the whole block turns yellow-orange.
  • ansi — supports real colours with ANSI escape codes. It is the most flexible, but hard to type by hand because every colour needs an invisible escape character.

Coloured code blocks show on desktop and in the browser; the phone apps may show them in a single colour.

Timestamps that adapt to every time zone

Type <t:UNIX:STYLE> where UNIX is the time in seconds since 1 January 1970 and STYLE is a letter: t short time, T long time, d short date, D long date, f date and time, F full date and time, R relative (“in 2 hours”). Everyone in the server sees the time in their own time zone, which makes event announcements painless.

Markdown vs. fancy fonts

Markdown is perfect inside messages, but it does not exist anywhere else: your display name, server nickname, channel names and role names cannot use it. That is where Unicode fonts help. A name like 𝕹𝖎𝖌𝖍𝖙 𝕺𝖜𝖑 or ꧁༺ 𝓢𝓱𝓪𝓭𝓸𝔀 ༻꧂ is made of real characters, so it keeps its look in the member list, in mentions and even outside Discord.

  • Display names and server nicknames: fancy fonts yes, Markdown no.
  • Usernames: neither — since 2023 only a–z, 0–9, _ and . are allowed.
  • Channel names: fancy letters and symbols yes (Discord turns letters lowercase).
  • Messages: both — and they can be mixed.

Common formatting problems

  • The shrug loses an arm. The backslash in ¯\_(ツ)_/¯ is read as an escape. Type /shrug or escape it — see the shrug guide.
  • Underscores in a name turn into italics. Escape them with a backslash: user\_name.
  • Spoiler images. Tick “Mark as spoiler” when uploading, or rename the file so it starts with SPOILER_.
  • Headers do not work. Check there is a space after the # and that it is at the very start of the line.

Formatting on the Discord phone app

All the Markdown codes work in the iPhone and Android apps too — you just type the symbols. The asterisk, tilde and vertical bar are on the second or third symbol page of most phone keyboards. On desktop you can also select text in the message box to get a small toolbar with bold, italic, strikethrough, code and spoiler buttons, so you do not need to remember the codes at all.

Formatting in bots, embeds and your About Me

Bots and webhooks can send embeds — the boxes with a coloured side bar. Embed titles, descriptions and fields accept Markdown, and embed descriptions allow masked links. Your About Me section on your profile also accepts Markdown and emoji, so a short bio with a bold line and a spoiler joke is possible. Server names, role names and channel names do not.

A nicely formatted announcement

Formatting helps most in long messages. A good announcement uses a header for the title, bold for the key facts, a bullet list for details and a timestamp so every member sees their own time:

  • # 🎉 Game night — the header line
  • When: <t:UNIX:F> (shows in everyone’s time zone)
  • Where: the voice lounge channel
  • - bring snacks / - no spoilers for the new season
  • -# questions? ping the mods

Keep it short: two or three formatted lines catch the eye; formatting every word does the opposite.

Show the symbols without formatting

Sometimes you want people to see the asterisks — for example when you explain formatting to a new member. Put a backslash before each symbol (\*\*bold\*\*) or wrap the whole thing in backticks so Discord shows it as code. The same trick fixes names and emoticons that contain underscores or asterisks.

Fancy fonts and accessibility

Markdown keeps the letters normal, so screen readers and search read them correctly. Unicode fonts are separate characters: Discord search will not find 𝓢𝓱𝓪𝓭𝓸𝔀 when someone types “shadow”, and screen readers may spell the name letter by letter. A good compromise is a fancy display name with a plain username, or one styled word in an otherwise plain name.

Server name and channel ideas with symbols

Because channel names cannot use Markdown, many servers decorate them with symbols and small Unicode letters instead. Popular patterns are an emoji or symbol at the start followed by a separator, such as 「📢」announcements, ✦・general, ┊💬┊chat or ꒰🎮꒱gaming. Keep the important word plain so members can still find the channel by typing its name, and use the same separator everywhere so the channel list looks tidy. Category names can be styled with small caps — ɪɴꜰᴏʀᴍᴀᴛɪᴏɴ — to set them apart from the channels inside.

Role names follow the same idea: a symbol shows the rank at a glance (♛ Owner, ⚔ Moderator, ✿ Member), and the role colour does the rest. Symbols that are too rare may show as boxes for members on older devices, so test a new name on a phone before you roll it out.

Quick recap

If you only remember five codes, make them these: two asterisks for bold, one for *italic*, two tildes for ~~strikethrough~~, two vertical bars for ||spoilers|| and a hash sign with a space for a header. Everything else on this page builds on those. And whenever you need style where Markdown does not reach — names, nicknames, channels — copy a ready-made style from the Discord fonts tool instead.

Questions

How do you strikethrough text in Discord?

Put two tildes on each side: ~~text~~. To cross out text outside messages, use the strikethrough text generator.

How do you make a spoiler in Discord?

Put two vertical bars on each side: ||spoiler||. Readers click the dark bar to reveal it.

Can you change the text colour in Discord?

Not for normal text. Code blocks with diff, fix or ansi can show coloured lines.

How do I use fancy fonts in my Discord name?

Copy a style from the Discord fonts page and paste it into your display name or server nickname. Usernames do not accept them.

More font tools