CSS font-variant-caps Property

Beginner
5 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The font-variant-caps property controls alternate capital glyphs in a font, such as small capitals or titling capitals. It does not rewrite the characters the way text-transform does.

The initial value is normal. The property is inherited and applies to all elements and text, including ::first-letter and ::first-line. For a broader shorthand that can include caps, see font-variant.

Standard-track.

Not deprecated and not experimental. Keywords and OpenType mapping are Baseline Widely available since 2020. Results still depend on whether the font ships those glyphs.

CSS Syntax

syntax.css
font-variant-caps: normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps | initial | inherit;

Use exactly one keyword. The most common study values are normal, small-caps, and all-small-caps.

Property Values

ValueDescriptionTry it
normalNo special capital glyphs. Initial valueTry it
small-capsLowercase letters become small capitals. Uppercase stays full sizeTry it
all-small-capsBoth upper and lowercase use small capital formsTry it
petite-capsPetite capitals when the font provides themTry it
titling-capsTitling capitals designed for all-caps headingsTry it
initialResets to normalTry it
inheritTakes the parent’s font-variant-capsTry it

all-petite-caps and unicase are also valid. They need fonts with matching OpenType features to look different from a fallback.

How to Use font-variant-caps

Pick a keyword, then check that the font can show the effect.

  1. Choose the text that should use special capitals.
  2. Set font-variant-caps to small-caps or all-small-caps for the usual beginner cases.
  3. Use a font-family that includes real small-cap glyphs when you need a designed look.
  4. Keep long body copy on normal if readability matters more than style.
PieceRequired?Role
KeywordYesChooses which capital variant to request
Font supportFor best resultsTrue OpenType glyphs beat synthesized fallbacks
Readable textBest practiceAvoid long paragraphs in all-small-caps

Live Preview

Only font-variant-caps changes. Compare how the same sentence looks with each keyword.

Your system font may synthesize small-caps. Petite and titling need stronger font support.

Sample

Css Typography With Small Caps

font-variant-caps: small-caps

CSS Examples

Each snippet focuses on font-variant-caps only. Use Try It Yourself for a live editor.

Example 1 — Small Caps

Lowercase letters become small capitals. Real uppercase stays full height.

CSS
<style>
  p {
    font-variant-caps: small-caps;
  }
</style>

<p>Css Typography With Small Caps</p>
Try It Yourself

How It Works

  1. Set the keyword. font-variant-caps: small-caps asks for small capital glyphs.
  2. Watch lowercase letters. Letters that were lowercase take a capital shape at roughly lowercase size.
  3. Watch uppercase letters. Real capitals such as C and T stay full size.
  4. Font fallback. If the font lacks designed small-caps, the browser may synthesize a similar look.

Example 2 — All Small Caps

Every letter uses the smaller capital form, including uppercase.

CSS
<style>
  p {
    font-variant-caps: all-small-caps;
  }
</style>

<p>Css Typography With Small Caps</p>
Try It Yourself

How It Works

  1. Use the all-caps keyword. all-small-caps targets both cases.
  2. Compare with Example 1. Full-size capitals shrink into the small-cap form too.
  3. Use for short labels. Headings or badges often look even; long paragraphs can be harder to read.
  4. OpenType features. Fonts may map this to smcp and c2sc features under the hood.

Example 3 — Normal Caps

Turn the special capital glyphs off and restore default letterforms.

CSS
<style>
  p {
    font-variant-caps: normal;
  }
</style>

<p>Css Typography With Small Caps</p>
Try It Yourself

How It Works

  1. Reset the variant. normal is the initial value and turns cap variants off.
  2. See default glyphs. Uppercase and lowercase return to the font’s usual shapes.
  3. Use as a clear baseline. Compare this output with the small-caps examples above.
  4. Inheritance note. Because the property is inherited, a child can set normal to opt out of a parent’s small-caps.

Edge Cases & Pitfalls

If the text barely changes, the font or the keyword choice is usually why.

font

Glyph support varies by typeface

Petite-caps, unicase, and titling-caps need OpenType features. Without them, you may see little change or a small-caps fallback.

a11y

Long all-small-caps text is harder to read

Large blocks set with all-small-caps or all-petite-caps can be difficult for some readers, including people with dyslexia. Prefer short labels.

vs

Not the same as text-transform

text-transform: uppercase changes characters. This property keeps the source text and swaps glyph forms when available.

short

font-variant can overwrite caps

The font-variant shorthand can reset related longhands. Put font-variant-caps after the shorthand, or include the caps value in the shorthand.

synth

Synthesized small-caps are a fallback

Browsers may fake small-caps from uppercase glyphs. Designed small-cap fonts usually look cleaner and more even.

Browser Support

font-variant-caps is a browser CSS property for typography. Node.js, Deno, and Bun do not apply it.

✓ Baseline · Widely available since 2020

font-variant-caps

Chrome 52+, Firefox 34+, Safari 9.1+, Edge 79+. Internet Explorer has no support for this longhand.

96% modern browsers
Google Chrome 52+
Full support
Mozilla Firefox 34+
Full support
Apple Safari 9.1+
Full support
Microsoft Edge 79+
Full support
Opera 39+
Full support
Samsung Internet 6+
Full support
Internet Explorer No support
None
font-variant-caps Widely supported

Bottom line: Safe for modern browsers. For Internet Explorer, fall back to font-variant: small-caps when you only need classic small capitals.

Key Takeaways

  • Role: choose alternate capital glyphs such as small-caps.
  • Common values: normal, small-caps, and all-small-caps.
  • Inherited: yes. Initial value is normal.
  • Font matters: designed glyphs look better than synthesized fallbacks.

One line: font-variant-caps asks the font for special capital shapes; it does not rewrite the characters themselves.

Frequently Asked Questions

It chooses alternate capital glyphs such as small-caps or titling-caps from the current font. The initial value is normal, which turns those variants off.
small-caps turns lowercase letters into small capitals and leaves real uppercase letters full size. all-small-caps makes both upper and lowercase letters use the smaller capital form.
The font may lack true OpenType glyphs for that keyword. Browsers often synthesize a look for small-caps. Petite-caps, unicase, and titling-caps need stronger font support.
text-transform changes the characters (for example to uppercase). font-variant-caps keeps the same characters and swaps in alternate capital glyphs when the font provides them.
font-variant is a broader shorthand that can include caps and other variants. font-variant-caps is the focused longhand for capital glyph styles.
It is Baseline Widely available since 2020: Chrome 52+, Firefox 34+, Safari 9.1+, and Edge 79+. Internet Explorer does not support it. It is a browser CSS property, not a Node.js feature.

Next: font-weight

Control how light or bold the text appears.

font-weight tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful