css_ast/values/text/
mod.rs

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