The @font-feature-values
CSS at-rule lets you use a common name in the font-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.
Feature value blocks
-
@swash
-
Specifies a feature name that will work with the swash()
functional notation of font-variant-alternates
. A swash feature value definition allows only one value: ident1: 2
is valid, but ident2: 2 4
isn't.
-
@annotation
-
Specifies a feature name that will work with the annotation()
functional notation of font-variant-alternates
. An annotation feature value definition allows only one value: ident1: 2
is valid, but ident2: 2 4
isn't.
-
@ornaments
-
Specifies a feature name that will work with the ornaments()
functional notation of font-variant-alternates
. An ornaments feature value definition allows only one value: ident1: 2
is valid, but ident2: 2 4
isn't.
-
@stylistic
-
Specifies a feature name that will work with the stylistic()
functional notation of font-variant-alternates
. A stylistic feature value definition allows only one value: ident1: 2
is valid, but ident2: 2 4
isn't.
-
@styleset
-
Specifies a feature name that will work with the styleset()
functional notation of font-variant-alternates
. A styleset feature value definition allows an unlimited number of values: ident1: 2 4 12 1
maps to the OpenType values ss02
, ss04
, ss12
, and ss01
. Note that values higher than 99
are valid, but don't map to any OpenType values and are ignored.
-
@character-variant
-
Specifies a feature name that will work with the character-variant()
functional notation of font-variant-alternates
. A character-variant feature value definition allows either one or two values: ident1: 3
maps to cv03=1
, and ident2: 2 4
maps to cv02=4
, but ident2: 2 4 5
is invalid.
Using @styleset in a @font-feature-values rule
@font-feature-values Font One {
@styleset {
nice-style: 12;
}
}
@font-feature-values Font Two {
@styleset {
nice-style: 4;
}
}
…
.nice-look {
font-variant-alternates: styleset(nice-style);
}
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
@font-feature-values |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
annotation |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
character-variant |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
historical-forms |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
ornaments |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
styleset |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
stylistic |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |
swash |
No |
No |
34 |
No |
No |
9.1 |
No |
No |
34 |
No |
9.3 |
No |