css_ast/values/text_decor/
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-text-decor-4/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10// /// Represents the style value for `text-decoration` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration).
11// ///
12// /// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
13// ///
14// /// The grammar is defined as:
15// ///
16// /// ```text,ignore
17// /// <'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'>
18// /// ```
19// ///
20// /// https://drafts.csswg.org/css-text-decor-4/#text-decoration
21// #[syntax(
22//     " <'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'> "
23// )]
24// #[derive(
25//     Parse,
26//     Peek,
27//     ToSpan,
28//     ToCursors,
29//     DeclarationMetadata,
30//     SemanticEq,
31//     Debug,
32//     Clone,
33//     PartialEq,
34//     Eq,
35//     PartialOrd,
36//     Ord,
37//     Hash,
38// )]
39// #[declaration_metadata(
40//     initial = "see individual properties",
41//     inherits = Unknown,
42//     applies_to = Unknown,
43//     animation_type = Unknown,
44//     percentages = Unknown,
45//     longhands = TextDecorationColor|TextDecorationLine|TextDecorationStyle|TextDecorationThickness,
46//     property_group = TextDecor,
47//     computed_value_type = Unknown,
48//     canonical_order = "per grammar",
49// )]
50// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
51// #[cfg_attr(
52//     feature = "css_feature_data",
53//     derive(ToCSSFeature),
54//     css_feature("css.properties.text-decoration")
55// )]
56// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
57// #[derive(csskit_derives::NodeWithMetadata)]
58// pub struct TextDecorationStyleValue;
59
60/// Represents the style value for `text-decoration-color` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-color).
61///
62/// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
63///
64/// The grammar is defined as:
65///
66/// ```text,ignore
67/// <color>
68/// ```
69///
70/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-color
71#[syntax(" <color> ")]
72#[derive(
73	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
74)]
75#[declaration_metadata(
76    initial = "currentcolor",
77    applies_to = Elements,
78    animation_type = ByComputedValue,
79    shorthand_group = TextDecoration,
80    property_group = TextDecor,
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.text-decoration-color"))]
86#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
87#[derive(csskit_derives::NodeWithMetadata)]
88pub struct TextDecorationColorStyleValue;
89
90/// Represents the style value for `text-decoration-inset` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-inset).
91///
92/// The grammar is defined as:
93///
94/// ```text,ignore
95/// <length>{1,2} | auto
96/// ```
97///
98/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-inset
99#[syntax(" <length>{1,2} | auto ")]
100#[derive(
101	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
102)]
103#[declaration_metadata(
104    initial = "0",
105    applies_to = Elements,
106    animation_type = ByComputedValue,
107    property_group = TextDecor,
108    computed_value_type = SpecifiedKeywordPlusAbsoluteLength,
109    canonical_order = "per grammar",
110)]
111#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
112#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-inset"))]
113#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
114#[derive(csskit_derives::NodeWithMetadata)]
115pub struct TextDecorationInsetStyleValue;
116
117// /// Represents the style value for `text-decoration-line` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-line).
118// ///
119// /// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
120// ///
121// /// The grammar is defined as:
122// ///
123// /// ```text,ignore
124// /// none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error
125// /// ```
126// ///
127// /// https://drafts.csswg.org/css-text-decor-4/#text-decoration-line
128// #[syntax(
129//     " none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error "
130// )]
131// #[derive(
132//     Parse,
133//     Peek,
134//     ToSpan,
135//     ToCursors,
136//     DeclarationMetadata,
137//     SemanticEq,
138//     Debug,
139//     Clone,
140//     PartialEq,
141//     Eq,
142//     PartialOrd,
143//     Ord,
144//     Hash,
145// )]
146// #[declaration_metadata(
147//     initial = "none",
148//     applies_to = Elements,
149//     animation_type = Discrete,
150//     shorthand_group = TextDecoration,
151//     property_group = TextDecor,
152//     computed_value_type = Unknown,
153//     canonical_order = "per grammar",
154// )]
155// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
156// #[cfg_attr(
157//     feature = "css_feature_data",
158//     derive(ToCSSFeature),
159//     css_feature("css.properties.text-decoration-line")
160// )]
161// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
162// #[derive(csskit_derives::NodeWithMetadata)]
163// pub enum TextDecorationLineStyleValue {}
164
165/// Represents the style value for `text-decoration-skip` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip).
166///
167/// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
168///
169/// The grammar is defined as:
170///
171/// ```text,ignore
172/// none | auto
173/// ```
174///
175/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip
176#[syntax(" none | auto ")]
177#[derive(
178	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
179)]
180#[declaration_metadata(
181    initial = "See individual properties",
182    inherits,
183    applies_to = Elements,
184    animation_type = Discrete,
185    property_group = TextDecor,
186    computed_value_type = Unknown,
187    canonical_order = "per grammar",
188)]
189#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
190#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip"))]
191#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
192#[derive(csskit_derives::NodeWithMetadata)]
193pub enum TextDecorationSkipStyleValue {}
194
195/// Represents the style value for `text-decoration-skip-box` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-box).
196///
197/// The grammar is defined as:
198///
199/// ```text,ignore
200/// none | all
201/// ```
202///
203/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-box
204#[syntax(" none | all ")]
205#[derive(
206	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
207)]
208#[declaration_metadata(
209    initial = "none",
210    inherits,
211    applies_to = Elements,
212    animation_type = Discrete,
213    property_group = TextDecor,
214    computed_value_type = Unknown,
215    canonical_order = "per grammar",
216)]
217#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
218#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip-box"))]
219#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
220#[derive(csskit_derives::NodeWithMetadata)]
221pub enum TextDecorationSkipBoxStyleValue {}
222
223/// Represents the style value for `text-decoration-skip-ink` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink).
224///
225/// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
226///
227/// The grammar is defined as:
228///
229/// ```text,ignore
230/// auto | none | all
231/// ```
232///
233/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink
234#[syntax(" auto | none | all ")]
235#[derive(
236	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
237)]
238#[declaration_metadata(
239    initial = "auto",
240    inherits,
241    applies_to = Elements,
242    animation_type = Discrete,
243    property_group = TextDecor,
244    computed_value_type = Unknown,
245    canonical_order = "per grammar",
246)]
247#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
248#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip-ink"))]
249#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
250#[derive(csskit_derives::NodeWithMetadata)]
251pub enum TextDecorationSkipInkStyleValue {}
252
253// /// Represents the style value for `text-decoration-skip-self` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-self).
254// ///
255// /// The grammar is defined as:
256// ///
257// /// ```text,ignore
258// /// auto | skip-all | [ skip-underline || skip-overline || skip-line-through ] | no-skip
259// /// ```
260// ///
261// /// https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-self
262// #[syntax(
263//     " auto | skip-all | [ skip-underline || skip-overline || skip-line-through ] | no-skip "
264// )]
265// #[derive(
266//     Parse,
267//     Peek,
268//     ToSpan,
269//     ToCursors,
270//     DeclarationMetadata,
271//     SemanticEq,
272//     Debug,
273//     Clone,
274//     PartialEq,
275//     Eq,
276//     PartialOrd,
277//     Ord,
278//     Hash,
279// )]
280// #[declaration_metadata(
281//     initial = "auto",
282//     applies_to = Elements,
283//     animation_type = Discrete,
284//     property_group = TextDecor,
285//     computed_value_type = Unknown,
286//     canonical_order = "per grammar",
287// )]
288// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
289// #[cfg_attr(
290//     feature = "css_feature_data",
291//     derive(ToCSSFeature),
292//     css_feature("css.properties.text-decoration-skip-self")
293// )]
294// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
295// #[derive(csskit_derives::NodeWithMetadata)]
296// pub enum TextDecorationSkipSelfStyleValue {}
297
298// /// Represents the style value for `text-decoration-skip-spaces` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-spaces).
299// ///
300// /// The grammar is defined as:
301// ///
302// /// ```text,ignore
303// /// none | all | [ start || end ]
304// /// ```
305// ///
306// /// https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-spaces
307// #[syntax(" none | all | [ start || end ] ")]
308// #[derive(
309//     Parse,
310//     Peek,
311//     ToSpan,
312//     ToCursors,
313//     DeclarationMetadata,
314//     SemanticEq,
315//     Debug,
316//     Clone,
317//     PartialEq,
318//     Eq,
319//     PartialOrd,
320//     Ord,
321//     Hash,
322// )]
323// #[declaration_metadata(
324//     initial = "start end",
325//     inherits,
326//     applies_to = Elements,
327//     animation_type = Discrete,
328//     property_group = TextDecor,
329//     computed_value_type = Unknown,
330//     canonical_order = "per grammar",
331// )]
332// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
333// #[cfg_attr(
334//     feature = "css_feature_data",
335//     derive(ToCSSFeature),
336//     css_feature("css.properties.text-decoration-skip-spaces")
337// )]
338// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
339// #[derive(csskit_derives::NodeWithMetadata)]
340// pub enum TextDecorationSkipSpacesStyleValue {}
341
342/// Represents the style value for `text-decoration-style` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-style).
343///
344/// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
345///
346/// The grammar is defined as:
347///
348/// ```text,ignore
349/// solid | double | dotted | dashed | wavy
350/// ```
351///
352/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-style
353#[syntax(" solid | double | dotted | dashed | wavy ")]
354#[derive(
355	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
356)]
357#[declaration_metadata(
358    initial = "solid",
359    applies_to = Elements,
360    animation_type = Discrete,
361    shorthand_group = TextDecoration,
362    property_group = TextDecor,
363    computed_value_type = Unknown,
364    canonical_order = "per grammar",
365)]
366#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
367#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-style"))]
368#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
369#[derive(csskit_derives::NodeWithMetadata)]
370pub enum TextDecorationStyleStyleValue {}
371
372/// Represents the style value for `text-decoration-thickness` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness).
373///
374/// The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
375///
376/// The grammar is defined as:
377///
378/// ```text,ignore
379/// auto | from-font | <length-percentage>
380/// ```
381///
382/// https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness
383#[syntax(" auto | from-font | <length-percentage> ")]
384#[derive(
385	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
386)]
387#[declaration_metadata(
388    initial = "auto",
389    applies_to = Elements,
390    animation_type = ByComputedValue,
391    shorthand_group = TextDecoration,
392    property_group = TextDecor,
393    computed_value_type = AsSpecified,
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.text-decoration-thickness"))]
398#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
399#[derive(csskit_derives::NodeWithMetadata)]
400pub enum TextDecorationThicknessStyleValue {}
401
402// /// Represents the style value for `text-emphasis` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-emphasis).
403// ///
404// /// The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.
405// ///
406// /// The grammar is defined as:
407// ///
408// /// ```text,ignore
409// /// <'text-emphasis-style'> || <'text-emphasis-color'>
410// /// ```
411// ///
412// /// https://drafts.csswg.org/css-text-decor-4/#text-emphasis
413// #[syntax(" <'text-emphasis-style'> || <'text-emphasis-color'> ")]
414// #[derive(
415//     Parse,
416//     Peek,
417//     ToSpan,
418//     ToCursors,
419//     DeclarationMetadata,
420//     SemanticEq,
421//     Debug,
422//     Clone,
423//     PartialEq,
424//     Eq,
425//     PartialOrd,
426//     Ord,
427//     Hash,
428// )]
429// #[declaration_metadata(
430//     initial = "see individual properties",
431//     inherits = Unknown,
432//     applies_to = Unknown,
433//     animation_type = Unknown,
434//     percentages = Unknown,
435//     longhands = TextEmphasisColor|TextEmphasisStyle,
436//     property_group = TextDecor,
437//     computed_value_type = Unknown,
438//     canonical_order = "per grammar",
439// )]
440// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
441// #[cfg_attr(
442//     feature = "css_feature_data",
443//     derive(ToCSSFeature),
444//     css_feature("css.properties.text-emphasis")
445// )]
446// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
447// #[derive(csskit_derives::NodeWithMetadata)]
448// pub struct TextEmphasisStyleValue;
449
450/// Represents the style value for `text-emphasis-color` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-emphasis-color).
451///
452/// The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.
453///
454/// The grammar is defined as:
455///
456/// ```text,ignore
457/// <color>
458/// ```
459///
460/// https://drafts.csswg.org/css-text-decor-4/#text-emphasis-color
461#[syntax(" <color> ")]
462#[derive(
463	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
464)]
465#[declaration_metadata(
466    initial = "currentcolor",
467    inherits,
468    applies_to = Text,
469    animation_type = ByComputedValue,
470    shorthand_group = TextEmphasis,
471    property_group = TextDecor,
472    computed_value_type = Unknown,
473    canonical_order = "per grammar",
474)]
475#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
476#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-color"))]
477#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
478#[derive(csskit_derives::NodeWithMetadata)]
479pub struct TextEmphasisColorStyleValue;
480
481// /// Represents the style value for `text-emphasis-position` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-emphasis-position).
482// ///
483// /// The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.
484// ///
485// /// The grammar is defined as:
486// ///
487// /// ```text,ignore
488// /// [ over | under ] && [ right | left ]?
489// /// ```
490// ///
491// /// https://drafts.csswg.org/css-text-decor-4/#text-emphasis-position
492// #[syntax(" [ over | under ] && [ right | left ]? ")]
493// #[derive(
494//     Parse,
495//     Peek,
496//     ToSpan,
497//     ToCursors,
498//     DeclarationMetadata,
499//     SemanticEq,
500//     Debug,
501//     Clone,
502//     PartialEq,
503//     Eq,
504//     PartialOrd,
505//     Ord,
506//     Hash,
507// )]
508// #[declaration_metadata(
509//     initial = "over right",
510//     inherits,
511//     applies_to = Text,
512//     animation_type = Discrete,
513//     property_group = TextDecor,
514//     computed_value_type = Unknown,
515//     canonical_order = "per grammar",
516// )]
517// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
518// #[cfg_attr(
519//     feature = "css_feature_data",
520//     derive(ToCSSFeature),
521//     css_feature("css.properties.text-emphasis-position")
522// )]
523// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
524// #[derive(csskit_derives::NodeWithMetadata)]
525// pub struct TextEmphasisPositionStyleValue;
526
527/// Represents the style value for `text-emphasis-skip` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-emphasis-skip).
528///
529/// The grammar is defined as:
530///
531/// ```text,ignore
532/// spaces || punctuation || symbols || narrow
533/// ```
534///
535/// https://drafts.csswg.org/css-text-decor-4/#text-emphasis-skip
536#[syntax(" spaces || punctuation || symbols || narrow ")]
537#[derive(
538	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
539)]
540#[declaration_metadata(
541    initial = "spaces punctuation",
542    inherits,
543    applies_to = Text,
544    animation_type = Discrete,
545    property_group = TextDecor,
546    computed_value_type = Unknown,
547    canonical_order = "per grammar",
548)]
549#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
550#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-skip"))]
551#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
552#[derive(csskit_derives::NodeWithMetadata)]
553pub struct TextEmphasisSkipStyleValue;
554
555// /// Represents the style value for `text-emphasis-style` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-emphasis-style).
556// ///
557// /// The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.
558// ///
559// /// The grammar is defined as:
560// ///
561// /// ```text,ignore
562// /// none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>
563// /// ```
564// ///
565// /// https://drafts.csswg.org/css-text-decor-4/#text-emphasis-style
566// #[syntax(
567//     " none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string> "
568// )]
569// #[derive(
570//     Parse,
571//     Peek,
572//     ToSpan,
573//     ToCursors,
574//     DeclarationMetadata,
575//     SemanticEq,
576//     Debug,
577//     Clone,
578//     PartialEq,
579//     Eq,
580//     PartialOrd,
581//     Ord,
582//     Hash,
583// )]
584// #[declaration_metadata(
585//     initial = "none",
586//     inherits,
587//     applies_to = Text,
588//     animation_type = Discrete,
589//     shorthand_group = TextEmphasis,
590//     property_group = TextDecor,
591//     computed_value_type = Unknown,
592//     canonical_order = "per grammar",
593// )]
594// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
595// #[cfg_attr(
596//     feature = "css_feature_data",
597//     derive(ToCSSFeature),
598//     css_feature("css.properties.text-emphasis-style")
599// )]
600// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
601// #[derive(csskit_derives::NodeWithMetadata)]
602// pub enum TextEmphasisStyleStyleValue {}
603
604/// Represents the style value for `text-shadow` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-shadow).
605///
606/// The text-shadow CSS property sets the position and styles of shadow on text.
607///
608/// The grammar is defined as:
609///
610/// ```text,ignore
611/// none | <shadow>#
612/// ```
613///
614/// https://drafts.csswg.org/css-text-decor-4/#text-shadow
615#[syntax(" none | <shadow># ")]
616#[derive(
617	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
618)]
619#[declaration_metadata(
620    initial = "none",
621    inherits,
622    applies_to = Text,
623    animation_type = ShadowList,
624    property_group = TextDecor,
625    computed_value_type = AbsoluteLengthOrNone,
626    canonical_order = "per grammar",
627)]
628#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
629#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-shadow"))]
630#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
631#[derive(csskit_derives::NodeWithMetadata)]
632pub struct TextShadowStyleValue<'a>;
633
634/// Represents the style value for `text-underline-offset` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-underline-offset).
635///
636/// The text-underline-offset CSS property shifts underlines on text from the initial position by a given distance. The initial position is affected by the text-underline-position property.
637///
638/// The grammar is defined as:
639///
640/// ```text,ignore
641/// auto | <length-percentage>
642/// ```
643///
644/// https://drafts.csswg.org/css-text-decor-4/#text-underline-offset
645#[syntax(" auto | <length-percentage> ")]
646#[derive(
647	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
648)]
649#[declaration_metadata(
650    initial = "auto",
651    inherits,
652    applies_to = Elements,
653    animation_type = ByComputedValue,
654    property_group = TextDecor,
655    computed_value_type = AsSpecified,
656    canonical_order = "per grammar",
657)]
658#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
659#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-underline-offset"))]
660#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
661#[derive(csskit_derives::NodeWithMetadata)]
662pub struct TextUnderlineOffsetStyleValue;
663
664// /// Represents the style value for `text-underline-position` as defined in [css-text-decor-4](https://drafts.csswg.org/css-text-decor-4/#text-underline-position).
665// ///
666// /// The text-underline-position CSS property sets the position of underlines on text. For example, text-underline-position: under places the underline below the text, avoiding crossing descenders. The underline may be further adjusted by the text-underline-offset property.
667// ///
668// /// The grammar is defined as:
669// ///
670// /// ```text,ignore
671// /// auto | [ from-font | under ] || [ left | right ]
672// /// ```
673// ///
674// /// https://drafts.csswg.org/css-text-decor-4/#text-underline-position
675// #[syntax(" auto | [ from-font | under ] || [ left | right ] ")]
676// #[derive(
677//     Parse,
678//     Peek,
679//     ToSpan,
680//     ToCursors,
681//     DeclarationMetadata,
682//     SemanticEq,
683//     Debug,
684//     Clone,
685//     PartialEq,
686//     Eq,
687//     PartialOrd,
688//     Ord,
689//     Hash,
690// )]
691// #[declaration_metadata(
692//     initial = "auto",
693//     inherits,
694//     applies_to = Elements,
695//     animation_type = Discrete,
696//     property_group = TextDecor,
697//     computed_value_type = Unknown,
698//     canonical_order = "per grammar",
699// )]
700// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
701// #[cfg_attr(
702//     feature = "css_feature_data",
703//     derive(ToCSSFeature),
704//     css_feature("css.properties.text-underline-position")
705// )]
706// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
707// #[derive(csskit_derives::NodeWithMetadata)]
708// pub struct TextUnderlinePositionStyleValue;