css_ast/values/fonts/
mod.rs

1#![allow(warnings)]
2//! https://drafts.csswg.org/css-fonts-5/
3
4mod impls;
5use super::prelude::*;
6use impls::*;
7// /// Represents the style value for `font` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font).
8// ///
9// /// The font CSS property shorthand sets multiple font properties, including style, weight, size, and font family.
10// ///
11// /// The grammar is defined as:
12// ///
13// /// ```text,ignore
14// /**[ [ <'font-style'> ||
15// <font-variant-css2> ||
16// <'font-weight'> ||
17// <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]?
18// <'font-family'># ] |
19// <system-family-name>*/
20// /// ```
21// ///
22// /// https://drafts.csswg.org/css-fonts-5/#font
23// #[syntax(
24//     " [ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name> "
25// )]
26// #[derive(
27//     Parse,
28//     Peek,
29//     ToSpan,
30//     ToCursors,
31//     DeclarationMetadata,
32//     SemanticEq,
33//     Debug,
34//     Clone,
35//     PartialEq,
36//     Eq,
37//     PartialOrd,
38//     Ord,
39//     Hash,
40// )]
41// #[declaration_metadata(
42//     initial = "see individual properties",
43//     inherits,
44//     applies_to = Elements|Text,
45//     percentages = Unknown,
46//     animation_type = Unknown,
47//     property_group = Fonts,
48//     computed_value_type = Unknown,
49//     canonical_order = "per grammar",
50// )]
51// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
52// #[cfg_attr(
53//     feature = "css_feature_data",
54//     derive(ToCSSFeature),
55//     css_feature("css.properties.font")
56// )]
57// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
58// pub enum FontStyleValue<'a> {}
59
60/// Represents the style value for `font-family` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-family).
61///
62/// The font-family CSS property sets the desired font face for text, along with optional fallback font faces.
63///
64/// The grammar is defined as:
65///
66/// ```text,ignore
67/// [ <family-name> | <generic-family> ]#
68/// ```
69///
70/// https://drafts.csswg.org/css-fonts-5/#font-family
71#[syntax(" [ <family-name> | <generic-family> ]# ")]
72#[derive(
73	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
74)]
75#[declaration_metadata(
76    initial = "depends on user agent",
77    inherits,
78    applies_to = Elements|Text,
79    animation_type = Discrete,
80    property_group = Fonts,
81    computed_value_type = Unknown,
82    canonical_order = "per grammar",
83)]
84#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
85#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-family"))]
86#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
87pub struct FontFamilyStyleValue<'a>;
88
89// /// Represents the style value for `font-feature-settings` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-feature-settings).
90// ///
91// /// The font-feature-settings CSS property sets low-level OpenType feature tags for a font. When possible, use font-variant instead.
92// ///
93// /// The grammar is defined as:
94// ///
95// /// ```text,ignore
96// /// normal | <feature-tag-value>#
97// /// ```
98// ///
99// /// https://drafts.csswg.org/css-fonts-5/#font-feature-settings
100// #[syntax(" normal | <feature-tag-value># ")]
101// #[derive(
102//     Parse,
103//     Peek,
104//     ToSpan,
105//     ToCursors,
106//     DeclarationMetadata,
107//     SemanticEq,
108//     Debug,
109//     Clone,
110//     PartialEq,
111//     Eq,
112//     PartialOrd,
113//     Ord,
114//     Hash,
115// )]
116// #[declaration_metadata(
117//     initial = "normal",
118//     inherits,
119//     applies_to = Elements|Text,
120//     animation_type = Discrete,
121//     property_group = Fonts,
122//     computed_value_type = AsSpecified,
123//     canonical_order = "per grammar",
124// )]
125// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
126// #[cfg_attr(
127//     feature = "css_feature_data",
128//     derive(ToCSSFeature),
129//     css_feature("css.properties.font-feature-settings")
130// )]
131// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
132// pub enum FontFeatureSettingsStyleValue<'a> {}
133
134/// Represents the style value for `font-kerning` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-kerning).
135///
136/// The font-kerning CSS property sets whether kerning data from a font is used to adjust the space between letters.
137///
138/// The grammar is defined as:
139///
140/// ```text,ignore
141/// auto | normal | none
142/// ```
143///
144/// https://drafts.csswg.org/css-fonts-5/#font-kerning
145#[syntax(" auto | normal | none ")]
146#[derive(
147	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
148)]
149#[declaration_metadata(
150    initial = "auto",
151    inherits,
152    applies_to = Elements|Text,
153    animation_type = Discrete,
154    property_group = Fonts,
155    computed_value_type = AsSpecified,
156    canonical_order = "per grammar",
157)]
158#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
159#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-kerning"))]
160#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
161pub enum FontKerningStyleValue {}
162
163/// Represents the style value for `font-language-override` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-language-override).
164///
165/// The font-language-override CSS property sets which language-specific glyphs are displayed.
166///
167/// The grammar is defined as:
168///
169/// ```text,ignore
170/// normal | <string>
171/// ```
172///
173/// https://drafts.csswg.org/css-fonts-5/#font-language-override
174#[syntax(" normal | <string> ")]
175#[derive(
176	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
177)]
178#[declaration_metadata(
179    initial = "normal",
180    inherits,
181    applies_to = Elements|Text,
182    animation_type = Discrete,
183    property_group = Fonts,
184    computed_value_type = Unknown,
185    canonical_order = "per grammar",
186)]
187#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
188#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-language-override"))]
189#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
190pub enum FontLanguageOverrideStyleValue {}
191
192/// Represents the style value for `font-optical-sizing` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-optical-sizing).
193///
194/// The font-optical-sizing CSS property sets whether text rendering is optimized for viewing at different sizes.
195///
196/// The grammar is defined as:
197///
198/// ```text,ignore
199/// auto | none
200/// ```
201///
202/// https://drafts.csswg.org/css-fonts-5/#font-optical-sizing
203#[syntax(" auto | none ")]
204#[derive(
205	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
206)]
207#[declaration_metadata(
208    initial = "auto",
209    inherits,
210    applies_to = Elements|Text,
211    animation_type = Discrete,
212    property_group = Fonts,
213    computed_value_type = Unknown,
214    canonical_order = "per grammar",
215)]
216#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
217#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-optical-sizing"))]
218#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
219pub enum FontOpticalSizingStyleValue {}
220
221// /// Represents the style value for `font-palette` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-palette).
222// ///
223// /// The font-palette CSS property selects a color palette from the font, optionally overriding individual colors in the @font-palette-values at-rule.
224// ///
225// /// The grammar is defined as:
226// ///
227// /// ```text,ignore
228// /// normal | light | dark | <palette-identifier> | <palette-mix()>
229// /// ```
230// ///
231// /// https://drafts.csswg.org/css-fonts-5/#font-palette
232// #[syntax(" normal | light | dark | <palette-identifier> | <palette-mix()> ")]
233// #[derive(
234//     Parse,
235//     Peek,
236//     ToSpan,
237//     ToCursors,
238//     DeclarationMetadata,
239//     SemanticEq,
240//     Debug,
241//     Clone,
242//     PartialEq,
243//     Eq,
244//     PartialOrd,
245//     Ord,
246//     Hash,
247// )]
248// #[declaration_metadata(
249//     initial = "normal",
250//     inherits,
251//     applies_to = Elements|Text,
252//     animation_type = ByComputedValue,
253//     property_group = Fonts,
254//     computed_value_type = Unknown,
255//     canonical_order = "per grammar",
256// )]
257// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
258// #[cfg_attr(
259//     feature = "css_feature_data",
260//     derive(ToCSSFeature),
261//     css_feature("css.properties.font-palette")
262// )]
263// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
264// pub enum FontPaletteStyleValue {}
265
266/// Represents the style value for `font-size` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-size).
267///
268/// The font-size CSS property sets the text height.
269///
270/// The grammar is defined as:
271///
272/// ```text,ignore
273/// <absolute-size> | <relative-size> | <length-percentage [0,∞]> | math
274/// ```
275///
276/// https://drafts.csswg.org/css-fonts-5/#font-size
277#[syntax(" <absolute-size> | <relative-size> | <length-percentage [0,∞]> | math ")]
278#[derive(
279	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
280)]
281#[declaration_metadata(
282    initial = "medium",
283    inherits,
284    applies_to = Elements|Text,
285    percentages = Unknown,
286    animation_type = ByComputedValue,
287    property_group = Fonts,
288    computed_value_type = AbsoluteLength,
289    canonical_order = "per grammar",
290)]
291#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
292#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-size"))]
293#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
294pub enum FontSizeStyleValue {}
295
296// /// Represents the style value for `font-size-adjust` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-size-adjust).
297// ///
298// /// The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
299// ///
300// /// The grammar is defined as:
301// ///
302// /// ```text,ignore
303// /// none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ]
304// /// ```
305// ///
306// /// https://drafts.csswg.org/css-fonts-5/#font-size-adjust
307// #[syntax(
308//     " none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ] "
309// )]
310// #[derive(
311//     Parse,
312//     Peek,
313//     ToSpan,
314//     ToCursors,
315//     DeclarationMetadata,
316//     SemanticEq,
317//     Debug,
318//     Clone,
319//     PartialEq,
320//     Eq,
321//     PartialOrd,
322//     Ord,
323//     Hash,
324// )]
325// #[declaration_metadata(
326//     initial = "none",
327//     inherits,
328//     applies_to = Elements|Text,
329//     animation_type = Discrete,
330//     property_group = Fonts,
331//     computed_value_type = Unknown,
332//     canonical_order = "per grammar",
333// )]
334// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
335// #[cfg_attr(
336//     feature = "css_feature_data",
337//     derive(ToCSSFeature),
338//     css_feature("css.properties.font-size-adjust")
339// )]
340// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
341// pub struct FontSizeAdjustStyleValue;
342
343/// Represents the style value for `font-style` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-style).
344///
345/// The font-style CSS property sets the text style, with normal, italic, and oblique options.
346///
347/// The grammar is defined as:
348///
349/// ```text,ignore
350/// normal | italic | left | right | oblique <angle [-90deg,90deg]>?
351/// ```
352///
353/// https://drafts.csswg.org/css-fonts-5/#font-style
354#[syntax(" normal | italic | left | right | oblique <angle [-90deg,90deg]>? ")]
355#[derive(
356	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
357)]
358#[declaration_metadata(
359    initial = "normal",
360    inherits,
361    applies_to = Elements|Text,
362    animation_type = ByComputedValue,
363    property_group = Fonts,
364    computed_value_type = Unknown,
365    canonical_order = "per grammar",
366)]
367#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
368#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-style"))]
369#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
370pub enum FontStyleStyleValue {}
371
372/// Represents the style value for `font-synthesis` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis).
373///
374/// The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.
375///
376/// The grammar is defined as:
377///
378/// ```text,ignore
379/// none | [ weight || style || small-caps || position]
380/// ```
381///
382/// https://drafts.csswg.org/css-fonts-5/#font-synthesis
383#[syntax(" none | [ weight || style || small-caps || position] ")]
384#[derive(
385	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
386)]
387#[declaration_metadata(
388    initial = "weight style small-caps position",
389    inherits,
390    applies_to = Elements|Text,
391    animation_type = Discrete,
392    property_group = Fonts,
393    computed_value_type = Unknown,
394    canonical_order = "per grammar",
395)]
396#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
397#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis"))]
398#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
399pub struct FontSynthesisStyleValue;
400
401/// Represents the style value for `font-synthesis-position` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-position).
402///
403/// The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
404///
405/// The grammar is defined as:
406///
407/// ```text,ignore
408/// auto | none
409/// ```
410///
411/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-position
412#[syntax(" auto | none ")]
413#[derive(
414	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
415)]
416#[declaration_metadata(
417    initial = "auto",
418    inherits,
419    applies_to = Elements|Text,
420    animation_type = Discrete,
421    property_group = Fonts,
422    computed_value_type = Unknown,
423    canonical_order = "per grammar",
424)]
425#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
426#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-position"))]
427#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
428pub enum FontSynthesisPositionStyleValue {}
429
430/// Represents the style value for `font-synthesis-small-caps` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-small-caps).
431///
432/// The font-synthesis-small-caps CSS property sets whether or not the browser should synthesize small caps typefaces when they're missing from the font.
433///
434/// The grammar is defined as:
435///
436/// ```text,ignore
437/// auto | none
438/// ```
439///
440/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-small-caps
441#[syntax(" auto | none ")]
442#[derive(
443	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
444)]
445#[declaration_metadata(
446    initial = "auto",
447    inherits,
448    applies_to = Elements|Text,
449    animation_type = Discrete,
450    property_group = Fonts,
451    computed_value_type = Unknown,
452    canonical_order = "per grammar",
453)]
454#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
455#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-small-caps"))]
456#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
457pub enum FontSynthesisSmallCapsStyleValue {}
458
459/// Represents the style value for `font-synthesis-style` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-style).
460///
461/// The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
462///
463/// The grammar is defined as:
464///
465/// ```text,ignore
466/// auto | none | oblique-only
467/// ```
468///
469/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-style
470#[syntax(" auto | none | oblique-only ")]
471#[derive(
472	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
473)]
474#[declaration_metadata(
475    initial = "auto",
476    inherits,
477    applies_to = Elements|Text,
478    animation_type = Discrete,
479    property_group = Fonts,
480    computed_value_type = Unknown,
481    canonical_order = "per grammar",
482)]
483#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
484#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-style"))]
485#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
486pub enum FontSynthesisStyleStyleValue {}
487
488/// Represents the style value for `font-synthesis-weight` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-weight).
489///
490/// The font-synthesis-weight CSS property sets whether or not the browser should synthesize bold typefaces when they're missing from the font.
491///
492/// The grammar is defined as:
493///
494/// ```text,ignore
495/// auto | none
496/// ```
497///
498/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-weight
499#[syntax(" auto | none ")]
500#[derive(
501	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
502)]
503#[declaration_metadata(
504    initial = "auto",
505    inherits,
506    applies_to = Elements|Text,
507    animation_type = Discrete,
508    property_group = Fonts,
509    computed_value_type = Unknown,
510    canonical_order = "per grammar",
511)]
512#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
513#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-weight"))]
514#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
515pub enum FontSynthesisWeightStyleValue {}
516
517// /// Represents the style value for `font-variant` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant).
518// ///
519// /// The font-variant CSS property is a shorthand for font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-emoji, font-variant-ligatures, font-variant-numeric, and font-variant-position.
520// ///
521// /// The grammar is defined as:
522// ///
523// /// ```text,ignore
524// /// normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ 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>) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ]
525// /// ```
526// ///
527// /// https://drafts.csswg.org/css-fonts-5/#font-variant
528// #[syntax(
529//     " normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ 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>) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ] "
530// )]
531// #[derive(
532//     Parse,
533//     Peek,
534//     ToSpan,
535//     ToCursors,
536//     DeclarationMetadata,
537//     SemanticEq,
538//     Debug,
539//     Clone,
540//     PartialEq,
541//     Eq,
542//     PartialOrd,
543//     Ord,
544//     Hash,
545// )]
546// #[declaration_metadata(
547//     initial = "normal",
548//     inherits,
549//     applies_to = Elements|Text,
550//     animation_type = Discrete,
551//     property_group = Fonts,
552//     computed_value_type = AsSpecified,
553//     canonical_order = "per grammar",
554// )]
555// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
556// #[cfg_attr(
557//     feature = "css_feature_data",
558//     derive(ToCSSFeature),
559//     css_feature("css.properties.font-variant")
560// )]
561// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
562// pub enum FontVariantStyleValue<'a> {}
563
564// /// Represents the style value for `font-variant-alternates` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-alternates).
565// ///
566// /// The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.
567// ///
568// /// The grammar is defined as:
569// ///
570// /// ```text,ignore
571// /**normal | [ stylistic(<feature-value-name>) ||
572// historical-forms ||
573// styleset(<feature-value-name>#) ||
574// character-variant(<feature-value-name>#) ||
575// swash(<feature-value-name>) ||
576// ornaments(<feature-value-name>) ||
577// annotation(<feature-value-name>) ]*/
578// /// ```
579// ///
580// /// https://drafts.csswg.org/css-fonts-5/#font-variant-alternates
581// #[syntax(
582//     " 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>) ] "
583// )]
584// #[derive(
585//     Parse,
586//     Peek,
587//     ToSpan,
588//     ToCursors,
589//     DeclarationMetadata,
590//     SemanticEq,
591//     Debug,
592//     Clone,
593//     PartialEq,
594//     Eq,
595//     PartialOrd,
596//     Ord,
597//     Hash,
598// )]
599// #[declaration_metadata(
600//     initial = "normal",
601//     inherits,
602//     applies_to = Elements|Text,
603//     animation_type = Discrete,
604//     property_group = Fonts,
605//     computed_value_type = AsSpecified,
606//     canonical_order = "per grammar",
607// )]
608// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
609// #[cfg_attr(
610//     feature = "css_feature_data",
611//     derive(ToCSSFeature),
612//     css_feature("css.properties.font-variant-alternates")
613// )]
614// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
615// pub enum FontVariantAlternatesStyleValue<'a> {}
616
617/// Represents the style value for `font-variant-caps` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-caps).
618///
619/// The font-variant-caps CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.
620///
621/// The grammar is defined as:
622///
623/// ```text,ignore
624/// normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps
625/// ```
626///
627/// https://drafts.csswg.org/css-fonts-5/#font-variant-caps
628#[syntax(" normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ")]
629#[derive(
630	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
631)]
632#[declaration_metadata(
633    initial = "normal",
634    inherits,
635    applies_to = Elements|Text,
636    animation_type = Discrete,
637    property_group = Fonts,
638    computed_value_type = AsSpecified,
639    canonical_order = "per grammar",
640)]
641#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
642#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-caps"))]
643#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
644pub enum FontVariantCapsStyleValue {}
645
646// /// Represents the style value for `font-variant-east-asian` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-east-asian).
647// ///
648// /// The font-variant-east-asian CSS property controls glyph substitution and sizing in East Asian text.
649// ///
650// /// The grammar is defined as:
651// ///
652// /// ```text,ignore
653// /// normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]
654// /// ```
655// ///
656// /// https://drafts.csswg.org/css-fonts-5/#font-variant-east-asian
657// #[syntax(
658//     " normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] "
659// )]
660// #[derive(
661//     Parse,
662//     Peek,
663//     ToSpan,
664//     ToCursors,
665//     DeclarationMetadata,
666//     SemanticEq,
667//     Debug,
668//     Clone,
669//     PartialEq,
670//     Eq,
671//     PartialOrd,
672//     Ord,
673//     Hash,
674// )]
675// #[declaration_metadata(
676//     initial = "normal",
677//     inherits,
678//     applies_to = Elements|Text,
679//     animation_type = Discrete,
680//     property_group = Fonts,
681//     computed_value_type = AsSpecified,
682//     canonical_order = "per grammar",
683// )]
684// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
685// #[cfg_attr(
686//     feature = "css_feature_data",
687//     derive(ToCSSFeature),
688//     css_feature("css.properties.font-variant-east-asian")
689// )]
690// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
691// pub enum FontVariantEastAsianStyleValue {}
692
693/// Represents the style value for `font-variant-emoji` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-emoji).
694///
695/// The font-variant-emoji CSS property sets the default presentation for emoji characters.
696///
697/// The grammar is defined as:
698///
699/// ```text,ignore
700/// normal | text | emoji | unicode
701/// ```
702///
703/// https://drafts.csswg.org/css-fonts-5/#font-variant-emoji
704#[syntax(" normal | text | emoji | unicode ")]
705#[derive(
706	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
707)]
708#[declaration_metadata(
709    initial = "normal",
710    inherits,
711    applies_to = Elements|Text,
712    animation_type = Discrete,
713    property_group = Fonts,
714    computed_value_type = Unknown,
715    canonical_order = "per grammar",
716)]
717#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
718#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-emoji"))]
719#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
720pub enum FontVariantEmojiStyleValue {}
721
722// /// Represents the style value for `font-variant-ligatures` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-ligatures).
723// ///
724// /// The font-variant-ligatures CSS property sets how characters can be visually combined for readability or stylistic reasons.
725// ///
726// /// The grammar is defined as:
727// ///
728// /// ```text,ignore
729// /// normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]
730// /// ```
731// ///
732// /// https://drafts.csswg.org/css-fonts-5/#font-variant-ligatures
733// #[syntax(
734//     " normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] "
735// )]
736// #[derive(
737//     Parse,
738//     Peek,
739//     ToSpan,
740//     ToCursors,
741//     DeclarationMetadata,
742//     SemanticEq,
743//     Debug,
744//     Clone,
745//     PartialEq,
746//     Eq,
747//     PartialOrd,
748//     Ord,
749//     Hash,
750// )]
751// #[declaration_metadata(
752//     initial = "normal",
753//     inherits,
754//     applies_to = Elements|Text,
755//     animation_type = Discrete,
756//     property_group = Fonts,
757//     computed_value_type = AsSpecified,
758//     canonical_order = "per grammar",
759// )]
760// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
761// #[cfg_attr(
762//     feature = "css_feature_data",
763//     derive(ToCSSFeature),
764//     css_feature("css.properties.font-variant-ligatures")
765// )]
766// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
767// pub enum FontVariantLigaturesStyleValue {}
768
769// /// Represents the style value for `font-variant-numeric` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-numeric).
770// ///
771// /// The font-variant-numeric CSS property sets how numeric characters are displayed. For example, you can align columns of numbers or use zeroes that have a slash.
772// ///
773// /// The grammar is defined as:
774// ///
775// /// ```text,ignore
776// /// normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]
777// /// ```
778// ///
779// /// https://drafts.csswg.org/css-fonts-5/#font-variant-numeric
780// #[syntax(
781//     " normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] "
782// )]
783// #[derive(
784//     Parse,
785//     Peek,
786//     ToSpan,
787//     ToCursors,
788//     DeclarationMetadata,
789//     SemanticEq,
790//     Debug,
791//     Clone,
792//     PartialEq,
793//     Eq,
794//     PartialOrd,
795//     Ord,
796//     Hash,
797// )]
798// #[declaration_metadata(
799//     initial = "normal",
800//     inherits,
801//     applies_to = Elements|Text,
802//     animation_type = Discrete,
803//     property_group = Fonts,
804//     computed_value_type = AsSpecified,
805//     canonical_order = "per grammar",
806// )]
807// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
808// #[cfg_attr(
809//     feature = "css_feature_data",
810//     derive(ToCSSFeature),
811//     css_feature("css.properties.font-variant-numeric")
812// )]
813// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
814// pub enum FontVariantNumericStyleValue {}
815
816/// Represents the style value for `font-variant-position` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-position).
817///
818/// The font-variant-position CSS property sets whether to use alternate glyphs for subscript and superscript text.
819///
820/// The grammar is defined as:
821///
822/// ```text,ignore
823/// normal | sub | super
824/// ```
825///
826/// https://drafts.csswg.org/css-fonts-5/#font-variant-position
827#[syntax(" normal | sub | super ")]
828#[derive(
829	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
830)]
831#[declaration_metadata(
832    initial = "normal",
833    inherits,
834    applies_to = Elements|Text,
835    animation_type = Discrete,
836    property_group = Fonts,
837    computed_value_type = AsSpecified,
838    canonical_order = "per grammar",
839)]
840#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
841#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-position"))]
842#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
843pub enum FontVariantPositionStyleValue {}
844
845// /// Represents the style value for `font-variation-settings` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variation-settings).
846// ///
847// /// The font-variation-settings CSS property sets an "axis of variability" on a variable font, such as weight, optical size, or a custom axis defined by the typeface designer. When possible, use other CSS font properties, such as font-weight: bold. Also known as variable fonts.
848// ///
849// /// The grammar is defined as:
850// ///
851// /// ```text,ignore
852// /// normal | [ <opentype-tag> <number> ]#
853// /// ```
854// ///
855// /// https://drafts.csswg.org/css-fonts-5/#font-variation-settings
856// #[syntax(" normal | [ <opentype-tag> <number> ]# ")]
857// #[derive(
858//     Parse,
859//     Peek,
860//     ToSpan,
861//     ToCursors,
862//     DeclarationMetadata,
863//     SemanticEq,
864//     Debug,
865//     Clone,
866//     PartialEq,
867//     Eq,
868//     PartialOrd,
869//     Ord,
870//     Hash,
871// )]
872// #[declaration_metadata(
873//     initial = "normal",
874//     inherits,
875//     applies_to = Elements|Text,
876//     animation_type = Unknown,
877//     property_group = Fonts,
878//     computed_value_type = Unknown,
879//     canonical_order = "per grammar",
880// )]
881// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
882// #[cfg_attr(
883//     feature = "css_feature_data",
884//     derive(ToCSSFeature),
885//     css_feature("css.properties.font-variation-settings")
886// )]
887// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
888// pub enum FontVariationSettingsStyleValue<'a> {}
889
890/// Represents the style value for `font-weight` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-weight).
891///
892/// The font-weight CSS property controls the thickness of a font. It is set explicitly with the keyword bold or a number, or relative to the inherited thickness with the keywords bolder or lighter.
893///
894/// The grammar is defined as:
895///
896/// ```text,ignore
897/// <font-weight-absolute> | bolder | lighter
898/// ```
899///
900/// https://drafts.csswg.org/css-fonts-5/#font-weight
901#[syntax(" <font-weight-absolute> | bolder | lighter ")]
902#[derive(
903	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
904)]
905#[declaration_metadata(
906    initial = "normal",
907    inherits,
908    applies_to = Elements|Text,
909    animation_type = ByComputedValue,
910    property_group = Fonts,
911    computed_value_type = Unknown,
912    canonical_order = "per grammar",
913)]
914#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
915#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-weight"))]
916#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
917pub enum FontWeightStyleValue {}
918
919/// Represents the style value for `font-width` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-width).
920///
921/// The font-width CSS property selects a font face from a font family based on width, either by a keyword such as condensed or a percentage.
922///
923/// The grammar is defined as:
924///
925/// ```text,ignore
926/// normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded
927/// ```
928///
929/// https://drafts.csswg.org/css-fonts-5/#font-width
930#[syntax(
931	" normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded "
932)]
933#[derive(
934	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
935)]
936#[declaration_metadata(
937    initial = "normal",
938    inherits,
939    applies_to = Elements|Text,
940    percentages = None,
941    animation_type = ByComputedValue,
942    property_group = Fonts,
943    computed_value_type = Unknown,
944    canonical_order = "per grammar",
945)]
946#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
947#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-width"))]
948#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
949pub enum FontWidthStyleValue {}