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.
Reset the variant.normal is the initial value and turns cap variants off.
See default glyphs. Uppercase and lowercase return to the font’s usual shapes.
Use as a clear baseline. Compare this output with the small-caps examples above.
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.
Compatibility
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 Chrome52+
Full support
Mozilla Firefox34+
Full support
Apple Safari9.1+
Full support
Microsoft Edge79+
Full support
Opera39+
Full support
Samsung Internet6+
Full support
Internet ExplorerNo support
None
font-variant-capsWidely supported
Bottom line: Safe for modern browsers. For Internet Explorer, fall back to font-variant: small-caps when you only need classic small capitals.
Remember
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.