css_ast/values/fonts/mod.rs
1// AUTO-GENERATED from w3c/csswg-drafts
2// Commit: https://github.com/w3c/csswg-drafts/commit/e8f0279ce0beff5d70e59fa4165a668e1527fff6
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-font-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-font-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/// [ <font-family-name> | <generic-font-family> ]#
73/// ```
74///
75/// https://drafts.csswg.org/css-fonts-5/#font-family
76#[syntax(" [ <font-family-name> | <generic-font-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(" none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ] ")]
306#[derive(
307 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
308)]
309#[declaration_metadata(
310 initial = "none",
311 inherits,
312 applies_to = Elements|Text,
313 animation_type = Discrete,
314 property_group = Fonts,
315 computed_value_type = Unknown,
316 canonical_order = "per grammar",
317)]
318#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
319#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-size-adjust"))]
320#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
321#[derive(csskit_derives::NodeWithMetadata)]
322pub enum FontSizeAdjustStyleValue {}
323
324/// Represents the style value for `font-style` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-style).
325///
326/// The font-style CSS property sets the text style, with normal, italic, and oblique options.
327///
328/// The grammar is defined as:
329///
330/// ```text,ignore
331/// normal | italic | left | right | oblique <angle [-90deg,90deg]>?
332/// ```
333///
334/// https://drafts.csswg.org/css-fonts-5/#font-style
335#[syntax(" normal | italic | left | right | oblique <angle [-90deg,90deg]>? ")]
336#[derive(
337 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
338)]
339#[declaration_metadata(
340 initial = "normal",
341 inherits,
342 applies_to = Elements|Text,
343 animation_type = ByComputedValue,
344 shorthand_group = Font,
345 property_group = Fonts,
346 computed_value_type = Unknown,
347 canonical_order = "per grammar",
348)]
349#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
350#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-style"))]
351#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
352#[derive(csskit_derives::NodeWithMetadata)]
353pub enum FontStyleStyleValue {}
354
355/// Represents the style value for `font-synthesis` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis).
356///
357/// 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.
358///
359/// The grammar is defined as:
360///
361/// ```text,ignore
362/// none | [ weight || style || small-caps || position]
363/// ```
364///
365/// https://drafts.csswg.org/css-fonts-5/#font-synthesis
366#[syntax(" none | [ weight || style || small-caps || position] ")]
367#[derive(
368 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
369)]
370#[declaration_metadata(
371 initial = "weight style small-caps position",
372 inherits,
373 applies_to = Elements|Text,
374 animation_type = Discrete,
375 longhands = FontSynthesisPosition|FontSynthesisSmallCaps|FontSynthesisStyle|FontSynthesisWeight,
376 property_group = Fonts,
377 computed_value_type = Unknown,
378 canonical_order = "per grammar",
379)]
380#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
381#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis"))]
382#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
383#[derive(csskit_derives::NodeWithMetadata)]
384pub struct FontSynthesisStyleValue;
385
386/// Represents the style value for `font-synthesis-position` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-position).
387///
388/// 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.
389///
390/// The grammar is defined as:
391///
392/// ```text,ignore
393/// auto | none
394/// ```
395///
396/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-position
397#[syntax(" auto | none ")]
398#[derive(
399 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
400)]
401#[declaration_metadata(
402 initial = "auto",
403 inherits,
404 applies_to = Elements|Text,
405 animation_type = Discrete,
406 shorthand_group = FontSynthesis,
407 property_group = Fonts,
408 computed_value_type = Unknown,
409 canonical_order = "per grammar",
410)]
411#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
412#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-position"))]
413#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
414#[derive(csskit_derives::NodeWithMetadata)]
415pub enum FontSynthesisPositionStyleValue {}
416
417/// 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).
418///
419/// 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.
420///
421/// The grammar is defined as:
422///
423/// ```text,ignore
424/// auto | none
425/// ```
426///
427/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-small-caps
428#[syntax(" auto | none ")]
429#[derive(
430 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
431)]
432#[declaration_metadata(
433 initial = "auto",
434 inherits,
435 applies_to = Elements|Text,
436 animation_type = Discrete,
437 shorthand_group = FontSynthesis,
438 property_group = Fonts,
439 computed_value_type = Unknown,
440 canonical_order = "per grammar",
441)]
442#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
443#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-small-caps"))]
444#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
445#[derive(csskit_derives::NodeWithMetadata)]
446pub enum FontSynthesisSmallCapsStyleValue {}
447
448/// Represents the style value for `font-synthesis-style` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-style).
449///
450/// 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.
451///
452/// The grammar is defined as:
453///
454/// ```text,ignore
455/// auto | none | oblique-only
456/// ```
457///
458/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-style
459#[syntax(" auto | none | oblique-only ")]
460#[derive(
461 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
462)]
463#[declaration_metadata(
464 initial = "auto",
465 inherits,
466 applies_to = Elements|Text,
467 animation_type = Discrete,
468 shorthand_group = FontSynthesis,
469 property_group = Fonts,
470 computed_value_type = Unknown,
471 canonical_order = "per grammar",
472)]
473#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
474#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-style"))]
475#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
476#[derive(csskit_derives::NodeWithMetadata)]
477pub enum FontSynthesisStyleStyleValue {}
478
479/// Represents the style value for `font-synthesis-weight` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-synthesis-weight).
480///
481/// The font-synthesis-weight CSS property sets whether or not the browser should synthesize bold typefaces when they're missing from the font.
482///
483/// The grammar is defined as:
484///
485/// ```text,ignore
486/// auto | none
487/// ```
488///
489/// https://drafts.csswg.org/css-fonts-5/#font-synthesis-weight
490#[syntax(" auto | none ")]
491#[derive(
492 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
493)]
494#[declaration_metadata(
495 initial = "auto",
496 inherits,
497 applies_to = Elements|Text,
498 animation_type = Discrete,
499 shorthand_group = FontSynthesis,
500 property_group = Fonts,
501 computed_value_type = Unknown,
502 canonical_order = "per grammar",
503)]
504#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
505#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-synthesis-weight"))]
506#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
507#[derive(csskit_derives::NodeWithMetadata)]
508pub enum FontSynthesisWeightStyleValue {}
509
510// /// Represents the style value for `font-variant` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant).
511// ///
512// /// 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.
513// ///
514// /// The grammar is defined as:
515// ///
516// /// ```text,ignore
517// /// 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(<font-feature-value-name>) || historical-forms || styleset(<font-feature-value-name>#) || character-variant(<font-feature-value-name>#) || swash(<font-feature-value-name>) || ornaments(<font-feature-value-name>) || annotation(<font-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 ] ]
518// /// ```
519// ///
520// /// https://drafts.csswg.org/css-fonts-5/#font-variant
521// #[syntax(
522// " 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(<font-feature-value-name>) || historical-forms || styleset(<font-feature-value-name>#) || character-variant(<font-feature-value-name>#) || swash(<font-feature-value-name>) || ornaments(<font-feature-value-name>) || annotation(<font-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 ] ] "
523// )]
524// #[derive(
525// Parse,
526// Peek,
527// ToSpan,
528// ToCursors,
529// DeclarationMetadata,
530// SemanticEq,
531// Debug,
532// Clone,
533// PartialEq,
534// Eq,
535// PartialOrd,
536// Ord,
537// Hash,
538// )]
539// #[declaration_metadata(
540// initial = "normal",
541// inherits,
542// applies_to = Elements|Text,
543// animation_type = Discrete,
544// shorthand_group = Font,
545// longhands = FontVariantAlternates|FontVariantCaps|FontVariantEastAsian|FontVariantEmoji|FontVariantLigatures|FontVariantNumeric|FontVariantPosition,
546// property_group = Fonts,
547// computed_value_type = AsSpecified,
548// canonical_order = "per grammar",
549// )]
550// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
551// #[cfg_attr(
552// feature = "css_feature_data",
553// derive(ToCSSFeature),
554// css_feature("css.properties.font-variant")
555// )]
556// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
557// #[derive(csskit_derives::NodeWithMetadata)]
558// pub enum FontVariantStyleValue<'a> {}
559
560// /// Represents the style value for `font-variant-alternates` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-alternates).
561// ///
562// /// The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.
563// ///
564// /// The grammar is defined as:
565// ///
566// /// ```text,ignore
567// /**normal | [ stylistic(<font-feature-value-name>) ||
568// historical-forms ||
569// styleset(<font-feature-value-name>#) ||
570// character-variant(<font-feature-value-name>#) ||
571// swash(<font-feature-value-name>) ||
572// ornaments(<font-feature-value-name>) ||
573// annotation(<font-feature-value-name>) ]*/
574// /// ```
575// ///
576// /// https://drafts.csswg.org/css-fonts-5/#font-variant-alternates
577// #[syntax(
578// " normal | [ stylistic(<font-feature-value-name>) || historical-forms || styleset(<font-feature-value-name>#) || character-variant(<font-feature-value-name>#) || swash(<font-feature-value-name>) || ornaments(<font-feature-value-name>) || annotation(<font-feature-value-name>) ] "
579// )]
580// #[derive(
581// Parse,
582// Peek,
583// ToSpan,
584// ToCursors,
585// DeclarationMetadata,
586// SemanticEq,
587// Debug,
588// Clone,
589// PartialEq,
590// Eq,
591// PartialOrd,
592// Ord,
593// Hash,
594// )]
595// #[declaration_metadata(
596// initial = "normal",
597// inherits,
598// applies_to = Elements|Text,
599// animation_type = Discrete,
600// shorthand_group = Font,
601// property_group = Fonts,
602// computed_value_type = AsSpecified,
603// canonical_order = "per grammar",
604// )]
605// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
606// #[cfg_attr(
607// feature = "css_feature_data",
608// derive(ToCSSFeature),
609// css_feature("css.properties.font-variant-alternates")
610// )]
611// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
612// #[derive(csskit_derives::NodeWithMetadata)]
613// pub struct FontVariantAlternatesStyleValue<'a>;
614
615/// Represents the style value for `font-variant-caps` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-caps).
616///
617/// The font-variant-caps CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.
618///
619/// The grammar is defined as:
620///
621/// ```text,ignore
622/// normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps
623/// ```
624///
625/// https://drafts.csswg.org/css-fonts-5/#font-variant-caps
626#[syntax(" normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ")]
627#[derive(
628 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
629)]
630#[declaration_metadata(
631 initial = "normal",
632 inherits,
633 applies_to = Elements|Text,
634 animation_type = Discrete,
635 shorthand_group = Font,
636 property_group = Fonts,
637 computed_value_type = AsSpecified,
638 canonical_order = "per grammar",
639)]
640#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
641#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-caps"))]
642#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
643#[derive(csskit_derives::NodeWithMetadata)]
644pub enum FontVariantCapsStyleValue {}
645
646// /// Represents the style value for `font-variant-east-asian` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-east-asian).
647// ///
648// /// The font-variant-east-asian CSS property controls glyph substitution and sizing in East Asian text.
649// ///
650// /// The grammar is defined as:
651// ///
652// /// ```text,ignore
653// /// normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]
654// /// ```
655// ///
656// /// https://drafts.csswg.org/css-fonts-5/#font-variant-east-asian
657// #[syntax(
658// " normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] "
659// )]
660// #[derive(
661// Parse,
662// Peek,
663// ToSpan,
664// ToCursors,
665// DeclarationMetadata,
666// SemanticEq,
667// Debug,
668// Clone,
669// PartialEq,
670// Eq,
671// PartialOrd,
672// Ord,
673// Hash,
674// )]
675// #[declaration_metadata(
676// initial = "normal",
677// inherits,
678// applies_to = Elements|Text,
679// animation_type = Discrete,
680// shorthand_group = Font,
681// property_group = Fonts,
682// computed_value_type = AsSpecified,
683// canonical_order = "per grammar",
684// )]
685// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
686// #[cfg_attr(
687// feature = "css_feature_data",
688// derive(ToCSSFeature),
689// css_feature("css.properties.font-variant-east-asian")
690// )]
691// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
692// #[derive(csskit_derives::NodeWithMetadata)]
693// pub struct FontVariantEastAsianStyleValue;
694
695/// Represents the style value for `font-variant-emoji` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-emoji).
696///
697/// The font-variant-emoji CSS property sets the default presentation for emoji characters.
698///
699/// The grammar is defined as:
700///
701/// ```text,ignore
702/// normal | text | emoji | unicode
703/// ```
704///
705/// https://drafts.csswg.org/css-fonts-5/#font-variant-emoji
706#[syntax(" normal | text | emoji | unicode ")]
707#[derive(
708 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
709)]
710#[declaration_metadata(
711 initial = "normal",
712 inherits,
713 applies_to = Elements|Text,
714 animation_type = Discrete,
715 shorthand_group = Font,
716 property_group = Fonts,
717 computed_value_type = Unknown,
718 canonical_order = "per grammar",
719)]
720#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
721#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-emoji"))]
722#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
723#[derive(csskit_derives::NodeWithMetadata)]
724pub enum FontVariantEmojiStyleValue {}
725
726// /// Represents the style value for `font-variant-ligatures` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-ligatures).
727// ///
728// /// The font-variant-ligatures CSS property sets how characters can be visually combined for readability or stylistic reasons.
729// ///
730// /// The grammar is defined as:
731// ///
732// /// ```text,ignore
733// /// normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]
734// /// ```
735// ///
736// /// https://drafts.csswg.org/css-fonts-5/#font-variant-ligatures
737// #[syntax(
738// " normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] "
739// )]
740// #[derive(
741// Parse,
742// Peek,
743// ToSpan,
744// ToCursors,
745// DeclarationMetadata,
746// SemanticEq,
747// Debug,
748// Clone,
749// PartialEq,
750// Eq,
751// PartialOrd,
752// Ord,
753// Hash,
754// )]
755// #[declaration_metadata(
756// initial = "normal",
757// inherits,
758// applies_to = Elements|Text,
759// animation_type = Discrete,
760// shorthand_group = Font,
761// property_group = Fonts,
762// computed_value_type = AsSpecified,
763// canonical_order = "per grammar",
764// )]
765// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
766// #[cfg_attr(
767// feature = "css_feature_data",
768// derive(ToCSSFeature),
769// css_feature("css.properties.font-variant-ligatures")
770// )]
771// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
772// #[derive(csskit_derives::NodeWithMetadata)]
773// pub enum FontVariantLigaturesStyleValue {}
774
775// /// Represents the style value for `font-variant-numeric` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-numeric).
776// ///
777// /// 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.
778// ///
779// /// The grammar is defined as:
780// ///
781// /// ```text,ignore
782// /// normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]
783// /// ```
784// ///
785// /// https://drafts.csswg.org/css-fonts-5/#font-variant-numeric
786// #[syntax(
787// " normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] "
788// )]
789// #[derive(
790// Parse,
791// Peek,
792// ToSpan,
793// ToCursors,
794// DeclarationMetadata,
795// SemanticEq,
796// Debug,
797// Clone,
798// PartialEq,
799// Eq,
800// PartialOrd,
801// Ord,
802// Hash,
803// )]
804// #[declaration_metadata(
805// initial = "normal",
806// inherits,
807// applies_to = Elements|Text,
808// animation_type = Discrete,
809// shorthand_group = Font,
810// property_group = Fonts,
811// computed_value_type = AsSpecified,
812// canonical_order = "per grammar",
813// )]
814// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
815// #[cfg_attr(
816// feature = "css_feature_data",
817// derive(ToCSSFeature),
818// css_feature("css.properties.font-variant-numeric")
819// )]
820// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
821// #[derive(csskit_derives::NodeWithMetadata)]
822// pub struct FontVariantNumericStyleValue;
823
824/// Represents the style value for `font-variant-position` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variant-position).
825///
826/// The font-variant-position CSS property sets whether to use alternate glyphs for subscript and superscript text.
827///
828/// The grammar is defined as:
829///
830/// ```text,ignore
831/// normal | sub | super
832/// ```
833///
834/// https://drafts.csswg.org/css-fonts-5/#font-variant-position
835#[syntax(" normal | sub | super ")]
836#[derive(
837 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
838)]
839#[declaration_metadata(
840 initial = "normal",
841 inherits,
842 applies_to = Elements|Text,
843 animation_type = Discrete,
844 shorthand_group = Font,
845 property_group = Fonts,
846 computed_value_type = AsSpecified,
847 canonical_order = "per grammar",
848)]
849#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
850#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variant-position"))]
851#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
852#[derive(csskit_derives::NodeWithMetadata)]
853pub enum FontVariantPositionStyleValue {}
854
855/// Represents the style value for `font-variation-settings` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-variation-settings).
856///
857/// 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.
858///
859/// The grammar is defined as:
860///
861/// ```text,ignore
862/// normal | [ <opentype-tag> <number> ]#
863/// ```
864///
865/// https://drafts.csswg.org/css-fonts-5/#font-variation-settings
866#[syntax(" normal | [ <opentype-tag> <number> ]# ")]
867#[derive(
868 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
869)]
870#[declaration_metadata(
871 initial = "normal",
872 inherits,
873 applies_to = Elements|Text,
874 animation_type = Unknown,
875 property_group = Fonts,
876 computed_value_type = Unknown,
877 canonical_order = "per grammar",
878)]
879#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
880#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-variation-settings"))]
881#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
882#[derive(csskit_derives::NodeWithMetadata)]
883pub struct FontVariationSettingsStyleValue<'a>;
884
885/// Represents the style value for `font-weight` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-weight).
886///
887/// 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.
888///
889/// The grammar is defined as:
890///
891/// ```text,ignore
892/// <font-weight-absolute> | bolder | lighter
893/// ```
894///
895/// https://drafts.csswg.org/css-fonts-5/#font-weight
896#[syntax(" <font-weight-absolute> | bolder | lighter ")]
897#[derive(
898 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
899)]
900#[declaration_metadata(
901 initial = "normal",
902 inherits,
903 applies_to = Elements|Text,
904 animation_type = ByComputedValue,
905 shorthand_group = Font,
906 property_group = Fonts,
907 computed_value_type = Unknown,
908 canonical_order = "per grammar",
909)]
910#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
911#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-weight"))]
912#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
913#[derive(csskit_derives::NodeWithMetadata)]
914pub enum FontWeightStyleValue {}
915
916/// Represents the style value for `font-width` as defined in [css-fonts-5](https://drafts.csswg.org/css-fonts-5/#font-width).
917///
918/// 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.
919///
920/// The grammar is defined as:
921///
922/// ```text,ignore
923/// normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded
924/// ```
925///
926/// https://drafts.csswg.org/css-fonts-5/#font-width
927#[syntax(
928 " normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded "
929)]
930#[derive(
931 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
932)]
933#[declaration_metadata(
934 initial = "normal",
935 inherits,
936 applies_to = Elements|Text,
937 animation_type = ByComputedValue,
938 percentages = None,
939 property_group = Fonts,
940 computed_value_type = Unknown,
941 canonical_order = "per grammar",
942)]
943#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
944#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.font-width"))]
945#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
946#[derive(csskit_derives::NodeWithMetadata)]
947pub enum FontWidthStyleValue {}