What CSS italic text really is

In everyday writing, “italic” means “slanted text.” In typography and CSS, it’s a little more specific:

  • Italic is often a separate font face (a true italic design), not just a tilted version of the regular font.
  • Oblique is a slanted version of the regular face (sometimes “fake,” sometimes a real oblique face).
  • CSS gives you a single switch for most situations: font-style.

That means “making text italic” is usually as simple as font-style: italic;, but the results depend on the font you’re using.

.demo {
  font-style: normal;
}
  
.demo {
  font-style: italic;
}
  
.demo {
  font-style: oblique;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 760px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.demo {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 20px;
  line-height: 1.4;
}

.small {
  font-size: 14px;
  opacity: 0.8;
}
  
This sentence can be normal, italic, or oblique depending on the active snippet.
Try switching snippets. Some fonts make italic and oblique look very similar.

The font-style property (your main italic switch)

The property you’ll use 99% of the time is font-style. It accepts:

  • normal (default)
  • italic (use the italic face if available)
  • oblique (use a slanted face if available, or synthesize a slant)
  • oblique <angle> (variable-font-friendly: request a specific slant angle)

When you say italic, the browser looks for an italic face in the font family. If it can’t find one, it may synthesize (fake) it by slanting the regular face.

.demo {
  font-style: normal;
}
  
.demo {
  font-style: italic;
}
  
.demo {
  font-style: italic;
  font-weight: 700;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 820px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.demo {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 22px;
  line-height: 1.35;
}

.note {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 8px;
}
  
Italic can be combined with weight.
Try the third snippet: bold + italic works only if the font provides that face, otherwise it may be synthesized.

CSS Italic vs oblique (what’s the difference)

Here’s the simplest mental model:

  • Italic: a distinct design. Letters can change shape (not just tilt).
  • Oblique: regular letters that are slanted. Often the shapes stay basically the same.

In practice, many modern UI fonts treat these similarly, and you might not see a dramatic difference unless you use a font family with a true italic face.

CSS still makes the distinction, and variable fonts make it even more useful because oblique can be an actual angle.

.demo {
  font-style: italic;
}
  
.demo {
  font-style: oblique;
}
  
.demo {
  font-style: oblique 14deg;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 12px;
  max-width: 860px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.demo {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 22px;
  line-height: 1.4;
}

.hint {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 8px;
}
  
Oblique can request a specific angle (like oblique 14deg) on supporting fonts.
If your font doesn’t support angled oblique, the browser may fall back to a generic slant.

Italicizing only part of text: em, i, and targeted selectors

Most of the time you don’t want to italicize an entire paragraph. You want emphasis on a word or phrase.

  • Use <em> for emphasis (semantic meaning).
  • Use <i> for text in an alternate voice (like a term, thought, or foreign phrase), not just “make it slanted.”
  • In CSS, you can style both of them (or override them).
em {
  font-style: italic;
}
  
i {
  font-style: italic;
}
  
em,
i {
  font-style: normal;
  text-decoration: underline;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 900px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.card {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 18px;
  line-height: 1.55;
}

kbd {
  font-family: ui-monospace, SFMono-Regular, monospace;
  font-size: 0.9em;
  padding: 2px 6px;
  border: 1px solid #111;
  background: #f2f2f2;
}
  
This is a normal sentence with emphasis and an alternate voice. You can also choose to restyle them (third snippet) if italics hurt readability.
Tip: semantic HTML helps screen readers interpret emphasis properly.

Avoid accidental “fake italics” (font synthesis)

Browsers may “fake” italic if the chosen font doesn’t provide a real italic face. That can look a bit off: strokes can get distorted and spacing can feel weird.

If you want to prevent synthesized styles, you can use font-synthesis.

  • font-synthesis: none; disables synthesis (no fake bold, no fake italic).
  • Or be more specific: font-synthesis: weight style; (default is usually permissive).
.demo {
  font-style: italic;
}
  
.demo {
  font-style: italic;
  font-synthesis: none;
}
  
.demo {
  font-style: italic;
  font-family: ui-monospace, SFMono-Regular, monospace;
  font-synthesis: none;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 920px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.demo {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 20px;
  line-height: 1.45;
}

.note {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 8px;
}
  
If the font family doesn’t include a true italic face, the browser may synthesize it.
Try snippet 2 and 3: if synthesis is disabled and no italic face exists, the browser may fall back to normal.

Variable fonts: slant, angle, and font-style: oblique

Variable fonts can expose a continuous “slant” axis. CSS lets you request a slant angle with:

  • font-style: oblique 0deg; (not slanted)
  • font-style: oblique 10deg; (slanted)
  • font-style: oblique 20deg; (more slanted)

Not every font supports this. When it does, it’s a very clean way to control the slant without hacks.

.demo {
  font-style: oblique 8deg;
}
  
@import url('https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght,slnt@8..144,300..1000,-10..0&display=swap');

*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 940px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: "Roboto Flex", system-ui, sans-serif;
}

.demo {
  padding: 14px;
  border: 2px solid #111;
  background: #fff;
  font-size: 22px;
  line-height: 1.4;
}

.tip {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 10px;
}
  
Slide the angle to request a different oblique slant.
This playground uses Roboto Flex, a variable font with a real slant axis, so the angle should visibly change.

When italics are a good idea (readability and accessibility)

Italics are great for emphasis and tone, but they can reduce readability in large blocks of text. A few beginner-friendly guidelines:

  • Use italics for short emphasis, not entire paragraphs (unless it’s a design choice with care).
  • Increase line-height slightly if you use italics in long-form content.
  • Consider alternatives for emphasis: weight, underline, color, or background highlight.
  • Don’t rely on italics alone to convey meaning if it’s critical (combine with semantic HTML like <em>).
.card p {
  font-style: italic;
}
  
.card p {
  font-style: italic;
  line-height: 1.9;
}
  
.card p {
  font-style: normal;
  font-weight: 600;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 980px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.card {
  padding: 16px;
  border: 2px solid #111;
  background: #fff;
}

.card p {
  margin: 0;
  font-size: 17px;
}
  

This is a longer paragraph to show how italics can feel more “dense” when you read a lot of it. Try snippet 2 for extra line-height, and snippet 3 for a non-italic emphasis option.

Common pitfalls: nested italics, icons, and form elements

A few classic “why does this look weird?” moments:

  • Nested emphasis: <em> inside <em> can end up looking the same if you don’t style it.
  • Icon fonts / emoji: slanting an icon font can distort it.
  • Inputs and placeholders: italics in form controls can harm readability, especially for small text.
em em {
  font-style: normal;
  text-decoration: underline;
}
  
.icon {
  font-style: normal;
}
  
input,
textarea {
  font-style: normal;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 980px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
  font-style: italic;
}

.panel {
  padding: 16px;
  border: 2px solid #111;
  background: #fff;
  display: grid;
  gap: 12px;
}

p {
  margin: 0;
  font-size: 18px;
  line-height: 1.55;
}

.icon {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid #111;
  background: #f2f2f2;
  font-family: ui-monospace, SFMono-Regular, monospace;
  font-size: 0.95em;
}

.field {
  display: grid;
  gap: 6px;
  max-width: 520px;
}

label {
  font-size: 14px;
  opacity: 0.85;
}

input,
textarea {
  width: 100%;
  padding: 10px 12px;
  border: 2px solid #111;
  font: inherit;
  background: #fff;
}
  

Nested emphasis example: outer inner outer. Use snippet 1 to make inner emphasis distinct.

Icon-ish text: should usually not be slanted with surrounding italics. Use snippet 2 to force normal style for the icon.

Practical recipes: quotes, titles, and UI microcopy

Let’s wrap with a few “copy-pasteable” patterns you’ll actually use:

  • Book / movie titles: often italicized with <cite> or <i>.
  • Inline emphasis: use <em>, style it if needed.
  • Short “aside” text: italic can work nicely for small notes.
cite {
  font-style: italic;
}
  
.note {
  font-style: italic;
}
  
.note {
  font-style: normal;
  border-left: 4px solid #111;
  padding-left: 12px;
}
  
*,
::before,
::after {
  box-sizing: border-box;
}

.wrap {
  display: grid;
  gap: 14px;
  max-width: 980px;
  padding: 18px;
  border: 3px solid #111;
  background: #f6f6f6;
  font-family: system-ui, Arial, sans-serif;
}

.card {
  padding: 16px;
  border: 2px solid #111;
  background: #fff;
  display: grid;
  gap: 12px;
  font-size: 18px;
  line-height: 1.55;
}

.note {
  font-size: 15px;
  opacity: 0.9;
  background: #f2f2f2;
  padding: 10px 12px;
  border: 1px solid #111;
}
  

My favorite part of CSS: The Dramatic Italic Edition is the part where the text leans politely.

Here’s an inline emphasis example: Please do not deploy on Fridays.

Note: Italics can look great for short asides, but consider readability for longer notes.

CSS Italic text best practices summary

  • Use font-style: italic; for typical italics, and font-style: oblique for slant.
  • Prefer <em> for semantic emphasis, and style it rather than sprinkling random italics everywhere.
  • Watch out for synthesized italics; consider font-synthesis: none; when typography quality matters.
  • For variable fonts, font-style: oblique 10deg; is a powerful, clean way to control slant.
  • Keep italics short and intentional.

Further reading and resources