@@ -371,13 +371,6 @@ Syntax of <<font-family-name>>
371371Syntax of <<generic-font-family>>
372372</h4>
373373
374- <!-- <pre class=prod>
375- <dfn><<generic-font-family>></dfn> = generic(<<generic-font-script-specific>> ) | <<generic-font-complete>> | <<generic-font-incomplete>>
376- <dfn><<generic-font-script-specific>></dfn> = <a href="">kai</a> | fangsong | nastaliq
377- <dfn><<generic-font-complete>></dfn> = serif | sans-serif | system-ui | cursive | fantasy | math | monospace
378- <dfn><<generic-font-incomplete>></dfn> = ui-serif | ui-sans-serif | ui-monospace | ui-rounded
379- </pre> -->
380-
381374<pre class=prod>
382375 <dfn><<generic-font-family>></dfn> = <<generic-font-script-specific>> | <<generic-font-complete>> | <<generic-font-incomplete>>
383376 <dfn><<generic-font-script-specific>></dfn> = <l>''generic(fangsong)''</l> | <l>''generic(kai)''</l> | <l>''generic(khmer-mul)''</l> | <l>''generic(nastaliq)''</l>
@@ -2764,13 +2757,6 @@ The <dfn id="at-font-face-rule">''@font-face''</dfn> rule</h3>
27642757
27652758To parse a <dfn><<font-src-list>></dfn> production, [=parse a list=] of <<font-src>> s.
27662759
2767- <pre class="prod"><dfn><font-src></dfn> = <<url>> [ format(<<font-format>> )]? [ tech( <<font-tech>> #)]? | local(<<font-family-name>> )</pre>
2768-
2769- <pre class="prod"><dfn id="font-format-values"><font-format></dfn>
2770- = [<<string>> | collection | embedded-opentype | opentype
2771- | svg | truetype | woff | woff2 ]</pre>
2772- To parse a <dfn><<font-src-list>></dfn> production, [=parse a list=] of <<font-src>> s.
2773-
27742760 <pre class="prod">
27752761 <dfn><font-src></dfn> = <<url>> [ <dfn value for="@font-face/src" id="format()">format( <<font-format>> )</dfn> ]? [ <dfn value for="@font-face/src" id="tech()">tech( <<font-tech>># )</dfn> ]?
27762762 | <dfn value for="@font-face/src" id="local()">local( <<family-name>> )</dfn>
@@ -2967,7 +2953,7 @@ To parse a <dfn><<font-src-list>></dfn> production, [=parse a list=] of <<font-s
29672953 within a larger family.
29682954 The name can optionally be enclosed in quotes.
29692955 If unquoted,
2970- the <a href="#family-name-syntax">unquoted font family name processing conventions</a> apply;
2956+ the <a href="#font- family-name-syntax">unquoted font family name processing conventions</a> apply;
29712957 in other words,
29722958 the name must be a sequence of identifiers
29732959 separated by <a href="https://www.w3.org/TR/css3-syntax/#whitespace">whitespace</a>
@@ -6059,32 +6045,6 @@ Defining font specific alternates: the <dfn>@font-feature-values</dfn> rule</h3>
60596045
60606046<h4 id="font-feature-values-syntax">Basic syntax</h4>
60616047
6062- An ''@font-feature-values'' rule's prelude
6063- contains a list of font family names,
6064- followed by a block containing multiple ''feature-value-block'' s,
6065- a special type of subsidiary at-rule.
6066- Each ''feature-value-block'' ' contains declarations
6067- mapping author-chosen human-friendly names
6068- (such as "flowing")
6069- to feature indexes for the associated feature.
6070-
6071- Each <<font-feature-value>> has the same meaning
6072- as the corresponding value of the 'font-variant-alternates' property.
6073-
6074- <pre class=prod export>
6075- @font-feature-values = @font-feature-values <<font-family-name>> # { <<declaration-rule-list>> }
6076-
6077- <dfn for="@font-feature-values">font-feature-value-type</dfn> = <<@stylistic>> | <<@historical-forms>> | <<@styleset>> | <<@character-variant>>
6078- | <<@swash>> | <<@ornaments>> | <<@annotation>>
6079-
6080- <dfn for="@font-feature-values">@stylistic</dfn> = @stylistic { <<declaration-list>> }
6081- <dfn for="@font-feature-values">@historical-forms</dfn> = @historical-forms { <<declaration-list>> }
6082- <dfn for="@font-feature-values">@styleset</dfn> = @styleset { <<declaration-list>> }
6083- <dfn for="@font-feature-values">@character-variant</dfn> = @character-variant { <<declaration-list>> }
6084- <dfn for="@font-feature-values">@swash</dfn> = @swash { <<declaration-list>> }
6085- <dfn for="@font-feature-values">@ornaments</dfn> = @ornaments { <<declaration-list>> }
6086- <dfn for="@font-feature-values">@annotation</dfn> = @annotation { <<declaration-list>> }
6087- </pre>
60886048 An ''@font-feature-values'' rule's prelude
60896049 contains a list of font family names,
60906050 followed by a block containing multiple <dfn export lt="font feature value block | feature value block">feature value blocks</dfn> ,
@@ -6117,58 +6077,6 @@ as the corresponding value of the 'font-variant-alternates' property.
61176077 test_font_feature_values_parsing.html
61186078 </wpt>
61196079
6120- The ''@font-feature-values'' prelude
6121- is a comma-delimited list of font family names that match the definition of <<font-family-name>>
6122- for the 'font-family!!property' property.
6123- This means that only named font families are allowed;
6124- rules that include generic or system fonts in the list of font families are syntax errors.
6125- However, if a user agent defines a generic font to be a specific named font (e.g. Helvetica),
6126- the settings associated with that family name will be used.
6127- If syntax errors occur within the <<font-family-name>> list,
6128- the entire rule ''@font-feature-values'' rule is invalid
6129- and must be ignored.
6130-
6131- The ''@font-feature-values'' block accepts <<declaration-rule-list>> as its contents;
6132- these list items are either:
6133-
6134- - [=at-rules=] named by one of the <<font-feature-value-type>> at-keyword tokens
6135-
6136- or
6137-
6138- - the '@font-feature-values/font-display' descriptor.
6139-
6140- <!-- TODO: tab says "The OM needs to make sure it exposes both .style and .childRules or whatever." -->
6141-
6142- Specifying the same <<font-feature-value-type>> more than once is valid;
6143- their contents are cascaded together.
6144- Each <<feature-value-block>> accepts a list of [=declarations=] ,
6145- the <dfn lt="font feature value declaration">font feature value declarations</dfn> ,
6146- where the declaration's name can be any [=identifier=] ,
6147- and the value must be a list of one or more non-negative <<integer>> s.
6148-
6149- The <<feature-value-block>> s accept any declaration name;
6150- these names must be identifiers,
6151- per standard CSS syntax rules,
6152- and are [=case-sensitive=]
6153- (so ''foo: 1;'' and ''FOO: 2'' define two different features).
6154- Each declaration's value must match the grammar ''<<integer [0,∞]>>+'' ,
6155- or else the declaration is invalid and must be ignored.
6156-
6157- Note: Each feature name is unique only within a single <<feature-value-block>> .
6158- Between different <<feature-value-block>> s,
6159- or the same type of <<feature-value-block>> s in separate ''@font-feature-values'' rules,
6160- names can be reused without colliding.
6161-
6162- For each <<font-family-name>> in the ''@font-feature-values'' prelude,
6163- each [=font feature value declaration=] defines a mapping between a
6164- (family name, feature block name, declaration name) [=tuple=]
6165- and the list of one or more integers from the declaration's value.
6166- If the same tuple appears more than once in a document
6167- (such as if a single block),
6168- the last-defined one is used.
6169-
6170- <div class=example id="ex-same-font-feature-values">
6171- For example, the following all define the exact same set of font feature values:
61726080 The ''@font-feature-values'' prelude
61736081 is a comma-delimited list of font family names that match the definition of <<family-name>>
61746082 for the 'font-family!!property' property.
0 commit comments