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;