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