Definition and Usage
For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.
In cases where multiple alternates are possible, authors define a
Name: | font-variant-alternates |
Value: | normal | [ 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>) ] |
Initial: | normal |
Applies to: | all elements |
Inherited: | yes |
Percentages: | N/A |
Media: | visual |
Computed value: | as specified |
Syntax
font-variant-alternates : normal | [ 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>) ]
Values
- normal
- None of the features listed below are enabled.
- stylistic(<feature-value-name>)
- Enables display of stylistic alternates (font specific, OpenType feature: salt <feature-value-name>).
- historical-forms
- Enables display of historical forms (OpenType feature: hist).
- styleset(<feature-value-name>#)
- Enables display with stylistic sets (font specific, OpenType feature: ss<feature-index> OpenType currently defines ss01 through ss20).
- character-variant(<feature-value-name>#)
- Enables display of specific character variants (font specific, OpenType feature: cv<feature-index> OpenType currently defines cv01 through cv99).
- swash(<feature-value-name>)
- Enables display of swash glyphs (font specific, OpenType feature: swsh <feature-index>, cswh <feature-index>).
- ornaments(<feature-value-name>)
- Enables replacement of default glyphs with ornaments, if provided in the font (font specific, OpenType feature: ornm <feature-index>). Some fonts may offer ornament glyphs as alternates for a wide collection of characters; however, displaying arbitrary characters (e.g., alphanumerics) as ornaments is poor practice as it distorts the semantics of the data. Font designers are encouraged to encode all ornaments (except those explicitly encoded in the Unicode Dingbats blocks, etc.) as alternates for the bullet character (U+2022) to allow authors to select the desired glyph using <feature-value-name>.
- annotation(<feature-value-name>)
- Enables display of alternate annotation forms (font specific, OpenType feature: nalt <feature-index>).
Examples
@font-feature-values Jupiter Sans { @swash delicate 1, flowing 2; } h2 { font-family: Jupiter Sans, sans-serif; } /* show the second swash variant in h2 headings */ h2:first-letter { font-variant-alternates: swash(flowing); }