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