css_ast/values/text/
mod.rs

1#![allow(warnings)]
2//! https://drafts.csswg.org/css-text-4/
3
4mod impls;
5use super::prelude::*;
6use impls::*;
7// /// Represents the style value for `hanging-punctuation` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hanging-punctuation).
8// ///
9// /// The hanging-punctuation CSS property puts punctuation characters outside of the box to align the text with the rest of the document.
10// ///
11// /// The grammar is defined as:
12// ///
13// /// ```text,ignore
14// /// none | [ first || [ force-end | allow-end ] || last ]
15// /// ```
16// ///
17// /// https://drafts.csswg.org/css-text-4/#hanging-punctuation
18// #[syntax(" none | [ first || [ force-end | allow-end ] || last ] ")]
19// #[derive(
20//     Parse,
21//     Peek,
22//     ToSpan,
23//     ToCursors,
24//     DeclarationMetadata,
25//     SemanticEq,
26//     Debug,
27//     Clone,
28//     PartialEq,
29//     Eq,
30//     PartialOrd,
31//     Ord,
32//     Hash,
33// )]
34// #[declaration_metadata(
35//     initial = "none",
36//     inherits,
37//     applies_to = Text,
38//     animation_type = Discrete,
39//     property_group = Text,
40//     computed_value_type = Unknown,
41//     canonical_order = "per grammar",
42// )]
43// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
44// #[cfg_attr(
45//     feature = "css_feature_data",
46//     derive(ToCSSFeature),
47//     css_feature("css.properties.hanging-punctuation")
48// )]
49// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
50// pub struct HangingPunctuationStyleValue;
51
52/// Represents the style value for `hyphenate-character` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-character).
53///
54/// The hyphenate-character CSS property sets the character or string to use at the end of a line before a line break.
55///
56/// The grammar is defined as:
57///
58/// ```text,ignore
59/// auto | <string>
60/// ```
61///
62/// https://drafts.csswg.org/css-text-4/#hyphenate-character
63#[syntax(" auto | <string> ")]
64#[derive(
65	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
66)]
67#[declaration_metadata(
68    initial = "auto",
69    inherits,
70    applies_to = Text,
71    animation_type = Discrete,
72    property_group = Text,
73    computed_value_type = Unknown,
74    canonical_order = "per grammar",
75)]
76#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
77#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.hyphenate-character"))]
78#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
79pub struct HyphenateCharacterStyleValue;
80
81// /// Represents the style value for `hyphenate-limit-chars` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-limit-chars).
82// ///
83// /// The hyphenate-limit-chars CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen.
84// ///
85// /// The grammar is defined as:
86// ///
87// /// ```text,ignore
88// /// [ auto | <integer> ]{1,3}
89// /// ```
90// ///
91// /// https://drafts.csswg.org/css-text-4/#hyphenate-limit-chars
92// #[syntax(" [ auto | <integer> ]{1,3} ")]
93// #[derive(
94//     Parse,
95//     Peek,
96//     ToSpan,
97//     ToCursors,
98//     DeclarationMetadata,
99//     SemanticEq,
100//     Debug,
101//     Clone,
102//     PartialEq,
103//     Eq,
104//     PartialOrd,
105//     Ord,
106//     Hash,
107// )]
108// #[declaration_metadata(
109//     initial = "auto",
110//     inherits,
111//     applies_to = Text,
112//     animation_type = ByComputedValue,
113//     property_group = Text,
114//     computed_value_type = Unknown,
115//     canonical_order = "per grammar",
116// )]
117// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
118// #[cfg_attr(
119//     feature = "css_feature_data",
120//     derive(ToCSSFeature),
121//     css_feature("css.properties.hyphenate-limit-chars")
122// )]
123// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
124// pub struct HyphenateLimitCharsStyleValue;
125
126/// Represents the style value for `hyphenate-limit-last` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-limit-last).
127///
128/// The grammar is defined as:
129///
130/// ```text,ignore
131/// none | always | column | page | spread
132/// ```
133///
134/// https://drafts.csswg.org/css-text-4/#hyphenate-limit-last
135#[syntax(" none | always | column | page | spread ")]
136#[derive(
137	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
138)]
139#[declaration_metadata(
140    initial = "none",
141    inherits,
142    applies_to = Block,
143    animation_type = Discrete,
144    property_group = Text,
145    computed_value_type = Unknown,
146    canonical_order = "per grammar",
147)]
148#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
149#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.hyphenate-limit-last"))]
150#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
151pub enum HyphenateLimitLastStyleValue {}
152
153/// Represents the style value for `hyphenate-limit-lines` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-limit-lines).
154///
155/// The grammar is defined as:
156///
157/// ```text,ignore
158/// no-limit | <integer>
159/// ```
160///
161/// https://drafts.csswg.org/css-text-4/#hyphenate-limit-lines
162#[syntax(" no-limit | <integer> ")]
163#[derive(
164	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
165)]
166#[declaration_metadata(
167    initial = "no-limit",
168    inherits,
169    applies_to = Block,
170    animation_type = ByComputedValue,
171    property_group = Text,
172    computed_value_type = Unknown,
173    canonical_order = "per grammar",
174)]
175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.hyphenate-limit-lines"))]
177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
178pub enum HyphenateLimitLinesStyleValue {}
179
180/// Represents the style value for `hyphenate-limit-zone` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-limit-zone).
181///
182/// The grammar is defined as:
183///
184/// ```text,ignore
185/// <length-percentage>
186/// ```
187///
188/// https://drafts.csswg.org/css-text-4/#hyphenate-limit-zone
189#[syntax(" <length-percentage> ")]
190#[derive(
191	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
192)]
193#[declaration_metadata(
194    initial = "0",
195    inherits,
196    applies_to = Block,
197    percentages = LineBox,
198    animation_type = ByComputedValue,
199    property_group = Text,
200    computed_value_type = Unknown,
201    canonical_order = "per grammar",
202)]
203#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
204#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.hyphenate-limit-zone"))]
205#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
206pub struct HyphenateLimitZoneStyleValue;
207
208/// Represents the style value for `hyphens` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphens).
209///
210/// The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters. Support for non-English languages varies significantly.
211///
212/// The grammar is defined as:
213///
214/// ```text,ignore
215/// none | manual | auto
216/// ```
217///
218/// https://drafts.csswg.org/css-text-4/#hyphens
219#[syntax(" none | manual | auto ")]
220#[derive(
221	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
222)]
223#[declaration_metadata(
224    initial = "manual",
225    inherits,
226    applies_to = Text,
227    animation_type = Discrete,
228    property_group = Text,
229    computed_value_type = Unknown,
230    canonical_order = "n/a",
231)]
232#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
233#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.hyphens"))]
234#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
235pub enum HyphensStyleValue {}
236
237/// Represents the style value for `letter-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#letter-spacing).
238///
239/// The letter-spacing CSS property controls the amount of space between each letter in an element or block of text.
240///
241/// The grammar is defined as:
242///
243/// ```text,ignore
244/// normal | <length-percentage>
245/// ```
246///
247/// https://drafts.csswg.org/css-text-4/#letter-spacing
248#[syntax(" normal | <length-percentage> ")]
249#[derive(
250	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
251)]
252#[declaration_metadata(
253    initial = "normal",
254    inherits,
255    applies_to = Unknown,
256    percentages = FontSize,
257    animation_type = ByComputedValue,
258    property_group = Text,
259    computed_value_type = AbsoluteLengthOrPercentage,
260    canonical_order = "n/a",
261)]
262#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
263#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.letter-spacing"))]
264#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
265pub enum LetterSpacingStyleValue {}
266
267/// Represents the style value for `line-break` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#line-break).
268///
269/// The line-break CSS property sets how strictly to apply rules for wrapping text to new lines, especially for symbols and punctuation.
270///
271/// The grammar is defined as:
272///
273/// ```text,ignore
274/// auto | loose | normal | strict | anywhere
275/// ```
276///
277/// https://drafts.csswg.org/css-text-4/#line-break
278#[syntax(" auto | loose | normal | strict | anywhere ")]
279#[derive(
280	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
281)]
282#[declaration_metadata(
283    initial = "auto",
284    inherits,
285    applies_to = Text,
286    animation_type = Discrete,
287    property_group = Text,
288    computed_value_type = Unknown,
289    canonical_order = "n/a",
290)]
291#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
292#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.line-break"))]
293#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
294pub enum LineBreakStyleValue {}
295
296/// Represents the style value for `line-padding` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#line-padding).
297///
298/// The grammar is defined as:
299///
300/// ```text,ignore
301/// <length>
302/// ```
303///
304/// https://drafts.csswg.org/css-text-4/#line-padding
305#[syntax(" <length> ")]
306#[derive(
307	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
308)]
309#[declaration_metadata(
310    initial = "0",
311    inherits,
312    applies_to = Unknown,
313    animation_type = ByComputedValue,
314    property_group = Text,
315    computed_value_type = AbsoluteLength,
316    canonical_order = "per grammar",
317)]
318#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
319#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.line-padding"))]
320#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
321pub struct LinePaddingStyleValue;
322
323/// Represents the style value for `overflow-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#overflow-wrap).
324///
325/// The overflow-wrap CSS property breaks a line of text onto multiple lines inside the targeted element in an otherwise unbreakable place to prevent overflow. The legacy property is word-wrap.
326///
327/// The grammar is defined as:
328///
329/// ```text,ignore
330/// normal | break-word | anywhere
331/// ```
332///
333/// https://drafts.csswg.org/css-text-4/#overflow-wrap
334#[syntax(" normal | break-word | anywhere ")]
335#[derive(
336	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
337)]
338#[declaration_metadata(
339    initial = "normal",
340    inherits,
341    applies_to = Text,
342    animation_type = Discrete,
343    property_group = Text,
344    computed_value_type = Unknown,
345    canonical_order = "n/a",
346)]
347#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
348#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-wrap"))]
349#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
350pub enum OverflowWrapStyleValue {}
351
352/// Represents the style value for `tab-size` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#tab-size).
353///
354/// The tab-size CSS property sets the width of the tab character.
355///
356/// The grammar is defined as:
357///
358/// ```text,ignore
359/// <number [0,∞]> | <length [0,∞]>
360/// ```
361///
362/// https://drafts.csswg.org/css-text-4/#tab-size
363#[syntax(" <number [0,∞]> | <length [0,∞]> ")]
364#[derive(
365	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
366)]
367#[declaration_metadata(
368    initial = "8",
369    inherits,
370    applies_to = Text,
371    animation_type = ByComputedValue,
372    property_group = Text,
373    computed_value_type = SpecifiedKeywordPlusAbsoluteLength,
374    canonical_order = "n/a",
375)]
376#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
377#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.tab-size"))]
378#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
379pub struct TabSizeStyleValue;
380
381/// Represents the style value for `text-align` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-align).
382///
383/// The text-align CSS property sets the horizontal placement of the inner content of a block element.
384///
385/// The grammar is defined as:
386///
387/// ```text,ignore
388/// start | end | left | right | center | <string> | justify | match-parent | justify-all
389/// ```
390///
391/// https://drafts.csswg.org/css-text-4/#text-align
392#[syntax(" start | end | left | right | center | <string> | justify | match-parent | justify-all ")]
393#[derive(
394	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
395)]
396#[declaration_metadata(
397    initial = "start",
398    inherits,
399    applies_to = Block,
400    percentages = Unknown,
401    animation_type = Discrete,
402    property_group = Text,
403    computed_value_type = Unknown,
404    canonical_order = "n/a",
405)]
406#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
407#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align"))]
408#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
409pub enum TextAlignStyleValue {}
410
411/// Represents the style value for `text-align-all` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-align-all).
412///
413/// The grammar is defined as:
414///
415/// ```text,ignore
416/// start | end | left | right | center | <string> | justify | match-parent
417/// ```
418///
419/// https://drafts.csswg.org/css-text-4/#text-align-all
420#[syntax(" start | end | left | right | center | <string> | justify | match-parent ")]
421#[derive(
422	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
423)]
424#[declaration_metadata(
425    initial = "start",
426    inherits,
427    applies_to = Block,
428    animation_type = Discrete,
429    property_group = Text,
430    computed_value_type = Unknown,
431    canonical_order = "n/a",
432)]
433#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
434#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align-all"))]
435#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
436pub enum TextAlignAllStyleValue {}
437
438/// Represents the style value for `text-align-last` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-align-last).
439///
440/// The text-align-last CSS property sets the alignment of the last line of text before a forced line break.
441///
442/// The grammar is defined as:
443///
444/// ```text,ignore
445/// auto | start | end | left | right | center | justify | match-parent
446/// ```
447///
448/// https://drafts.csswg.org/css-text-4/#text-align-last
449#[syntax(" auto | start | end | left | right | center | justify | match-parent ")]
450#[derive(
451	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
452)]
453#[declaration_metadata(
454    initial = "auto",
455    inherits,
456    applies_to = Block,
457    animation_type = Discrete,
458    property_group = Text,
459    computed_value_type = Unknown,
460    canonical_order = "n/a",
461)]
462#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
463#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align-last"))]
464#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
465pub enum TextAlignLastStyleValue {}
466
467/// Represents the style value for `text-autospace` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-autospace).
468///
469/// The text-autospace CSS property sets whether and how to insert spaces in inter-script text (such as when mixing Latin and Chinese characters) and around punctuation.
470///
471/// The grammar is defined as:
472///
473/// ```text,ignore
474/// normal | <autospace> | auto
475/// ```
476///
477/// https://drafts.csswg.org/css-text-4/#text-autospace
478#[syntax(" normal | <autospace> | auto ")]
479#[derive(
480	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
481)]
482#[declaration_metadata(
483    initial = "normal",
484    inherits,
485    applies_to = Text,
486    animation_type = Discrete,
487    property_group = Text,
488    computed_value_type = Unknown,
489    canonical_order = "per grammar",
490)]
491#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
492#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-autospace"))]
493#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
494pub enum TextAutospaceStyleValue {}
495
496/// Represents the style value for `text-group-align` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-group-align).
497///
498/// The grammar is defined as:
499///
500/// ```text,ignore
501/// none | start | end | left | right | center
502/// ```
503///
504/// https://drafts.csswg.org/css-text-4/#text-group-align
505#[syntax(" none | start | end | left | right | center ")]
506#[derive(
507	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
508)]
509#[declaration_metadata(
510    initial = "none",
511    applies_to = Block,
512    animation_type = Discrete,
513    property_group = Text,
514    computed_value_type = Unknown,
515    canonical_order = "per grammar",
516)]
517#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
518#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-group-align"))]
519#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
520pub enum TextGroupAlignStyleValue {}
521
522// /// Represents the style value for `text-indent` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-indent).
523// ///
524// /// The text-indent CSS property sets the size of the empty space (indentation) at the beginning of lines in a text.
525// ///
526// /// The grammar is defined as:
527// ///
528// /// ```text,ignore
529// /// [ <length-percentage> ] && hanging? && each-line?
530// /// ```
531// ///
532// /// https://drafts.csswg.org/css-text-4/#text-indent
533// #[syntax(" [ <length-percentage> ] && hanging? && each-line? ")]
534// #[derive(
535//     Parse,
536//     Peek,
537//     ToSpan,
538//     ToCursors,
539//     DeclarationMetadata,
540//     SemanticEq,
541//     Debug,
542//     Clone,
543//     PartialEq,
544//     Eq,
545//     PartialOrd,
546//     Ord,
547//     Hash,
548// )]
549// #[declaration_metadata(
550//     initial = "0",
551//     inherits,
552//     applies_to = Block,
553//     percentages = Unknown,
554//     animation_type = ByComputedValue,
555//     property_group = Text,
556//     computed_value_type = Unknown,
557//     canonical_order = "per grammar",
558// )]
559// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
560// #[cfg_attr(
561//     feature = "css_feature_data",
562//     derive(ToCSSFeature),
563//     css_feature("css.properties.text-indent")
564// )]
565// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
566// pub struct TextIndentStyleValue;
567
568// /// Represents the style value for `text-justify` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-justify).
569// ///
570// /// The text-justify CSS property sets the justification method of text when text-align: justify is set.
571// ///
572// /// The grammar is defined as:
573// ///
574// /// ```text,ignore
575// /// [ auto | none | inter-word | inter-character | ruby ] || no-compress
576// /// ```
577// ///
578// /// https://drafts.csswg.org/css-text-4/#text-justify
579// #[syntax(" [ auto | none | inter-word | inter-character | ruby ] || no-compress ")]
580// #[derive(
581//     Parse,
582//     Peek,
583//     ToSpan,
584//     ToCursors,
585//     DeclarationMetadata,
586//     SemanticEq,
587//     Debug,
588//     Clone,
589//     PartialEq,
590//     Eq,
591//     PartialOrd,
592//     Ord,
593//     Hash,
594// )]
595// #[declaration_metadata(
596//     initial = "auto",
597//     inherits,
598//     applies_to = Text,
599//     animation_type = Discrete,
600//     property_group = Text,
601//     computed_value_type = Unknown,
602//     canonical_order = "n/a",
603// )]
604// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
605// #[cfg_attr(
606//     feature = "css_feature_data",
607//     derive(ToCSSFeature),
608//     css_feature("css.properties.text-justify")
609// )]
610// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
611// pub struct TextJustifyStyleValue;
612
613// /// Represents the style value for `text-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-spacing).
614// ///
615// /// The grammar is defined as:
616// ///
617// /// ```text,ignore
618// /// none | auto | <spacing-trim> || <autospace>
619// /// ```
620// ///
621// /// https://drafts.csswg.org/css-text-4/#text-spacing
622// #[syntax(" none | auto | <spacing-trim> || <autospace> ")]
623// #[derive(
624//     Parse,
625//     Peek,
626//     ToSpan,
627//     ToCursors,
628//     DeclarationMetadata,
629//     SemanticEq,
630//     Debug,
631//     Clone,
632//     PartialEq,
633//     Eq,
634//     PartialOrd,
635//     Ord,
636//     Hash,
637// )]
638// #[declaration_metadata(
639//     initial = "see individual properties",
640//     inherits,
641//     applies_to = Text,
642//     animation_type = Discrete,
643//     property_group = Text,
644//     computed_value_type = Unknown,
645//     canonical_order = "per grammar",
646// )]
647// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
648// #[cfg_attr(
649//     feature = "css_feature_data",
650//     derive(ToCSSFeature),
651//     css_feature("css.properties.text-spacing")
652// )]
653// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
654// pub struct TextSpacingStyleValue;
655
656/// Represents the style value for `text-spacing-trim` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-spacing-trim).
657///
658/// The text-spacing-trim CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters.
659///
660/// The grammar is defined as:
661///
662/// ```text,ignore
663/// <spacing-trim> | auto
664/// ```
665///
666/// https://drafts.csswg.org/css-text-4/#text-spacing-trim
667#[syntax(" <spacing-trim> | auto ")]
668#[derive(
669	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
670)]
671#[declaration_metadata(
672    initial = "normal",
673    inherits,
674    applies_to = Text,
675    animation_type = Discrete,
676    property_group = Text,
677    computed_value_type = Unknown,
678    canonical_order = "per grammar",
679)]
680#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
681#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-spacing-trim"))]
682#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
683pub struct TextSpacingTrimStyleValue;
684
685// /// Represents the style value for `text-transform` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-transform).
686// ///
687// /// The text-transform CSS property sets text case and capitalization.
688// ///
689// /// The grammar is defined as:
690// ///
691// /// ```text,ignore
692// /// none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto
693// /// ```
694// ///
695// /// https://drafts.csswg.org/css-text-4/#text-transform
696// #[syntax(
697//     " none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto "
698// )]
699// #[derive(
700//     Parse,
701//     Peek,
702//     ToSpan,
703//     ToCursors,
704//     DeclarationMetadata,
705//     SemanticEq,
706//     Debug,
707//     Clone,
708//     PartialEq,
709//     Eq,
710//     PartialOrd,
711//     Ord,
712//     Hash,
713// )]
714// #[declaration_metadata(
715//     initial = "none",
716//     inherits,
717//     applies_to = Text,
718//     animation_type = Discrete,
719//     property_group = Text,
720//     computed_value_type = Unknown,
721//     canonical_order = "n/a",
722// )]
723// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
724// #[cfg_attr(
725//     feature = "css_feature_data",
726//     derive(ToCSSFeature),
727//     css_feature("css.properties.text-transform")
728// )]
729// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
730// pub enum TextTransformStyleValue {}
731
732/// Represents the style value for `text-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap).
733///
734/// The text-wrap CSS property sets how lines break in text that overflows the container. It is a shorthand for text-wrap-style and text-wrap-mode.
735///
736/// The grammar is defined as:
737///
738/// ```text,ignore
739/// <'text-wrap-mode'> || <'text-wrap-style'>
740/// ```
741///
742/// https://drafts.csswg.org/css-text-4/#text-wrap
743#[syntax(" <'text-wrap-mode'> || <'text-wrap-style'> ")]
744#[derive(
745	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
746)]
747#[declaration_metadata(
748    initial = "wrap",
749    inherits = Unknown,
750    applies_to = Unknown,
751    percentages = Unknown,
752    animation_type = Unknown,
753    property_group = Text,
754    computed_value_type = Unknown,
755    canonical_order = "per grammar",
756)]
757#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
758#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-wrap"))]
759#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
760pub struct TextWrapStyleValue;
761
762/// Represents the style value for `text-wrap-mode` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap-mode).
763///
764/// The text-wrap-mode CSS property sets whether lines may wrap with the values wrap and nowrap. It is a longhand property for both white-space and text-wrap.
765///
766/// The grammar is defined as:
767///
768/// ```text,ignore
769/// wrap | nowrap
770/// ```
771///
772/// https://drafts.csswg.org/css-text-4/#text-wrap-mode
773#[syntax(" wrap | nowrap ")]
774#[derive(
775	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
776)]
777#[declaration_metadata(
778    initial = "wrap",
779    inherits,
780    applies_to = Text,
781    animation_type = Discrete,
782    property_group = Text,
783    computed_value_type = Unknown,
784    canonical_order = "per grammar",
785)]
786#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
787#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-wrap-mode"))]
788#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
789pub enum TextWrapModeStyleValue {}
790
791/// Represents the style value for `text-wrap-style` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap-style).
792///
793/// The text-wrap-style CSS property sets how lines break in text that overflows the container. It can also be set with the text-wrap shorthand.
794///
795/// The grammar is defined as:
796///
797/// ```text,ignore
798/// auto | balance | stable | pretty | avoid-orphans
799/// ```
800///
801/// https://drafts.csswg.org/css-text-4/#text-wrap-style
802#[syntax(" auto | balance | stable | pretty | avoid-orphans ")]
803#[derive(
804	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
805)]
806#[declaration_metadata(
807    initial = "auto",
808    inherits,
809    applies_to = Unknown,
810    animation_type = Discrete,
811    property_group = Text,
812    computed_value_type = Unknown,
813    canonical_order = "per grammar",
814)]
815#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
816#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-wrap-style"))]
817#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
818pub enum TextWrapStyleStyleValue {}
819
820// /// Represents the style value for `white-space` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space).
821// ///
822// /// The white-space CSS property sets how white space is collapsed and how lines wrap. It is a shorthand for white-space-collapse and text-wrap-mode.
823// ///
824// /// The grammar is defined as:
825// ///
826// /// ```text,ignore
827// /// normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'>
828// /// ```
829// ///
830// /// https://drafts.csswg.org/css-text-4/#white-space
831// #[syntax(
832//     " normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'> "
833// )]
834// #[derive(
835//     Parse,
836//     Peek,
837//     ToSpan,
838//     ToCursors,
839//     DeclarationMetadata,
840//     SemanticEq,
841//     Debug,
842//     Clone,
843//     PartialEq,
844//     Eq,
845//     PartialOrd,
846//     Ord,
847//     Hash,
848// )]
849// #[declaration_metadata(
850//     initial = "normal",
851//     inherits = Unknown,
852//     applies_to = Text,
853//     animation_type = Discrete,
854//     property_group = Text,
855//     computed_value_type = Unknown,
856//     canonical_order = "n/a",
857// )]
858// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
859// #[cfg_attr(
860//     feature = "css_feature_data",
861//     derive(ToCSSFeature),
862//     css_feature("css.properties.white-space")
863// )]
864// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
865// pub enum WhiteSpaceStyleValue {}
866
867/// Represents the style value for `white-space-collapse` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space-collapse).
868///
869/// The white-space-collapse CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.
870///
871/// The grammar is defined as:
872///
873/// ```text,ignore
874/// collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces
875/// ```
876///
877/// https://drafts.csswg.org/css-text-4/#white-space-collapse
878#[syntax(" collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces ")]
879#[derive(
880	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
881)]
882#[declaration_metadata(
883    initial = "collapse",
884    inherits,
885    applies_to = Text,
886    animation_type = Discrete,
887    property_group = Text,
888    computed_value_type = Unknown,
889    canonical_order = "per grammar",
890)]
891#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
892#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.white-space-collapse"))]
893#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
894pub enum WhiteSpaceCollapseStyleValue {}
895
896// /// Represents the style value for `white-space-trim` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space-trim).
897// ///
898// /// The grammar is defined as:
899// ///
900// /// ```text,ignore
901// /// none | discard-before || discard-after || discard-inner
902// /// ```
903// ///
904// /// https://drafts.csswg.org/css-text-4/#white-space-trim
905// #[syntax(" none | discard-before || discard-after || discard-inner ")]
906// #[derive(
907//     Parse,
908//     Peek,
909//     ToSpan,
910//     ToCursors,
911//     DeclarationMetadata,
912//     SemanticEq,
913//     Debug,
914//     Clone,
915//     PartialEq,
916//     Eq,
917//     PartialOrd,
918//     Ord,
919//     Hash,
920// )]
921// #[declaration_metadata(
922//     initial = "none",
923//     applies_to = Unknown,
924//     animation_type = Discrete,
925//     property_group = Text,
926//     computed_value_type = Unknown,
927//     canonical_order = "per grammar",
928// )]
929// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
930// #[cfg_attr(
931//     feature = "css_feature_data",
932//     derive(ToCSSFeature),
933//     css_feature("css.properties.white-space-trim")
934// )]
935// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
936// pub struct WhiteSpaceTrimStyleValue;
937
938/// Represents the style value for `word-break` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-break).
939///
940/// The word-break CSS property sets how lines break within words.
941///
942/// The grammar is defined as:
943///
944/// ```text,ignore
945/// normal | break-all | keep-all | manual | auto-phrase | break-word
946/// ```
947///
948/// https://drafts.csswg.org/css-text-4/#word-break
949#[syntax(" normal | break-all | keep-all | manual | auto-phrase | break-word ")]
950#[derive(
951	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
952)]
953#[declaration_metadata(
954    initial = "normal",
955    inherits,
956    applies_to = Text,
957    animation_type = Discrete,
958    property_group = Text,
959    computed_value_type = Unknown,
960    canonical_order = "n/a",
961)]
962#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
963#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-break"))]
964#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
965pub enum WordBreakStyleValue {}
966
967// /// Represents the style value for `word-space-transform` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-space-transform).
968// ///
969// /// The grammar is defined as:
970// ///
971// /// ```text,ignore
972// /// none | [ space | ideographic-space ] && auto-phrase?
973// /// ```
974// ///
975// /// https://drafts.csswg.org/css-text-4/#word-space-transform
976// #[syntax(" none | [ space | ideographic-space ] && auto-phrase? ")]
977// #[derive(
978//     Parse,
979//     Peek,
980//     ToSpan,
981//     ToCursors,
982//     DeclarationMetadata,
983//     SemanticEq,
984//     Debug,
985//     Clone,
986//     PartialEq,
987//     Eq,
988//     PartialOrd,
989//     Ord,
990//     Hash,
991// )]
992// #[declaration_metadata(
993//     initial = "none",
994//     inherits,
995//     applies_to = Text,
996//     animation_type = Discrete,
997//     property_group = Text,
998//     computed_value_type = AsSpecified,
999//     canonical_order = "per grammar",
1000// )]
1001// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1002// #[cfg_attr(
1003//     feature = "css_feature_data",
1004//     derive(ToCSSFeature),
1005//     css_feature("css.properties.word-space-transform")
1006// )]
1007// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1008// pub struct WordSpaceTransformStyleValue;
1009
1010/// Represents the style value for `word-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-spacing).
1011///
1012/// The word-spacing CSS property sets the amount of white space between words.
1013///
1014/// The grammar is defined as:
1015///
1016/// ```text,ignore
1017/// normal | <length-percentage>
1018/// ```
1019///
1020/// https://drafts.csswg.org/css-text-4/#word-spacing
1021#[syntax(" normal | <length-percentage> ")]
1022#[derive(
1023	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1024)]
1025#[declaration_metadata(
1026    initial = "normal",
1027    inherits,
1028    applies_to = Text,
1029    percentages = FontSize,
1030    animation_type = ByComputedValue,
1031    property_group = Text,
1032    computed_value_type = AbsoluteLengthOrPercentage,
1033    canonical_order = "n/a",
1034)]
1035#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1036#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-spacing"))]
1037#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1038pub enum WordSpacingStyleValue {}
1039
1040/// Represents the style value for `word-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-wrap).
1041///
1042/// The grammar is defined as:
1043///
1044/// ```text,ignore
1045/// normal | break-word | anywhere
1046/// ```
1047///
1048/// https://drafts.csswg.org/css-text-4/#word-wrap
1049#[syntax(" normal | break-word | anywhere ")]
1050#[derive(
1051	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1052)]
1053#[declaration_metadata(
1054    initial = "normal",
1055    inherits,
1056    applies_to = Text,
1057    animation_type = Discrete,
1058    property_group = Text,
1059    computed_value_type = Unknown,
1060    canonical_order = "n/a",
1061)]
1062#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1063#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-wrap"))]
1064#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1065pub enum WordWrapStyleValue {}
1066
1067/// Represents the style value for `wrap-after` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-after).
1068///
1069/// The grammar is defined as:
1070///
1071/// ```text,ignore
1072/// auto | avoid | avoid-line | avoid-flex | line | flex
1073/// ```
1074///
1075/// https://drafts.csswg.org/css-text-4/#wrap-after
1076#[syntax(" auto | avoid | avoid-line | avoid-flex | line | flex ")]
1077#[derive(
1078	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1079)]
1080#[declaration_metadata(
1081    initial = "auto",
1082    applies_to = Unknown,
1083    animation_type = Discrete,
1084    property_group = Text,
1085    computed_value_type = Unknown,
1086    canonical_order = "per grammar",
1087)]
1088#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1089#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.wrap-after"))]
1090#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1091pub enum WrapAfterStyleValue {}
1092
1093/// Represents the style value for `wrap-before` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-before).
1094///
1095/// The grammar is defined as:
1096///
1097/// ```text,ignore
1098/// auto | avoid | avoid-line | avoid-flex | line | flex
1099/// ```
1100///
1101/// https://drafts.csswg.org/css-text-4/#wrap-before
1102#[syntax(" auto | avoid | avoid-line | avoid-flex | line | flex ")]
1103#[derive(
1104	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1105)]
1106#[declaration_metadata(
1107    initial = "auto",
1108    applies_to = Unknown,
1109    animation_type = Discrete,
1110    property_group = Text,
1111    computed_value_type = Unknown,
1112    canonical_order = "per grammar",
1113)]
1114#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1115#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.wrap-before"))]
1116#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1117pub enum WrapBeforeStyleValue {}
1118
1119/// Represents the style value for `wrap-inside` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-inside).
1120///
1121/// The grammar is defined as:
1122///
1123/// ```text,ignore
1124/// auto | avoid
1125/// ```
1126///
1127/// https://drafts.csswg.org/css-text-4/#wrap-inside
1128#[syntax(" auto | avoid ")]
1129#[derive(
1130	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1131)]
1132#[declaration_metadata(
1133    initial = "auto",
1134    applies_to = Unknown,
1135    animation_type = Discrete,
1136    property_group = Text,
1137    computed_value_type = Unknown,
1138    canonical_order = "per grammar",
1139)]
1140#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1141#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.wrap-inside"))]
1142#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1143pub enum WrapInsideStyleValue {}