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/e8f0279ce0beff5d70e59fa4165a668e1527fff6
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, 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 {}
39
40/// Represents the style value for `hyphenate-character` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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;
69
70/// Represents the style value for `hyphenate-limit-chars` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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> ]{1,3}
78/// ```
79///
80/// https://drafts.csswg.org/css-text-4/#hyphenate-limit-chars
81#[syntax(" [ auto | <integer> ]{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;
99
100/// Represents the style value for `hyphenate-limit-last` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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 {}
127
128/// Represents the style value for `hyphenate-limit-lines` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#hyphenate-limit-lines).
129///
130/// The grammar is defined as:
131///
132/// ```text,ignore
133/// no-limit | <integer>
134/// ```
135///
136/// https://drafts.csswg.org/css-text-4/#hyphenate-limit-lines
137#[syntax(" no-limit | <integer> ")]
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 {}
155
156/// Represents the style value for `hyphenate-limit-zone` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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;
184
185/// Represents the style value for `hyphens` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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 {}
214
215/// Represents the style value for `letter-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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;
245
246/// Represents the style value for `line-break` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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 {}
275
276/// Represents the style value for `line-padding` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#line-padding).
277///
278/// The grammar is defined as:
279///
280/// ```text,ignore
281/// <length>
282/// ```
283///
284/// https://drafts.csswg.org/css-text-4/#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;
303
304/// Represents the style value for `overflow-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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 {}
333
334/// Represents the style value for `tab-size` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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-4/#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;
364
365/// Represents the style value for `text-align` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#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
373/// ```
374///
375/// https://drafts.csswg.org/css-text-4/#text-align
376#[syntax(" start | end | left | right | center | <string> | justify | match-parent | justify-all ")]
377#[derive(
378	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
379)]
380#[declaration_metadata(
381    initial = "start",
382    inherits,
383    applies_to = Block,
384    animation_type = Discrete,
385    percentages = Unknown,
386    property_group = Text,
387    computed_value_type = Unknown,
388    canonical_order = "n/a",
389)]
390#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
391#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align"))]
392#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
393#[derive(csskit_derives::NodeWithMetadata)]
394pub enum TextAlignStyleValue {}
395
396/// Represents the style value for `text-align-all` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-align-all).
397///
398/// The grammar is defined as:
399///
400/// ```text,ignore
401/// start | end | left | right | center | <string> | justify | match-parent
402/// ```
403///
404/// https://drafts.csswg.org/css-text-4/#text-align-all
405#[syntax(" start | end | left | right | center | <string> | justify | match-parent ")]
406#[derive(
407	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
408)]
409#[declaration_metadata(
410    initial = "start",
411    inherits,
412    applies_to = Block,
413    animation_type = Discrete,
414    property_group = Text,
415    computed_value_type = Unknown,
416    canonical_order = "n/a",
417)]
418#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
419#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align-all"))]
420#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
421#[derive(csskit_derives::NodeWithMetadata)]
422pub enum TextAlignAllStyleValue {}
423
424/// Represents the style value for `text-align-last` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-align-last).
425///
426/// The text-align-last CSS property sets the alignment of the last line of text before a forced line break.
427///
428/// The grammar is defined as:
429///
430/// ```text,ignore
431/// auto | start | end | left | right | center | justify | match-parent
432/// ```
433///
434/// https://drafts.csswg.org/css-text-4/#text-align-last
435#[syntax(" auto | start | end | left | right | center | justify | match-parent ")]
436#[derive(
437	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
438)]
439#[declaration_metadata(
440    initial = "auto",
441    inherits,
442    applies_to = Block,
443    animation_type = Discrete,
444    property_group = Text,
445    computed_value_type = Unknown,
446    canonical_order = "n/a",
447)]
448#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
449#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-align-last"))]
450#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
451#[derive(csskit_derives::NodeWithMetadata)]
452pub enum TextAlignLastStyleValue {}
453
454/// Represents the style value for `text-autospace` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-autospace).
455///
456/// 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.
457///
458/// The grammar is defined as:
459///
460/// ```text,ignore
461/// normal | <autospace> | auto
462/// ```
463///
464/// https://drafts.csswg.org/css-text-4/#text-autospace
465#[syntax(" normal | <autospace> | auto ")]
466#[derive(
467	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
468)]
469#[declaration_metadata(
470    initial = "normal",
471    inherits,
472    applies_to = Text,
473    animation_type = Discrete,
474    property_group = Text,
475    computed_value_type = Unknown,
476    canonical_order = "per grammar",
477)]
478#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
479#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-autospace"))]
480#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
481#[derive(csskit_derives::NodeWithMetadata)]
482pub enum TextAutospaceStyleValue {}
483
484/// Represents the style value for `text-fit` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-fit).
485///
486/// The grammar is defined as:
487///
488/// ```text,ignore
489/// [ none | grow | shrink ] [consistent | per-line | per-line-all]? <percentage>?
490/// ```
491///
492/// https://drafts.csswg.org/css-text-4/#text-fit
493#[syntax(" [ none | grow | shrink ] [consistent | per-line | per-line-all]? <percentage>? ")]
494#[derive(
495	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
496)]
497#[declaration_metadata(
498    initial = "none",
499    applies_to = Block,
500    animation_type = Discrete,
501    property_group = Text,
502    computed_value_type = Unknown,
503    canonical_order = "per grammar",
504)]
505#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
506#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-fit"))]
507#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
508#[derive(csskit_derives::NodeWithMetadata)]
509pub struct TextFitStyleValue;
510
511/// Represents the style value for `text-group-align` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-group-align).
512///
513/// The grammar is defined as:
514///
515/// ```text,ignore
516/// none | start | end | left | right | center
517/// ```
518///
519/// https://drafts.csswg.org/css-text-4/#text-group-align
520#[syntax(" none | start | end | left | right | center ")]
521#[derive(
522	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
523)]
524#[declaration_metadata(
525    initial = "none",
526    applies_to = Block,
527    animation_type = Discrete,
528    property_group = Text,
529    computed_value_type = Unknown,
530    canonical_order = "per grammar",
531)]
532#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
533#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-group-align"))]
534#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
535#[derive(csskit_derives::NodeWithMetadata)]
536pub enum TextGroupAlignStyleValue {}
537
538/// Represents the style value for `text-indent` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-indent).
539///
540/// The text-indent CSS property sets the size of the empty space (indentation) at the beginning of lines in a text.
541///
542/// The grammar is defined as:
543///
544/// ```text,ignore
545/// [ <length-percentage> ] && hanging? && each-line?
546/// ```
547///
548/// https://drafts.csswg.org/css-text-4/#text-indent
549#[syntax(" [ <length-percentage> ] && hanging? && each-line? ")]
550#[derive(
551	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
552)]
553#[declaration_metadata(
554    initial = "0",
555    inherits,
556    applies_to = Block,
557    animation_type = ByComputedValue,
558    percentages = Unknown,
559    property_group = Text,
560    computed_value_type = Unknown,
561    canonical_order = "per grammar",
562)]
563#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
564#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-indent"))]
565#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
566#[derive(csskit_derives::NodeWithMetadata)]
567pub struct TextIndentStyleValue;
568
569/// Represents the style value for `text-justify` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-justify).
570///
571/// The text-justify CSS property sets the justification method of text when text-align: justify is set.
572///
573/// The grammar is defined as:
574///
575/// ```text,ignore
576/// [ auto | none | inter-word | inter-character | ruby ] || no-compress
577/// ```
578///
579/// https://drafts.csswg.org/css-text-4/#text-justify
580#[syntax(" [ auto | none | inter-word | inter-character | ruby ] || no-compress ")]
581#[derive(
582	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
583)]
584#[declaration_metadata(
585    initial = "auto",
586    inherits,
587    applies_to = Text,
588    animation_type = Discrete,
589    property_group = Text,
590    computed_value_type = Unknown,
591    canonical_order = "n/a",
592)]
593#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
594#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-justify"))]
595#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
596#[derive(csskit_derives::NodeWithMetadata)]
597pub enum TextJustifyStyleValue {}
598
599// /// Represents the style value for `text-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-spacing).
600// ///
601// /// The grammar is defined as:
602// ///
603// /// ```text,ignore
604// /// none | auto | <spacing-trim> || <autospace>
605// /// ```
606// ///
607// /// https://drafts.csswg.org/css-text-4/#text-spacing
608// #[syntax(" none | auto | <spacing-trim> || <autospace> ")]
609// #[derive(
610//     Parse,
611//     Peek,
612//     ToSpan,
613//     ToCursors,
614//     DeclarationMetadata,
615//     SemanticEq,
616//     Debug,
617//     Clone,
618//     PartialEq,
619//     Eq,
620//     PartialOrd,
621//     Ord,
622//     Hash,
623// )]
624// #[declaration_metadata(
625//     initial = "see individual properties",
626//     inherits,
627//     applies_to = Text,
628//     animation_type = Discrete,
629//     property_group = Text,
630//     computed_value_type = Unknown,
631//     canonical_order = "per grammar",
632// )]
633// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
634// #[cfg_attr(
635//     feature = "css_feature_data",
636//     derive(ToCSSFeature),
637//     css_feature("css.properties.text-spacing")
638// )]
639// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
640// #[derive(csskit_derives::NodeWithMetadata)]
641// pub struct TextSpacingStyleValue;
642
643/// Represents the style value for `text-spacing-trim` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-spacing-trim).
644///
645/// The text-spacing-trim CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters.
646///
647/// The grammar is defined as:
648///
649/// ```text,ignore
650/// <spacing-trim> | auto
651/// ```
652///
653/// https://drafts.csswg.org/css-text-4/#text-spacing-trim
654#[syntax(" <spacing-trim> | auto ")]
655#[derive(
656	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
657)]
658#[declaration_metadata(
659    initial = "normal",
660    inherits,
661    applies_to = Text,
662    animation_type = Discrete,
663    property_group = Text,
664    computed_value_type = Unknown,
665    canonical_order = "per grammar",
666)]
667#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
668#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-spacing-trim"))]
669#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
670#[derive(csskit_derives::NodeWithMetadata)]
671pub struct TextSpacingTrimStyleValue;
672
673/// Represents the style value for `text-transform` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-transform).
674///
675/// The text-transform CSS property sets text case and capitalization.
676///
677/// The grammar is defined as:
678///
679/// ```text,ignore
680/// none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto
681/// ```
682///
683/// https://drafts.csswg.org/css-text-4/#text-transform
684#[syntax(" none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto ")]
685#[derive(
686	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
687)]
688#[declaration_metadata(
689    initial = "none",
690    inherits,
691    applies_to = Text,
692    animation_type = Discrete,
693    property_group = Text,
694    computed_value_type = Unknown,
695    canonical_order = "n/a",
696)]
697#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
698#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-transform"))]
699#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
700#[derive(csskit_derives::NodeWithMetadata)]
701pub enum TextTransformStyleValue {}
702
703/// Represents the style value for `text-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap).
704///
705/// 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.
706///
707/// The grammar is defined as:
708///
709/// ```text,ignore
710/// <'text-wrap-mode'> || <'text-wrap-style'>
711/// ```
712///
713/// https://drafts.csswg.org/css-text-4/#text-wrap
714#[syntax(" <'text-wrap-mode'> || <'text-wrap-style'> ")]
715#[derive(
716	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
717)]
718#[declaration_metadata(
719    initial = "wrap",
720    inherits = Unknown,
721    applies_to = Unknown,
722    animation_type = Unknown,
723    percentages = Unknown,
724    longhands = TextWrapMode|TextWrapStyle,
725    property_group = Text,
726    computed_value_type = Unknown,
727    canonical_order = "per grammar",
728)]
729#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
730#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-wrap"))]
731#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
732#[derive(csskit_derives::NodeWithMetadata)]
733pub struct TextWrapStyleValue;
734
735/// Represents the style value for `text-wrap-mode` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap-mode).
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/// wrap | nowrap
743/// ```
744///
745/// https://drafts.csswg.org/css-text-4/#text-wrap-mode
746#[syntax(" wrap | nowrap ")]
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,
753    applies_to = Text,
754    animation_type = Discrete,
755    shorthand_group = TextWrap,
756    property_group = Text,
757    computed_value_type = Unknown,
758    canonical_order = "per grammar",
759)]
760#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
761#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-wrap-mode"))]
762#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
763#[derive(csskit_derives::NodeWithMetadata)]
764pub enum TextWrapModeStyleValue {}
765
766/// Represents the style value for `text-wrap-style` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#text-wrap-style).
767///
768/// 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.
769///
770/// The grammar is defined as:
771///
772/// ```text,ignore
773/// auto | balance | stable | pretty | avoid-orphans
774/// ```
775///
776/// https://drafts.csswg.org/css-text-4/#text-wrap-style
777#[syntax(" auto | balance | stable | pretty | avoid-orphans ")]
778#[derive(
779	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
780)]
781#[declaration_metadata(
782    initial = "auto",
783    inherits,
784    applies_to = Unknown,
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-style"))]
793#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
794#[derive(csskit_derives::NodeWithMetadata)]
795pub enum TextWrapStyleStyleValue {}
796
797// /// Represents the style value for `white-space` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space).
798// ///
799// /// 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.
800// ///
801// /// The grammar is defined as:
802// ///
803// /// ```text,ignore
804// /// normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'>
805// /// ```
806// ///
807// /// https://drafts.csswg.org/css-text-4/#white-space
808// #[syntax(
809//     " normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'> "
810// )]
811// #[derive(
812//     Parse,
813//     Peek,
814//     ToSpan,
815//     ToCursors,
816//     DeclarationMetadata,
817//     SemanticEq,
818//     Debug,
819//     Clone,
820//     PartialEq,
821//     Eq,
822//     PartialOrd,
823//     Ord,
824//     Hash,
825// )]
826// #[declaration_metadata(
827//     initial = "normal",
828//     inherits = Unknown,
829//     applies_to = Text,
830//     animation_type = Discrete,
831//     property_group = Text,
832//     computed_value_type = Unknown,
833//     canonical_order = "n/a",
834// )]
835// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
836// #[cfg_attr(
837//     feature = "css_feature_data",
838//     derive(ToCSSFeature),
839//     css_feature("css.properties.white-space")
840// )]
841// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
842// #[derive(csskit_derives::NodeWithMetadata)]
843// pub enum WhiteSpaceStyleValue {}
844
845/// Represents the style value for `white-space-collapse` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space-collapse).
846///
847/// 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.
848///
849/// The grammar is defined as:
850///
851/// ```text,ignore
852/// collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces
853/// ```
854///
855/// https://drafts.csswg.org/css-text-4/#white-space-collapse
856#[syntax(" collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces ")]
857#[derive(
858	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
859)]
860#[declaration_metadata(
861    initial = "collapse",
862    inherits,
863    applies_to = Text,
864    animation_type = Discrete,
865    property_group = Text,
866    computed_value_type = Unknown,
867    canonical_order = "per grammar",
868)]
869#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
870#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.white-space-collapse"))]
871#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
872#[derive(csskit_derives::NodeWithMetadata)]
873pub enum WhiteSpaceCollapseStyleValue {}
874
875/// Represents the style value for `white-space-trim` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#white-space-trim).
876///
877/// The grammar is defined as:
878///
879/// ```text,ignore
880/// none | discard-before || discard-after || discard-inner
881/// ```
882///
883/// https://drafts.csswg.org/css-text-4/#white-space-trim
884#[syntax(" none | discard-before || discard-after || discard-inner ")]
885#[derive(
886	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
887)]
888#[declaration_metadata(
889    initial = "none",
890    applies_to = Unknown,
891    animation_type = Discrete,
892    property_group = Text,
893    computed_value_type = Unknown,
894    canonical_order = "per grammar",
895)]
896#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
897#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.white-space-trim"))]
898#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
899#[derive(csskit_derives::NodeWithMetadata)]
900pub struct WhiteSpaceTrimStyleValue;
901
902/// Represents the style value for `word-break` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-break).
903///
904/// The word-break CSS property sets how lines break within words.
905///
906/// The grammar is defined as:
907///
908/// ```text,ignore
909/// normal | break-all | keep-all | manual | auto-phrase | break-word
910/// ```
911///
912/// https://drafts.csswg.org/css-text-4/#word-break
913#[syntax(" normal | break-all | keep-all | manual | auto-phrase | break-word ")]
914#[derive(
915	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
916)]
917#[declaration_metadata(
918    initial = "normal",
919    inherits,
920    applies_to = Text,
921    animation_type = Discrete,
922    property_group = Text,
923    computed_value_type = Unknown,
924    canonical_order = "n/a",
925)]
926#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
927#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-break"))]
928#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
929#[derive(csskit_derives::NodeWithMetadata)]
930pub enum WordBreakStyleValue {}
931
932/// Represents the style value for `word-space-transform` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-space-transform).
933///
934/// The grammar is defined as:
935///
936/// ```text,ignore
937/// none | [ space | ideographic-space ] && auto-phrase?
938/// ```
939///
940/// https://drafts.csswg.org/css-text-4/#word-space-transform
941#[syntax(" none | [ space | ideographic-space ] && auto-phrase? ")]
942#[derive(
943	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
944)]
945#[declaration_metadata(
946    initial = "none",
947    inherits,
948    applies_to = Text,
949    animation_type = Discrete,
950    property_group = Text,
951    computed_value_type = AsSpecified,
952    canonical_order = "per grammar",
953)]
954#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
955#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-space-transform"))]
956#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
957#[derive(csskit_derives::NodeWithMetadata)]
958pub enum WordSpaceTransformStyleValue {}
959
960/// Represents the style value for `word-spacing` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-spacing).
961///
962/// The word-spacing CSS property sets the amount of white space between words.
963///
964/// The grammar is defined as:
965///
966/// ```text,ignore
967/// normal | <length-percentage>
968/// ```
969///
970/// https://drafts.csswg.org/css-text-4/#word-spacing
971#[syntax(" normal | <length-percentage> ")]
972#[derive(
973	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
974)]
975#[declaration_metadata(
976    initial = "normal",
977    inherits,
978    applies_to = Text,
979    animation_type = ByComputedValue,
980    percentages = Unknown,
981    property_group = Text,
982    computed_value_type = AbsoluteLengthOrPercentage,
983    canonical_order = "n/a",
984)]
985#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
986#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-spacing"))]
987#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
988#[derive(csskit_derives::NodeWithMetadata)]
989pub struct WordSpacingStyleValue;
990
991/// Represents the style value for `word-wrap` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#word-wrap).
992///
993/// The grammar is defined as:
994///
995/// ```text,ignore
996/// normal | break-word | anywhere
997/// ```
998///
999/// https://drafts.csswg.org/css-text-4/#word-wrap
1000#[syntax(" normal | break-word | anywhere ")]
1001#[derive(
1002	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1003)]
1004#[declaration_metadata(
1005    initial = "normal",
1006    inherits,
1007    applies_to = Text,
1008    animation_type = Discrete,
1009    property_group = Text,
1010    computed_value_type = Unknown,
1011    canonical_order = "n/a",
1012)]
1013#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1014#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.word-wrap"))]
1015#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1016#[derive(csskit_derives::NodeWithMetadata)]
1017pub enum WordWrapStyleValue {}
1018
1019/// Represents the style value for `wrap-after` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-after).
1020///
1021/// The grammar is defined as:
1022///
1023/// ```text,ignore
1024/// auto | avoid | avoid-line | avoid-flex | line | flex
1025/// ```
1026///
1027/// https://drafts.csswg.org/css-text-4/#wrap-after
1028#[syntax(" auto | avoid | avoid-line | avoid-flex | line | flex ")]
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-after"))]
1042#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1043#[derive(csskit_derives::NodeWithMetadata)]
1044pub enum WrapAfterStyleValue {}
1045
1046/// Represents the style value for `wrap-before` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-before).
1047///
1048/// The grammar is defined as:
1049///
1050/// ```text,ignore
1051/// auto | avoid | avoid-line | avoid-flex | line | flex
1052/// ```
1053///
1054/// https://drafts.csswg.org/css-text-4/#wrap-before
1055#[syntax(" auto | avoid | avoid-line | avoid-flex | line | flex ")]
1056#[derive(
1057	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1058)]
1059#[declaration_metadata(
1060    initial = "auto",
1061    applies_to = Unknown,
1062    animation_type = Discrete,
1063    property_group = Text,
1064    computed_value_type = Unknown,
1065    canonical_order = "per grammar",
1066)]
1067#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1068#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.wrap-before"))]
1069#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1070#[derive(csskit_derives::NodeWithMetadata)]
1071pub enum WrapBeforeStyleValue {}
1072
1073/// Represents the style value for `wrap-inside` as defined in [css-text-4](https://drafts.csswg.org/css-text-4/#wrap-inside).
1074///
1075/// The grammar is defined as:
1076///
1077/// ```text,ignore
1078/// auto | avoid
1079/// ```
1080///
1081/// https://drafts.csswg.org/css-text-4/#wrap-inside
1082#[syntax(" auto | avoid ")]
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-inside"))]
1096#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1097#[derive(csskit_derives::NodeWithMetadata)]
1098pub enum WrapInsideStyleValue {}