22Title : CSS Fonts Module Level 4
33Shortname : css-fonts
44Level : 4
5- Status : ED
6- Prepare for TR : no
5+ Status : WD
6+ Date : 2024-02-01
7+ Prepare for TR : yes
78Work Status : Revising
89Group : CSSWG
910ED : https://drafts.csswg.org/css-fonts-4/
@@ -5361,9 +5362,10 @@ to fit this purpose.</p>
53615362 <dd> Enables display of small capitals
53625363 (OpenType feature: <span class="tag"> smcp</span> ).
53635364 Small-caps glyphs typically use the form of uppercase letters
5364- but are reduced to the size of lowercase letters.</dd>
5365+ but are reduced to the size of lowercase letters.
53655366
53665367 <div class="featex"><img alt="small-caps example" src="images/smcp.png"></div>
5368+ </dd>
53675369
53685370 <dt> <dfn>all-small-caps</dfn>
53695371 <dd> Enables display of small capitals for both upper and lowercase letters
@@ -5565,27 +5567,31 @@ are used so that columns of numbers line up properly:</p>
55655567
55665568 <dt> <dfn>diagonal-fractions</dfn>
55675569 <dd> Enables display of lining diagonal fractions
5568- (OpenType feature: <span class="tag"> frac</span> ).</dd>
5570+ (OpenType feature: <span class="tag"> frac</span> ).
55695571
55705572 <div class="featex"><img alt="diagonal fraction example" src="images/frac.png"></div>
5573+ </dd>
55715574
55725575 <dt> <dfn>stacked-fractions</dfn>
55735576 <dd> Enables display of lining stacked fractions
5574- (OpenType feature: <span class="tag"> afrc</span> ).</dd>
5577+ (OpenType feature: <span class="tag"> afrc</span> ).
55755578
55765579 <div class="featex"><img alt="stacked fraction example" src="images/afrc.png"></div>
5580+ </dd>
55775581
55785582 <dt> <dfn>ordinal</dfn>
55795583 <dd> Enables display of letter forms used with ordinal numbers
5580- (OpenType feature: <span class="tag"> ordn</span> ).</dd>
5584+ (OpenType feature: <span class="tag"> ordn</span> ).
55815585
55825586 <div class="featex"><img alt="ordinals example" src="images/ordinals.png"></div>
5587+ </dd>
55835588
55845589 <dt> <dfn>slashed-zero</dfn>
55855590 <dd> Enables display of slashed zeros
5586- (OpenType feature: <span class="tag"> zero</span> ).</dd>
5591+ (OpenType feature: <span class="tag"> zero</span> ).
55875592
55885593 <div class="featex"><img alt="slashed zero example" src="images/zero.png"></div>
5594+ </dd>
55895595
55905596</dl>
55915597
@@ -5719,7 +5725,7 @@ numeric <<feature-index>> with a custom
57195725<<feature-value-name>> , which is then used in this
57205726property to select specific alternates:
57215727
5722- <pre class=example highlight=css id="ex-noble-script">
5728+ <pre class=example id="ex-noble-script">
57235729@font-feature-values Noble Script { @swash { swishy: 1; flowing: 2; } }
57245730
57255731p {
@@ -5734,7 +5740,7 @@ computed value must be the same as if it had been defined. However,
57345740property values that contain these undefined <<feature-value-name>>
57355741identifiers must be ignored when choosing glyphs.
57365742
5737- <pre class=example highlight=css id="ex-effectively-same">
5743+ <pre class=example id="ex-effectively-same">
57385744/* these two style rules are effectively the same */
57395745
57405746p { font-variant-alternates: swash(unknown-value); } /* not a defined value, ignored */
@@ -5754,44 +5760,43 @@ Individual values have the following meanings:
57545760 <dd> None of the features listed below are enabled.</dd>
57555761
57565762 <dt> <dfn>historical-forms</dfn>
5757- <dd> Enables display of historical forms (OpenType feature: <span class="tag"> hist</span> ).</dd>
5763+ <dd> Enables display of historical forms (OpenType feature: <span class="tag"> hist</span> ).
57585764
5759- <div class="featex"><img alt="historical form example" src="images/hist.png"></div>
5765+ <div class="featex"><img alt="historical form example" src="images/hist.png"></div></dd>
57605766
57615767 <dt> <dfn id="stylistic" title="stylistic">stylistic(<<feature-value-name>>)</dfn>
5762- <dd> Enables display of stylistic alternates (<em> font specific</em> , OpenType feature: <span class="tag"> salt <<feature-index>> </span> ).</dd>
5768+ <dd> Enables display of stylistic alternates (<em> font specific</em> , OpenType feature: <span class="tag"> salt <<feature-index>> </span> ).
5769+ <div class="featex"><img alt="stylistic alternate example" src="images/salt.png"></div></dd>
57635770
5764- <div class="featex"><img alt="stylistic alternate example" src="images/salt.png"></div>
57655771
57665772 <dt> <dfn id="styleset" title="styleset">styleset(<<feature-value-name>>#)</dfn>
57675773 <dd> Enables display with stylistic sets (<em> font specific</em> , OpenType feature: <span class="tag"> ss<<feature-index>> </span>
5768- OpenType currently defines <span class="tag"> ss01</span> through <span class="tag"> ss20</span> ).</dd>
5774+ OpenType currently defines <span class="tag"> ss01</span> through <span class="tag"> ss20</span> ).
57695775
5770- <div class="featex"><img alt="styleset example" src="images/ssnn.png"></div>
5776+ <div class="featex"><img alt="styleset example" src="images/ssnn.png"></div></dd>
57715777
57725778 <dt> <dfn id="character-variant" title="character-variant">character-variant(<<feature-value-name>>#)</dfn>
57735779 <dd> Enables display of specific character variants (<em> font specific</em> , OpenType feature: <span class="tag"> cv<<feature-index>> </span>
57745780 OpenType currently defines <span class="tag"> cv01</span> through <span class="tag"> cv99</span> ).</dd>
57755781
57765782 <dt> <dfn id="swash" title="swash">swash(<<feature-value-name>>)</dfn>
5777- <dd> Enables display of swash glyphs (<em> font specific</em> , OpenType feature: <span class="tag"> swsh <<feature-index>> , cswh <<feature-index>> </span> ).</dd>
5783+ <dd> Enables display of swash glyphs (<em> font specific</em> , OpenType feature: <span class="tag"> swsh <<feature-index>> , cswh <<feature-index>> </span> ).
57785784
5779- <div class="featex"><img alt="swash example" src="images/swsh.png"></div>
5785+ <div class="featex"><img alt="swash example" src="images/swsh.png"></div></dd>
57805786
57815787 <dt> <dfn id="ornaments" title="ornaments">ornaments(<<feature-value-name>>)</dfn>
57825788 <dd> Enables replacement of default glyphs with ornaments, if provided in the font (<em> font specific</em> , OpenType feature: <span class="tag"> ornm <<feature-index>> </span> ).
57835789 Some fonts may offer ornament glyphs as alternates for a wide collection of characters; however, displaying arbitrary
57845790 characters (e.g., alphanumerics) as ornaments is poor practice as it distorts the semantics of the data. Font designers
57855791 are encouraged to encode all ornaments (except those explicitly encoded in the Unicode Dingbats blocks, etc.) as
57865792 alternates for the bullet character (U+2022) to allow authors to select the desired glyph using ''ornaments()'' .
5787- </dd>
57885793
5789- <div class="featex"><img alt="ornaments example" src="images/ornm.png"></div>
5794+ <div class="featex"><img alt="ornaments example" src="images/ornm.png"></div></dd>
57905795
57915796 <dt> <dfn id="annotation" title="annotation">annotation(<<feature-value-name>>)</dfn>
5792- <dd> Enables display of alternate annotation forms (<em> font specific</em> , OpenType feature: <span class="tag"> nalt <<feature-index>> </span> ).</dd>
5797+ <dd> Enables display of alternate annotation forms (<em> font specific</em> , OpenType feature: <span class="tag"> nalt <<feature-index>> </span> ).
57935798
5794- <div class="featex"><img alt="alternate annotation form example" src="images/nalt.png"></div>
5799+ <div class="featex"><img alt="alternate annotation form example" src="images/nalt.png"></div></dd>
57955800
57965801 </dl>
57975802
@@ -5845,7 +5850,7 @@ and be sure they're not accidentally turning on unrelated features
58455850 glyph will be used:
58465851 </p>
58475852
5848- <pre highlight=css >
5853+ <pre>
58495854 @font-feature-values Otaru Kisa {
58505855 @annotation { circled: 1; black-boxed: 3; }
58515856 }
@@ -5955,11 +5960,10 @@ If the same tuple appears more than once in a document
59555960(such as if a single block),
59565961the last-defined one is used.
59575962
5958- <div class=example id="ex-same-font-feature-values
5959- ">
5963+ <div class=example id="ex-same-font-feature-values">
59605964 For example, the following all define the exact same set of font feature values:
59615965
5962- <pre highlight=css >
5966+ <pre>
59635967 /* Default */
59645968 @font-feature-values foo {
59655969 @swash { pretty: 1; cool: 2; }
@@ -5997,7 +6001,7 @@ but does not invalidate the ''@font-feature-values'' rule.
59976001<div class="example" id="ex-invalid-ignored">
59986002 Rules that are equivalent given syntax error handling:
59996003
6000- <pre highlight=css >
6004+ <pre>
60016005 @font-feature-values Bongo {
60026006 @swash { ornate: 1; }
60036007 annotation { boxed: 4; } /* should be @annotation! */
@@ -6010,7 +6014,7 @@ but does not invalidate the ''@font-feature-values'' rule.
60106014
60116015 The example above is equivalent to:
60126016
6013- <pre highlight=css >
6017+ <pre>
60146018 @font-feature-values Bongo {
60156019 @swash { ornate: 1; }
60166020 @swash { double-loops: 1; }
@@ -6029,7 +6033,7 @@ specific additions made per-page.
60296033 Using both site-wide and per-page feature values:
60306034
60316035 site.css:
6032- <pre highlight=css >
6036+ <pre>
60336037 @font-feature-values Mercury Serif {
60346038 @styleset {
60356039 stacked-g: 3; /* "two-storey" versions of g, a */
@@ -6040,7 +6044,7 @@ specific additions made per-page.
60406044
60416045 page.css:
60426046
6043- <pre highlight=css >
6047+ <pre>
60446048 @font-feature-values Mercury Serif {
60456049 @styleset {
60466050 geometric-m: 7; /* alternate version of m */
@@ -6062,7 +6066,7 @@ Multi-valued feature value definitions</h4>
60626066 Most <em> font specific</em> functional values of the 'font-variant-alternates' property
60636067 take a single value (e.g. ''swash()'' ) which enables the feature.
60646068
6065- <pre class="example" id="ex-single-valued-feature" highlight=css > @font-feature-values Jupiter Serif {
6069+ <pre class="example" id="ex-single-valued-feature" > @font-feature-values Jupiter Serif {
60666070
60676071 @swash {
60686072 swishy: 5; /* implies ss05 = 1 */
@@ -6074,7 +6078,7 @@ Multi-valued feature value definitions</h4>
60746078 The ''character-variant()'' property value and the ''@character-variant'' descriptor allow two values,
60756079 which enables a feature (from the first value) and sets it to a given (second) value.
60766080
6077- <pre class="example" id="ex-two-valued-feature" highlight=css > @font-feature-values MM Greek {
6081+ <pre class="example" id="ex-two-valued-feature" > @font-feature-values MM Greek {
60786082
60796083 @character-variant { alpha-2: 1 2; } /* implies cv01 = 2 */
60806084 @character-variant { beta-3: 2 3; } /* implies cv02 = 3 */
@@ -6091,7 +6095,7 @@ Multi-valued feature value definitions</h4>
60916095 generate a syntax error when parsed but enable no OpenType features.
60926096
60936097
6094- <pre class="example" id="ex-multi-valued-feature" highlight=css > @font-feature-values Mars Serif {
6098+ <pre class="example" id="ex-multi-valued-feature" > @font-feature-values Mars Serif {
60956099
60966100 @styleset {
60976101 alt-g: 1; /* implies ss01 = 1 */
@@ -6124,7 +6128,7 @@ p.codeblock {
61246128 feature value definition</i> is
61256129 ignored.
61266130
6127- <pre class="example" id="ex-greek-variant-features" highlight=css > @font-feature-values MM Greek {
6131+ <pre class="example" id="ex-greek-variant-features" > @font-feature-values MM Greek {
61286132
61296133 @character-variant { alpha-2: 1 2; } /* implies cv01 = 2 */
61306134 @character-variant { beta-3: 2 3; } /* implies cv02 = 3 */
@@ -6160,7 +6164,7 @@ p {
61606164 a font without variants. Note the two variants for U and N used on the
61616165 seal.</p>
61626166
6163- <pre highlight=css > @font-feature-values Athena Ruby {
6167+ <pre> @font-feature-values Athena Ruby {
61646168
61656169 @character-variant {
61666170 leo-B: 2 1;
@@ -6250,9 +6254,9 @@ Animation type: discrete
62506254
62516255 <dt> <dfn>jis78</dfn>
62526256 <dd> Enables rendering of JIS78 forms
6253- (OpenType feature: <span class="tag"> jp78</span> ).</dd>
6257+ (OpenType feature: <span class="tag"> jp78</span> ).
62546258
6255- <div class="featex"><img alt="JIS78 form example" src="images/jp78.png"></div>
6259+ <div class="featex"><img alt="JIS78 form example" src="images/jp78.png"></div></dd>
62566260
62576261 <dt> <dfn>jis83</dfn>
62586262 <dd> Enables rendering of JIS83 forms
@@ -6281,7 +6285,7 @@ Animation type: discrete
62816285
62826286 <dt> <dfn>traditional</dfn>
62836287 <dd> Enables rendering of traditional forms
6284- (OpenType feature: <span class="tag"> trad</span> ).</dd>
6288+ (OpenType feature: <span class="tag"> trad</span> ).
62856289
62866290 <p> The 'simplified' and 'traditional' values
62876291 allow control over the glyph forms
@@ -6291,19 +6295,19 @@ Animation type: discrete
62916295 The exact set of characters and glyph forms
62926296 will vary to some degree
62936297 by the context for which a given font was designed.</p>
6294- </dd>
62956298
6296- <div class="featex"><img alt="traditional form example" src="images/trad.png"></div>
6299+ <div class="featex"><img alt="traditional form example" src="images/trad.png"></div></dd>
6300+ </dd>
62976301
62986302 <dt> <dfn>full-width</dfn>
62996303 <dd> Enables rendering of full-width variants
63006304 (OpenType feature: <span class="tag"> fwid</span> ).</dd>
63016305
63026306 <dt> <dfn>proportional-width</dfn>
63036307 <dd> Enables rendering of proportionally-spaced variants
6304- (OpenType feature: <span class="tag"> pwid</span> ).</dd>
6308+ (OpenType feature: <span class="tag"> pwid</span> ).
63056309
6306- <div class="featex"><img alt="proportionally spaced Japanese example" src="images/pwid.png"></div>
6310+ <div class="featex"><img alt="proportionally spaced Japanese example" src="images/pwid.png"></div></dd>
63076311
63086312 <dt> <dfn>ruby</dfn>
63096313 <dd> Enables display of ruby variant glyphs
@@ -6321,9 +6325,9 @@ Animation type: discrete
63216325 is shown with default glyphs (top)
63226326 and with ruby variant glyphs (bottom).
63236327 Note the slight difference
6324- in stroke thickness.</dd>
6328+ in stroke thickness.
63256329
6326- <div class="featex"><img alt="ruby variant example" src="images/rubyshinkansen.png"></div>
6330+ <div class="featex"><img alt="ruby variant example" src="images/rubyshinkansen.png"></div></dd>
63276331
63286332</dl>
63296333
@@ -8400,7 +8404,7 @@ Serializing font-related at-rules
84008404
84018405 would be serialized as:
84028406
8403- <pre highlight=css >
8407+ <pre>
84048408 /* Canonical serialization */
84058409 @font-feature-values foo {
84068410 @swash { cool: 2; pretty: 1; }
0 commit comments