1#![allow(warnings)]
5mod impls;
8use super::prelude::*;
9use impls::*;
10#[syntax(
22 " <'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'> "
23)]
24#[derive(
25 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
26)]
27#[declaration_metadata(
28 initial = "see individual properties",
29 inherits = Unknown,
30 applies_to = Unknown,
31 animation_type = Unknown,
32 percentages = Unknown,
33 longhands = TextDecorationLine|TextDecorationThickness|TextDecorationStyle|TextDecorationColor,
34 property_group = TextDecor,
35 computed_value_type = Unknown,
36 canonical_order = "per grammar",
37)]
38#[declaration_writes(
39 TextDecorationLine?,
40 TextDecorationThickness?,
41 TextDecorationStyle?,
42 TextDecorationColor?
43)]
44#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
45#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration"))]
46#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
47#[derive(csskit_derives::NodeWithMetadata)]
48pub struct TextDecorationStyleValue<'a>;
49
50#[syntax(" <color> ")]
62#[derive(
63 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
64)]
65#[declaration_metadata(
66 initial = "currentcolor",
67 applies_to = Elements,
68 animation_type = ByComputedValue,
69 shorthands = TextDecoration,
70 property_group = TextDecor,
71 computed_value_type = Unknown,
72 canonical_order = "per grammar",
73)]
74#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
75#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-color"))]
76#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
77#[derive(csskit_derives::NodeWithMetadata)]
78pub struct TextDecorationColorStyleValue<'a>;
79
80#[syntax(" <length-percentage>{1,2} | auto ")]
90#[derive(
91 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
92)]
93#[declaration_metadata(
94 initial = "0",
95 applies_to = Elements,
96 animation_type = ByComputedValue,
97 percentages = Unknown,
98 property_group = TextDecor,
99 computed_value_type = SpecifiedKeywordPlusAbsoluteLength,
100 canonical_order = "per grammar",
101)]
102#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
103#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-inset"))]
104#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
105#[derive(csskit_derives::NodeWithMetadata)]
106pub struct TextDecorationInsetStyleValue<'a>;
107
108#[syntax(" none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error ")]
120#[derive(
121 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
122)]
123#[declaration_metadata(
124 initial = "none",
125 applies_to = Elements,
126 animation_type = Discrete,
127 shorthands = TextDecoration,
128 property_group = TextDecor,
129 computed_value_type = Unknown,
130 canonical_order = "per grammar",
131)]
132#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
133#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-line"))]
134#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
135#[derive(csskit_derives::NodeWithMetadata)]
136pub enum TextDecorationLineStyleValue<'a> {}
137
138#[syntax(" none | auto ")]
148#[derive(
149 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
150)]
151#[declaration_metadata(
152 initial = "See individual properties",
153 inherits,
154 applies_to = Elements,
155 animation_type = Discrete,
156 property_group = TextDecor,
157 computed_value_type = Unknown,
158 canonical_order = "per grammar",
159)]
160#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
161#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip"))]
162#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
163#[derive(csskit_derives::NodeWithMetadata)]
164pub enum TextDecorationSkipStyleValue<'a> {}
165
166#[syntax(" none | all ")]
176#[derive(
177 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
178)]
179#[declaration_metadata(
180 initial = "none",
181 inherits,
182 applies_to = Elements,
183 animation_type = Discrete,
184 property_group = TextDecor,
185 computed_value_type = Unknown,
186 canonical_order = "per grammar",
187)]
188#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
189#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip-box"))]
190#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
191#[derive(csskit_derives::NodeWithMetadata)]
192pub enum TextDecorationSkipBoxStyleValue<'a> {}
193
194#[syntax(" auto | none | all ")]
206#[derive(
207 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
208)]
209#[declaration_metadata(
210 initial = "auto",
211 inherits,
212 applies_to = Elements,
213 animation_type = Discrete,
214 property_group = TextDecor,
215 computed_value_type = Unknown,
216 canonical_order = "per grammar",
217)]
218#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
219#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip-ink"))]
220#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
221#[derive(csskit_derives::NodeWithMetadata)]
222pub enum TextDecorationSkipInkStyleValue<'a> {}
223
224#[syntax(" auto | skip-all | [ skip-underline || skip-overline || skip-line-through ] | no-skip ")]
234#[derive(
235 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
236)]
237#[declaration_metadata(
238 initial = "auto",
239 applies_to = Elements,
240 animation_type = Discrete,
241 property_group = TextDecor,
242 computed_value_type = Unknown,
243 canonical_order = "per grammar",
244)]
245#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
246#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-skip-self"))]
247#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
248#[derive(csskit_derives::NodeWithMetadata)]
249pub enum TextDecorationSkipSelfStyleValue<'a> {}
250
251#[syntax(" none | all | [ start || end ] ")]
263#[derive(
264 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
265)]
266#[declaration_metadata(
267 initial = "start end",
268 inherits,
269 applies_to = Elements,
270 animation_type = Discrete,
271 property_group = TextDecor,
272 computed_value_type = Unknown,
273 canonical_order = "per grammar",
274)]
275#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
276#[cfg_attr(
277 feature = "css_feature_data",
278 derive(ToCSSFeature),
279 css_feature("css.properties.text-decoration-skip-spaces")
280)]
281#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
282#[derive(csskit_derives::NodeWithMetadata)]
283pub enum TextDecorationSkipSpacesStyleValue<'a> {}
284
285#[syntax(" solid | double | dotted | dashed | wavy ")]
297#[derive(
298 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
299)]
300#[declaration_metadata(
301 initial = "solid",
302 applies_to = Elements,
303 animation_type = Discrete,
304 shorthands = TextDecoration,
305 property_group = TextDecor,
306 computed_value_type = Unknown,
307 canonical_order = "per grammar",
308)]
309#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
310#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-style"))]
311#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
312#[derive(csskit_derives::NodeWithMetadata)]
313pub enum TextDecorationStyleStyleValue<'a> {}
314
315#[syntax(" auto | from-font | <length-percentage> | <line-width> ")]
327#[derive(
328 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
329)]
330#[declaration_metadata(
331 initial = "auto",
332 applies_to = Elements,
333 animation_type = ByComputedValue,
334 shorthands = TextDecoration,
335 property_group = TextDecor,
336 computed_value_type = AsSpecified,
337 canonical_order = "per grammar",
338)]
339#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
340#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-decoration-thickness"))]
341#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
342#[derive(csskit_derives::NodeWithMetadata)]
343pub enum TextDecorationThicknessStyleValue<'a> {}
344
345#[syntax(" <'text-emphasis-style'> || <'text-emphasis-color'> ")]
357#[derive(
358 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
359)]
360#[declaration_metadata(
361 initial = "see individual properties",
362 inherits = Unknown,
363 applies_to = Unknown,
364 animation_type = Unknown,
365 percentages = Unknown,
366 longhands = TextEmphasisStyle|TextEmphasisColor,
367 property_group = TextDecor,
368 computed_value_type = Unknown,
369 canonical_order = "per grammar",
370)]
371#[declaration_writes(TextEmphasisStyle?, TextEmphasisColor?)]
372#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
373#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis"))]
374#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
375#[derive(csskit_derives::NodeWithMetadata)]
376pub struct TextEmphasisStyleValue<'a>;
377
378#[syntax(" <color> ")]
390#[derive(
391 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
392)]
393#[declaration_metadata(
394 initial = "currentcolor",
395 inherits,
396 applies_to = Text,
397 animation_type = ByComputedValue,
398 shorthands = TextEmphasis,
399 property_group = TextDecor,
400 computed_value_type = Unknown,
401 canonical_order = "per grammar",
402)]
403#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
404#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-color"))]
405#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
406#[derive(csskit_derives::NodeWithMetadata)]
407pub struct TextEmphasisColorStyleValue<'a>;
408
409#[syntax(" [ over | under ] && [ right | left ]? ")]
421#[derive(
422 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
423)]
424#[declaration_metadata(
425 initial = "over right",
426 inherits,
427 applies_to = Text,
428 animation_type = Discrete,
429 property_group = TextDecor,
430 computed_value_type = Unknown,
431 canonical_order = "per grammar",
432)]
433#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
434#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-position"))]
435#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
436#[derive(csskit_derives::NodeWithMetadata)]
437pub enum TextEmphasisPositionStyleValue<'a> {}
438
439#[syntax(" spaces || punctuation || symbols || narrow ")]
449#[derive(
450 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
451)]
452#[declaration_metadata(
453 initial = "spaces punctuation",
454 inherits,
455 applies_to = Text,
456 animation_type = Discrete,
457 property_group = TextDecor,
458 computed_value_type = Unknown,
459 canonical_order = "per grammar",
460)]
461#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
462#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-skip"))]
463#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
464#[derive(csskit_derives::NodeWithMetadata)]
465pub struct TextEmphasisSkipStyleValue<'a>;
466
467#[syntax(" none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string> ")]
479#[derive(
480 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
481)]
482#[declaration_metadata(
483 initial = "none",
484 inherits,
485 applies_to = Text,
486 animation_type = Discrete,
487 shorthands = TextEmphasis,
488 property_group = TextDecor,
489 computed_value_type = Unknown,
490 canonical_order = "per grammar",
491)]
492#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
493#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-emphasis-style"))]
494#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
495#[derive(csskit_derives::NodeWithMetadata)]
496pub enum TextEmphasisStyleStyleValue<'a> {}
497
498#[syntax(" none | <shadow># ")]
510#[derive(
511 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
512)]
513#[declaration_metadata(
514 initial = "none",
515 inherits,
516 applies_to = Text,
517 animation_type = ShadowList,
518 property_group = TextDecor,
519 computed_value_type = AbsoluteLengthOrNone,
520 canonical_order = "per grammar",
521)]
522#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
523#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-shadow"))]
524#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
525#[derive(csskit_derives::NodeWithMetadata)]
526pub struct TextShadowStyleValue<'a>;
527
528#[syntax(" auto | <length-percentage> ")]
540#[derive(
541 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
542)]
543#[declaration_metadata(
544 initial = "auto",
545 inherits,
546 applies_to = Elements,
547 animation_type = ByComputedValue,
548 property_group = TextDecor,
549 computed_value_type = AsSpecified,
550 canonical_order = "per grammar",
551)]
552#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
553#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-underline-offset"))]
554#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
555#[derive(csskit_derives::NodeWithMetadata)]
556pub struct TextUnderlineOffsetStyleValue<'a>;
557
558#[syntax(" auto | [ from-font | under ] || [ left | right ] ")]
570#[derive(
571 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
572)]
573#[declaration_metadata(
574 initial = "auto",
575 inherits,
576 applies_to = Elements,
577 animation_type = Discrete,
578 property_group = TextDecor,
579 computed_value_type = Unknown,
580 canonical_order = "per grammar",
581)]
582#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
583#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-underline-position"))]
584#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
585#[derive(csskit_derives::NodeWithMetadata)]
586pub struct TextUnderlinePositionStyleValue<'a>;