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