Skip to main content

css_ast/values/text/
mod.rs

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