css_ast/values/fonts/
mod.rs

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