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