Spec-Zone.ru › CSS

`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-alternates
  • font-variant-caps
  • font-variant-east-asian
  • font-variant-emoji
  • font-variant-ligatures
  • font-variant-numeric
  • font-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-ligatures as none and the values of the other longhand properties as normal, their initial value.
<common-lig-values>, <discretionary-lig-values>, <historical-lig-values>, <contextual-alt-values>
Specifies the keywords related to the font-variant-ligatures longhand property. The possible values are common-ligatures, no-common-ligatures, discretionary-ligatures, no-discretionary-ligatures, historical-ligatures, no-historical-ligatures, contextual, and no-contextual.
stylistic(), historical-forms, styleset(), character-variant(), swash(), ornaments(), annotation()
Specifies the keywords and functions related to the font-variant-ligatures longhand property.
small-caps, all-small-caps, petite-caps, all-petite-caps, unicase, titling-caps
Specifies the keywords and functions related to the font-variant-caps longhand property. The small-caps value is the only non-normal font variant valid within the font shorthand property.
<numeric-figure-values>, <numeric-spacing-values>, <numeric-fraction-values>, ordinal, slashed-zero
Specifies the keywords related to the font-variant-numeric longhand property. The possible values are lining-nums, oldstyle-nums, proportional-nums, tabular-nums, diagonal-fractions, stacked-fractions, ordinal, and slashed-zero.
<east-asian-variant-values>, <east-asian-width-values>, ruby
Specifies the keywords related to the font-variant-east-asian longhand property. The possible values are jis78, jis83, jis90, jis04, simplified, traditional, full-width, proportional-width, and ruby.
sub, super
Specifies the keywords and functions related to the font-variant-position longhand property.
text, emoji, unicode
Specifies the keywords and functions related to the font-variant-emoji longhand 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-transform
  • text-combine-upright
  • text-orientation
  • SVG font-variant attribute

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API