coderef

font-variant-alternatesBaseline · Widely available

The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Mar 13, 2023. Widely available since Sep 13, 2025.

Browser support

DesktopChrome
1–110Not supported
111+Supportedsince Mar 7, 2023
Current: 155
Edge
12–110Not supported
111+Supportedsince Mar 13, 2023
Current: 154
Firefox
1–33Not supported
34+Supportedsince Dec 1, 2014
Current: 157
Safari
1–9Not supported
9.1+Supportedsince Mar 21, 2016
Current: 27
MobileChrome Android
18–110Not supported
111+Supportedsince Mar 7, 2023
Current: 155
Firefox Android
4–33Not supported
34+Supportedsince Dec 1, 2014
Current: 157
Safari iOS
1–9Not supported
9.3+Supportedsince Mar 21, 2016
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: CSSFontFeatureValuesMap.

Feature detection

CSS · check before using
@supports (font-variant-alternates: initial) {
  /* styles that rely on font-variant-alternates */
}

/* or in JavaScript */
if (CSS.supports("font-variant-alternates", "initial")) {
  // use it
}

Sub-features

Support for each part of the feature (37). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
CSSFontFeatureValuesMap111111✕✕111✕✕
CSSFontFeatureValuesMap.@@iterator111111✕✕111✕✕
CSSFontFeatureValuesMap.clear111111✕✕111✕✕
CSSFontFeatureValuesMap.delete111111✕✕111✕✕
CSSFontFeatureValuesMap.entries111111✕✕111✕✕
CSSFontFeatureValuesMap.forEach111111✕✕111✕✕
CSSFontFeatureValuesMap.get111111✕✕111✕✕
CSSFontFeatureValuesMap.has111111✕✕111✕✕
CSSFontFeatureValuesMap.keys111111✕✕111✕✕
CSSFontFeatureValuesMap.set111111✕✕111✕✕
CSSFontFeatureValuesMap.size111111✕✕111✕✕
CSSFontFeatureValuesMap.values111111✕✕111✕✕
CSSFontFeatureValuesRule1341343416.21343416.2
CSSFontFeatureValuesRule.annotation134134✕✕134✕✕
CSSFontFeatureValuesRule.characterVariant134134✕✕134✕✕
CSSFontFeatureValuesRule.fontFamily1341343416.21343416.2
CSSFontFeatureValuesRule.ornaments134134✕✕134✕✕
CSSFontFeatureValuesRule.styleset134134✕✕134✕✕
CSSFontFeatureValuesRule.stylistic134134✕✕134✕✕
CSSFontFeatureValuesRule.swash134134✕✕134✕✕
Show 17 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
@font-feature-values111111349.1111349.3
@font-feature-values.annotation111111349.1111349.3
@font-feature-values.character-variant111111349.1111349.3
@font-feature-values.historical-forms111111349.1111349.3
@font-feature-values.ornaments111111349.1111349.3
@font-feature-values.styleset111111349.1111349.3
@font-feature-values.stylistic111111349.1111349.3
@font-feature-values.swash111111349.1111349.3
font-variant-alternates111111349.1111349.3
font-variant-alternates.annotation1111113416.21113416.2
font-variant-alternates.character_variant1111113416.21113416.2
font-variant-alternates.historical-forms111111349.1111349.3
font-variant-alternates.normal111111349.1111349.3
font-variant-alternates.ornaments1111113416.21113416.2
font-variant-alternates.styleset1111113416.21113416.2
font-variant-alternates.stylistic1111113416.21113416.2
font-variant-alternates.swash1111113416.21113416.2