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 {}