`font-variant` CSS property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since July 2015.
The font-variant CSS shorthand property allows you to set all the font variants for a font.
You can also set the <font-variant-css2> values of font-variant defined in CSS Level 2.1, (that is, normal or small-caps), by using the font shorthand.
Try it
font-variant: normal;
font-variant: no-common-ligatures proportional-nums;
font-variant: common-ligatures tabular-nums;
font-variant: small-caps slashed-zero;
<section id="default-example">
<div id="example-element">
<p>Difficult waffles</p>
<table>
<tbody>
<tr>
<td><span class="tabular">0O</span></td>
</tr>
<tr>
<td><span class="tabular">3.14</span></td>
</tr>
<tr>
<td><span class="tabular">2.71</span></td>
</tr>
</tbody>
</table>
</div>
</section>
@font-face {
font-family: "Fira Sans";
src:
local("FiraSans-Regular"),
url("/shared-assets/fonts/FiraSans-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
}
section {
font-family: "Fira Sans", sans-serif;
margin-top: 10px;
font-size: 1.5em;
}
#example-element table {
margin-left: auto;
margin-right: auto;
}
.tabular {
border: 1px solid;
}
Constituent properties
This property is a shorthand for the following CSS properties:
font-variant-alternatesfont-variant-capsfont-variant-east-asianfont-variant-emojifont-variant-ligaturesfont-variant-numericfont-variant-position
Syntax
font-variant: small-caps; font-variant: common-ligatures small-caps; /* Global values */ font-variant: inherit; font-variant: initial; font-variant: revert; font-variant: revert-layer; font-variant: unset;
Values
This property is specified as a space-separated list of the following values:
-
normal - Specifies a normal font face. Each longhand property has an initial value of
normal. -
none - Sets the value of the
font-variant-ligaturesasnoneand the values of the other longhand properties asnormal, their initial value. -
<common-lig-values>,<discretionary-lig-values>,<historical-lig-values>,<contextual-alt-values> - Specifies the keywords related to the
font-variant-ligatureslonghand property. The possible values arecommon-ligatures,no-common-ligatures,discretionary-ligatures,no-discretionary-ligatures,historical-ligatures,no-historical-ligatures,contextual, andno-contextual. -
stylistic(),historical-forms,styleset(),character-variant(),swash(),ornaments(),annotation() - Specifies the keywords and functions related to the
font-variant-ligatureslonghand property. -
small-caps,all-small-caps,petite-caps,all-petite-caps,unicase,titling-caps - Specifies the keywords and functions related to the
font-variant-capslonghand property. Thesmall-capsvalue is the only non-normalfont variant valid within thefontshorthand property. -
<numeric-figure-values>,<numeric-spacing-values>,<numeric-fraction-values>,ordinal,slashed-zero - Specifies the keywords related to the
font-variant-numericlonghand property. The possible values arelining-nums,oldstyle-nums,proportional-nums,tabular-nums,diagonal-fractions,stacked-fractions,ordinal, andslashed-zero. -
<east-asian-variant-values>,<east-asian-width-values>,ruby - Specifies the keywords related to the
font-variant-east-asianlonghand property. The possible values arejis78,jis83,jis90,jis04,simplified,traditional,full-width,proportional-width, andruby. -
sub,super - Specifies the keywords and functions related to the
font-variant-positionlonghand property. -
text,emoji,unicode - Specifies the keywords and functions related to the
font-variant-emojilonghand property.
Formal definition
| Initial value | normal |
|---|---|
| Applies to | all elements and text |
| Inherited | yes |
| Computed value | as specified |
| Animation type | discrete |
Formal syntax
font-variant = normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ] <common-lig-values> = [ common-ligatures | no-common-ligatures ] <discretionary-lig-values> = [ discretionary-ligatures | no-discretionary-ligatures ] <historical-lig-values> = [ historical-ligatures | no-historical-ligatures ] <contextual-alt-values> = [ contextual | no-contextual ] <feature-value-name> = <custom-ident> <numeric-figure-values> = [ lining-nums | oldstyle-nums ] <numeric-spacing-values> = [ proportional-nums | tabular-nums ] <numeric-fraction-values> = [ diagonal-fractions | stacked-fractions ] <east-asian-variant-values> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ] <east-asian-width-values> = [ full-width | proportional-width ]
Examples
Setting the small-caps font variant
HTML
<p class="normal">Firefox rocks!</p> <p class="small">Firefox rocks!</p>
CSS
p.normal {
font-variant: normal;
}
p.small {
font-variant: small-caps;
}
Result
Specifications
| Specification |
|---|
| CSS Fonts Module Level 4 # font-variant-prop |
| Scalable Vector Graphics (SVG) 2 # FontVariantProperty |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
font-variant |
1 |
12 |
1 |
3.5 |
1 |
18 |
4 |
11 |
1 |
1.0 |
4.4 |
1 |
css_fonts_shorthand |
52 |
79 |
34 |
39 |
9.1 |
52 |
34 |
41 |
9.3 |
6.0 |
52 |
9.3 |
greek_accented_characters |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
No |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
No |
NoSome operating systems may correctly omit accents in all-uppercase Greek text. |
NoSome operating systems may correctly omit accents in all-uppercase Greek. |
No |
historical-forms |
111 |
111 |
34 |
97 |
9.1 |
111 |
34 |
75 |
9.3 |
22.0 |
111 |
9.3 |
none |
52 |
79 |
34 |
39 |
9 |
52 |
34 |
41 |
9 |
6.0 |
52 |
9 |
normal |
1 |
12 |
1 |
15 |
1 |
18 |
4 |
14 |
1 |
1.0 |
4.4 |
1 |
sub |
110 |
110 |
34 |
96 |
9.1 |
110 |
34 |
74 |
9.3 |
21.0 |
110 |
9.3 |
super |
110 |
110 |
34 |
96 |
9.1 |
110 |
34 |
74 |
9.3 |
21.0 |
110 |
9.3 |
turkic_is |
31 |
12 |
14 |
18 |
8 |
31 |
14 |
18 |
8 |
2.0 |
4.4.3 |
8 |
uppercase_eszett |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
No |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
No |
NoSome operating systems may capitalizeß as SS. |
NoSome operating systems may capitalizeß as SS. |
No |
See also
text-transformtext-combine-uprighttext-orientation- SVG
font-variantattribute
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/font-variant