Markdown Bold, Italic, and Strikethrough: The Complete Emphasis Guide
Quick answer (one-paragraph TL;DR)
Markdown bold, italic, and strikethrough all use matching characters wrapped around your text. Italic is one asterisk or underscore (*text* or _text_), bold is two (**text** or __text__), and strikethrough is two tildes (~~text~~). The one catch: strikethrough isn't part of core Markdown — it only renders where the renderer supports GitHub Flavored Markdown.
*This is italic.*
**This is bold.**
~~This is struck through.~~For a related whitespace quirk that trips up the same kind of formatting, see Markdown line breaks — a single newline doesn't behave the way most people expect either.
How it actually works
Italic: one marker
A single asterisk or underscore around text produces italic, an <em> tag under the hood. Markdown's original syntax and the CommonMark tutorial agree on the rule: whichever character you open with, you close with. *italic* and _italic_ render identically, so *open followed by _close_ won't work.
Carets makes it *simple* to format notes.
Carets makes it _simple_ to format notes.Bold: two markers
Double the marker and you get bold, a <strong> tag. Same matching rule applies.
This is **important**.
This is __important__.Bold and italic together
Stack three matching markers to get both at once. That nests strong emphasis inside emphasis, so the text renders bold and italic in the same span.
This is ***critical***.
This is ___critical___.Strikethrough is a GitHub extension
Strikethrough — ~~text~~, rendering as <del> — isn't in the original Markdown spec or core CommonMark. It's defined separately, in section 6.5 of the GitHub Flavored Markdown spec, and GitHub's own formatting docs confirm the double-tilde syntax. Most modern renderers — GitHub, most static-site generators, and Carets among them — support it, but a strict CommonMark-only parser will just show the literal tildes instead of struck-through text. If portability across every possible renderer matters, don't rely on strikethrough without checking first.
~~Deprecated in v2.~~ Use the new API instead.You can combine strikethrough with bold or italic too, since the markers nest the same way emphasis does on its own — ~~**deprecated**~~ strikes through bold text, and ~~*legacy*~~ strikes through italic text. The order doesn't matter as long as each pair matches and closes in the reverse order it opened.
When to use it (and when to skip it)
Bold and italic exist to draw a reader's eye to the one phrase that matters in a sentence — a key term on first use, a warning, a single word you want stressed. Strikethrough works well for showing an edit or correction inline, like a crossed-out price or a superseded instruction. None of the three are meant to carry the structure of a document; that's what headings and lists are for. A paragraph with three bold phrases makes the reader work harder to find the one that matters, not less.
A good rule of thumb: if you'd naturally raise your voice or pause on a word while reading the sentence aloud, emphasis probably helps. If you're bolding a phrase because the paragraph feels flat, the fix is usually to rewrite the sentence, not to bold it.
Common mistakes and how to fix them
- Spaces next to the marker kill the formatting.
* text *with spaces inside the asterisks renders as literal asterisks, not italics — the marker has to hug the text with no gap. - Mismatched open and close characters don't parse. Opening with
*and closing with_leaves both markers as literal text. - Emphasis can trigger mid-word. Something like
2 * 3 = 6 * 7in a math expression, or a file glob like*.md, can get parsed as an emphasis marker by accident, especially if a second asterisk shows up later in the same paragraph. When you need a literal asterisk, underscore, or tilde, escape it with a backslash — see escaping special characters in Markdown for the full set of rules. - Underscores inside_words don't always behave like asterisks. Some renderers leave underscores alone in the middle of a word (so
snake_case_variablestays literal) specifically to avoid this problem, while treating a standalone_word_as italic. Asterisks don't get that exception, which is one reason many style guides default to asterisks for emphasis and save underscores for other uses.
Frequently Asked Questions
What's the difference between * and _ for italics in Markdown?
Both produce identical output — a single asterisk or underscore wraps text in italics. Pick one and stay consistent within a document; the only hard rule is that the opening and closing marker must match.
How do I make text both bold and italic at the same time?
Wrap it in three matching markers: ***bold and italic*** or ___bold and italic___. This nests strong emphasis inside emphasis and renders as bold italic text.
Does strikethrough work in every Markdown renderer?
No. Strikethrough (~~text~~) isn't part of the original Markdown spec or core CommonMark — it's a GitHub Flavored Markdown extension. Most modern renderers support it, but a strict CommonMark parser won't.
Why did my asterisks turn into italics by accident?
Emphasis can trigger mid-word, so a stray asterisk next to text — in a math expression or a file glob, for example — can get parsed as formatting. Escape it with a backslash (\*) when you want a literal asterisk.
How Carets fits in
Getting emphasis syntax right matters more when you're switching between files, projects, and devices all day. Carets is a native Markdown, plain text, and code editor for iPhone, iPad, and Mac, and it renders bold, italic, and strikethrough as you type — so a mismatched marker or a stray asterisk is visible right away instead of surfacing as a rendering bug later.
Because Carets keeps everything in plain text with real syntax highlighting, the same file looks and formats identically whether you're editing on Mac or touching it up on iPad. It stays organized alongside your other notes and code snippets, too — in files, projects, and tags.
Get Carets on the App Store for iPhone, iPad, and Mac.