@font-feature-values
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023.
The@font-feature-valuesCSSat-rule lets you use a common name in thefont-variant-alternates property for features activated differently in OpenType. This can help simplify your CSS when using multiple fonts.
The@font-feature-values at-rule may be used either at the top level of your CSS or inside any CSS conditional-group at-rule.
In this article
Syntax
@font-feature-values Font Name { font-display: swap; @styleset { nice-style: 12; } @swash { fancy: 2; }}Each@font-feature-values block can contain a list of feature value blocks (listed below), as well as thefont-display descriptor.
Feature value blocks
@swashSpecifies a feature name that will work with the
swash()functional notation offont-variant-alternates. A swash feature value definition allows only one value:ident1: 2is valid, butident2: 2 4isn't.@annotationSpecifies a feature name that will work with the
annotation()functional notation offont-variant-alternates. An annotation feature value definition allows only one value:ident1: 2is valid, butident2: 2 4isn't.@ornamentsSpecifies a feature name that will work with the
ornaments()functional notation offont-variant-alternates. An ornaments feature value definition allows only one value:ident1: 2is valid, butident2: 2 4isn't.@stylisticSpecifies a feature name that will work with the
stylistic()functional notation offont-variant-alternates. A stylistic feature value definition allows only one value:ident1: 2is valid, butident2: 2 4isn't.@stylesetSpecifies a feature name that will work with the
styleset()functional notation offont-variant-alternates. A styleset feature value definition allows an unlimited number of values:ident1: 2 4 12 1maps to the OpenType valuesss02,ss04,ss12, andss01. Note that values higher than99are valid, but don't map to any OpenType values and are ignored.@character-variantSpecifies a feature name that will work with the
character-variant()functional notation offont-variant-alternates. A character-variant feature value definition allows either one or two values:ident1: 3maps tocv03=1, andident2: 2 4maps tocv02=4, butident2: 2 4 5is invalid.
Formal syntax
@font-feature-values =
@font-feature-values<family-name># {<declaration-rule-list> }
<family-name> =
<string>|
<custom-ident>+
Examples
>Using @styleset in a @font-feature-values rule
/* At-rule for "nice-style" in Font One */@font-feature-values Font One { @styleset { nice-style: 12; }}/* At-rule for "nice-style" in Font Two */@font-feature-values Font Two { @styleset { nice-style: 4; }}/* Apply the at-rules with a single declaration */.nice-look { font-variant-alternates: styleset(nice-style);}Specifications
| Specification |
|---|
| CSS Fonts Module Level 4> # font-feature-values> |
Browser compatibility
Loading…
See also
- The
font-variant-alternatesproperty that uses values that this at-rule defines.