CSS - font-variant-alternates Property



The font-variant-alternates CSS property is used to control the usage of alternate glyphs for a given character within a font.

Possible Values

1. normal: Deactivates alternate glyphs.

2. one or more of the keywords given below:

  • historical-forms: Enables historical alternate glyphs. Corresponds to OpenType value hist.

  • stylistic(): Enables stylistic alternate glyphs for individual characters. Corresponds to OpenType value salt (salt 2).

  • styleset(): Enables stylistic alternate glyphs for sets of characters. Font-specific name is mapped to a number. Corresponds to OpenType value ssXY (ss02).

  • character-variant(): Similar to styleset(), but do not create coherent glyphs for a set of characters, instead for individual characters. OpenType value cvXY (cv02).

  • swash(): Enables swash glyphs. Font-specific name is mapped to a number. Corresponds to OpenType value swsh (swsh 2) and cswh (cswh 2).

  • ornaments(): Enables ornaments and other dingbat glyphs. Font-specific name is mapped to a number. Corresponds to OpenType value ornm (ornm 2)

  • annotation(): Enables annotations, such as inverted characters or circled digits. Font-specific name is mapped to a number. Corresponds to OpenType value nalt (nalt 2)

Applies to

All the HTML elements.

DOM Syntax

object.style.fontVariantAlternates = "normal | swash() | stylistic() | styleset() | character-variant() | ornaments()";

CSS font-variant-alternates - Usage of swash()

Following example demonstrates the use of swash() function that takes a parameter which is a font-specific name that is mapped to a number. @font-feature-values at-rule is used to define a name for the swash feature of the "SansationLight" font. Later the font-variant-alternate property takes the swash name as the value:

<html>
<head>
<style>
   @font-face {
      font-family: "f1";
      src: url("font/SansationLight.woff");
   }

   @font-feature-values "f1" {
      @swash {
         fancy: 2;
      }
   }

   h1 {
      font-family: "f1";
      font-size: 3rem;
   }

   p {
      background-color: aqua;
   }

   .variant {
      font-variant-alternates: swash(fancy);
      font-size: 4rem;
   }
</style>
</head>
<body>
   <h1>Heading without variant</h1>
   <h1 class="variant">Heading with variant</h1>
</body>
</html>

CSS font-variant-alternates - Usage of stylistic()

Following example demonstrates the use of stylistic() function that takes a parameter which is a font-specific name that is mapped to a number. @font-feature-values at-rule is used to define a name for the swash feature of the "SansationLight" font. Later the font-variant-alternate property takes the stylistic function with the defined name as the value:

<html>
<head>  
<style>
   @font-face {
      font-family: "f1";
      src: url("font/SansationLight.woff");
   }

   @font-feature-values "f1" {
      @stylistic {
         s: 1;
      }
   }

   h1 {
      font-family: "f1";
      font-size: 3rem;
   }

   p {
      background-color: aqua;
   }

   .variant {
      font-variant-alternates: stylistic(s);
   }
</style>
</head>
<body>
   <p>Notice the character 'g' in both the headings</p>
   <h1>Heading without variant</h1>
   <h1 class="variant" >Heading with variant</h1>
</body>
</html>
Advertisements