Skip to main content

css_ast/values/borders/
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-borders-4/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10/// Represents the style value for `border` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border).
11///
12/// The border CSS property sets the color, style, and width of the line around an element.
13///
14/// The grammar is defined as:
15///
16/// ```text,ignore
17/// <line-width> || <line-style> || <color>
18/// ```
19///
20/// https://drafts.csswg.org/css-borders-4/#border
21#[syntax(" <line-width> || <line-style> || <color> ")]
22#[derive(
23	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
24)]
25#[declaration_metadata(
26    initial = "see individual properties",
27    inherits = Unknown,
28    applies_to = Unknown,
29    animation_type = Unknown,
30    percentages = Unknown,
31    longhands = BorderBottomColor|BorderBottomStyle|BorderBottomWidth|BorderColor|BorderLeftColor|BorderLeftStyle|BorderLeftWidth|BorderRightColor|BorderRightStyle|BorderRightWidth|BorderStyle|BorderTopColor|BorderTopStyle|BorderTopWidth|BorderWidth,
32    property_group = Borders,
33    computed_value_type = Unknown,
34    canonical_order = "per grammar",
35    box_side = Top|Bottom|Left|Right,
36    box_portion = Border,
37)]
38#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
39#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border"))]
40#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
41#[derive(csskit_derives::NodeWithMetadata)]
42pub struct BorderStyleValue<'a>;
43
44/// Represents the style value for `border-block` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block).
45///
46/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
47///
48/// The grammar is defined as:
49///
50/// ```text,ignore
51/// <'border-block-start'>
52/// ```
53///
54/// https://drafts.csswg.org/css-borders-4/#border-block
55#[syntax(" <'border-block-start'> ")]
56#[derive(
57	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
58)]
59#[declaration_metadata(
60    initial = "see individual properties",
61    inherits = Unknown,
62    applies_to = Unknown,
63    animation_type = Unknown,
64    percentages = Unknown,
65    longhands = BorderBlockColor|BorderBlockStyle|BorderBlockWidth,
66    property_group = Borders,
67    computed_value_type = Unknown,
68    canonical_order = "per grammar",
69    box_side = BlockStart|BlockEnd,
70    box_portion = Border,
71)]
72#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
73#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block"))]
74#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
75#[derive(csskit_derives::NodeWithMetadata)]
76pub struct BorderBlockStyleValue<'a>;
77
78/// Represents the style value for `border-block-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-clip).
79///
80/// The grammar is defined as:
81///
82/// ```text,ignore
83/// <'border-top-clip'>
84/// ```
85///
86/// https://drafts.csswg.org/css-borders-4/#border-block-clip
87#[syntax(" <'border-top-clip'> ")]
88#[derive(
89	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
90)]
91#[declaration_metadata(
92    initial = "see individual properties",
93    inherits = Unknown,
94    applies_to = Unknown,
95    animation_type = Unknown,
96    percentages = Unknown,
97    property_group = Borders,
98    computed_value_type = Unknown,
99    canonical_order = "per grammar",
100    box_side = BlockStart|BlockEnd,
101    box_portion = Border,
102)]
103#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
104#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-clip"))]
105#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
106#[derive(csskit_derives::NodeWithMetadata)]
107pub struct BorderBlockClipStyleValue<'a>;
108
109/// Represents the style value for `border-block-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-color).
110///
111/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
112///
113/// The grammar is defined as:
114///
115/// ```text,ignore
116/// <'border-top-color'>{1,2}
117/// ```
118///
119/// https://drafts.csswg.org/css-borders-4/#border-block-color
120#[syntax(" <'border-top-color'>{1,2} ")]
121#[derive(
122	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
123)]
124#[declaration_metadata(
125    initial = "see individual properties",
126    inherits = Unknown,
127    applies_to = Unknown,
128    animation_type = Unknown,
129    percentages = Unknown,
130    shorthand_group = BorderBlock,
131    property_group = Borders,
132    computed_value_type = Unknown,
133    canonical_order = "per grammar",
134    box_side = BlockStart|BlockEnd,
135    box_portion = Border,
136)]
137#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
138#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-color"))]
139#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
140#[derive(csskit_derives::NodeWithMetadata)]
141pub struct BorderBlockColorStyleValue<'a>;
142
143/// Represents the style value for `border-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end).
144///
145/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
146///
147/// The grammar is defined as:
148///
149/// ```text,ignore
150/// <line-width> || <line-style> || <color>
151/// ```
152///
153/// https://drafts.csswg.org/css-borders-4/#border-block-end
154#[syntax(" <line-width> || <line-style> || <color> ")]
155#[derive(
156	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
157)]
158#[declaration_metadata(
159    initial = "See individual properties",
160    applies_to = Unknown,
161    animation_type = Unknown,
162    longhands = BorderBlockEndColor|BorderBlockEndStyle|BorderBlockEndWidth,
163    property_group = Borders,
164    computed_value_type = Unknown,
165    canonical_order = "per grammar",
166    box_side = BlockEnd,
167    box_portion = Border,
168)]
169#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
170#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end"))]
171#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
172#[derive(csskit_derives::NodeWithMetadata)]
173pub struct BorderBlockEndStyleValue<'a>;
174
175/// Represents the style value for `border-block-end-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-clip).
176///
177/// The grammar is defined as:
178///
179/// ```text,ignore
180/// none | [ <length-percentage [0,∞]> | <flex> ]+
181/// ```
182///
183/// https://drafts.csswg.org/css-borders-4/#border-block-end-clip
184#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
185#[derive(
186	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
187)]
188#[declaration_metadata(
189    initial = "none",
190    applies_to = Elements,
191    animation_type = ByComputedValue,
192    percentages = BorderEdge,
193    property_group = Borders,
194    computed_value_type = SpecifiedWithAbsoluteLengths,
195    canonical_order = "per grammar",
196    logical_property_group = BorderClip,
197    box_portion = Border,
198)]
199#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
200#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-clip"))]
201#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
202#[derive(csskit_derives::NodeWithMetadata)]
203pub struct BorderBlockEndClipStyleValue<'a>;
204
205/// Represents the style value for `border-block-end-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-color).
206///
207/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
208///
209/// The grammar is defined as:
210///
211/// ```text,ignore
212/// <color> | <image-1D>
213/// ```
214///
215/// https://drafts.csswg.org/css-borders-4/#border-block-end-color
216#[syntax(" <color> | <image-1D> ")]
217#[derive(
218	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
219)]
220#[declaration_metadata(
221    initial = "currentcolor",
222    applies_to = Unknown,
223    animation_type = Unknown,
224    shorthand_group = BorderBlockEnd,
225    property_group = Borders,
226    computed_value_type = Unknown,
227    canonical_order = "per grammar",
228    logical_property_group = BorderColor,
229    box_portion = Border,
230)]
231#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
232#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-color"))]
233#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
234#[derive(csskit_derives::NodeWithMetadata)]
235pub enum BorderBlockEndColorStyleValue<'a> {}
236
237/// Represents the style value for `border-block-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-radius).
238///
239/// The grammar is defined as:
240///
241/// ```text,ignore
242/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
243/// ```
244///
245/// https://drafts.csswg.org/css-borders-4/#border-block-end-radius
246#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
247#[derive(
248	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
249)]
250#[declaration_metadata(
251    initial = "0",
252    applies_to = Elements,
253    animation_type = Unknown,
254    percentages = BorderBox,
255    property_group = Borders,
256    computed_value_type = Unknown,
257    canonical_order = "per grammar",
258    box_portion = Border,
259)]
260#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
261#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-radius"))]
262#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
263#[derive(csskit_derives::NodeWithMetadata)]
264pub struct BorderBlockEndRadiusStyleValue;
265
266/// Represents the style value for `border-block-end-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-style).
267///
268/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
269///
270/// The grammar is defined as:
271///
272/// ```text,ignore
273/// <line-style>
274/// ```
275///
276/// https://drafts.csswg.org/css-borders-4/#border-block-end-style
277#[syntax(" <line-style> ")]
278#[derive(
279	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
280)]
281#[declaration_metadata(
282    initial = "none",
283    applies_to = Unknown,
284    animation_type = Discrete,
285    shorthand_group = BorderBlockEnd,
286    property_group = Borders,
287    computed_value_type = Unknown,
288    canonical_order = "per grammar",
289    logical_property_group = BorderStyle,
290    box_portion = Border,
291)]
292#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
293#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-style"))]
294#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
295#[derive(csskit_derives::NodeWithMetadata)]
296pub struct BorderBlockEndStyleStyleValue;
297
298/// Represents the style value for `border-block-end-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-width).
299///
300/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
301///
302/// The grammar is defined as:
303///
304/// ```text,ignore
305/// <line-width>
306/// ```
307///
308/// https://drafts.csswg.org/css-borders-4/#border-block-end-width
309#[syntax(" <line-width> ")]
310#[derive(
311	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
312)]
313#[declaration_metadata(
314    initial = "medium",
315    applies_to = Unknown,
316    animation_type = ByComputedValue,
317    shorthand_group = BorderBlockEnd,
318    property_group = Borders,
319    computed_value_type = AbsoluteLength,
320    canonical_order = "per grammar",
321    logical_property_group = BorderWidth,
322    box_portion = Border,
323)]
324#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
325#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-width"))]
326#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
327#[derive(csskit_derives::NodeWithMetadata)]
328pub struct BorderBlockEndWidthStyleValue;
329
330/// Represents the style value for `border-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start).
331///
332/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
333///
334/// The grammar is defined as:
335///
336/// ```text,ignore
337/// <line-width> || <line-style> || <color>
338/// ```
339///
340/// https://drafts.csswg.org/css-borders-4/#border-block-start
341#[syntax(" <line-width> || <line-style> || <color> ")]
342#[derive(
343	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
344)]
345#[declaration_metadata(
346    initial = "See individual properties",
347    applies_to = Unknown,
348    animation_type = Unknown,
349    longhands = BorderBlockStartColor|BorderBlockStartStyle|BorderBlockStartWidth,
350    property_group = Borders,
351    computed_value_type = Unknown,
352    canonical_order = "per grammar",
353    box_side = BlockStart,
354    box_portion = Border,
355)]
356#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
357#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start"))]
358#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
359#[derive(csskit_derives::NodeWithMetadata)]
360pub struct BorderBlockStartStyleValue<'a>;
361
362/// Represents the style value for `border-block-start-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-clip).
363///
364/// The grammar is defined as:
365///
366/// ```text,ignore
367/// none | [ <length-percentage [0,∞]> | <flex> ]+
368/// ```
369///
370/// https://drafts.csswg.org/css-borders-4/#border-block-start-clip
371#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
372#[derive(
373	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
374)]
375#[declaration_metadata(
376    initial = "none",
377    applies_to = Elements,
378    animation_type = ByComputedValue,
379    percentages = BorderEdge,
380    property_group = Borders,
381    computed_value_type = SpecifiedWithAbsoluteLengths,
382    canonical_order = "per grammar",
383    logical_property_group = BorderClip,
384    box_portion = Border,
385)]
386#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
387#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-clip"))]
388#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
389#[derive(csskit_derives::NodeWithMetadata)]
390pub struct BorderBlockStartClipStyleValue<'a>;
391
392/// Represents the style value for `border-block-start-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-color).
393///
394/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
395///
396/// The grammar is defined as:
397///
398/// ```text,ignore
399/// <color> | <image-1D>
400/// ```
401///
402/// https://drafts.csswg.org/css-borders-4/#border-block-start-color
403#[syntax(" <color> | <image-1D> ")]
404#[derive(
405	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
406)]
407#[declaration_metadata(
408    initial = "currentcolor",
409    applies_to = Unknown,
410    animation_type = Unknown,
411    shorthand_group = BorderBlockStart,
412    property_group = Borders,
413    computed_value_type = Unknown,
414    canonical_order = "per grammar",
415    logical_property_group = BorderColor,
416    box_portion = Border,
417)]
418#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
419#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-color"))]
420#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
421#[derive(csskit_derives::NodeWithMetadata)]
422pub enum BorderBlockStartColorStyleValue<'a> {}
423
424/// Represents the style value for `border-block-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-radius).
425///
426/// The grammar is defined as:
427///
428/// ```text,ignore
429/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
430/// ```
431///
432/// https://drafts.csswg.org/css-borders-4/#border-block-start-radius
433#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
434#[derive(
435	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
436)]
437#[declaration_metadata(
438    initial = "0",
439    applies_to = Elements,
440    animation_type = Unknown,
441    percentages = BorderBox,
442    property_group = Borders,
443    computed_value_type = Unknown,
444    canonical_order = "per grammar",
445    box_portion = Border,
446)]
447#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
448#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-radius"))]
449#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
450#[derive(csskit_derives::NodeWithMetadata)]
451pub struct BorderBlockStartRadiusStyleValue;
452
453/// Represents the style value for `border-block-start-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-style).
454///
455/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
456///
457/// The grammar is defined as:
458///
459/// ```text,ignore
460/// <line-style>
461/// ```
462///
463/// https://drafts.csswg.org/css-borders-4/#border-block-start-style
464#[syntax(" <line-style> ")]
465#[derive(
466	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
467)]
468#[declaration_metadata(
469    initial = "none",
470    applies_to = Unknown,
471    animation_type = Discrete,
472    shorthand_group = BorderBlockStart,
473    property_group = Borders,
474    computed_value_type = Unknown,
475    canonical_order = "per grammar",
476    logical_property_group = BorderStyle,
477    box_portion = Border,
478)]
479#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
480#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-style"))]
481#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
482#[derive(csskit_derives::NodeWithMetadata)]
483pub struct BorderBlockStartStyleStyleValue;
484
485/// Represents the style value for `border-block-start-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-width).
486///
487/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
488///
489/// The grammar is defined as:
490///
491/// ```text,ignore
492/// <line-width>
493/// ```
494///
495/// https://drafts.csswg.org/css-borders-4/#border-block-start-width
496#[syntax(" <line-width> ")]
497#[derive(
498	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
499)]
500#[declaration_metadata(
501    initial = "medium",
502    applies_to = Unknown,
503    animation_type = ByComputedValue,
504    shorthand_group = BorderBlockStart,
505    property_group = Borders,
506    computed_value_type = AbsoluteLength,
507    canonical_order = "per grammar",
508    logical_property_group = BorderWidth,
509    box_portion = Border,
510)]
511#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
512#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-width"))]
513#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
514#[derive(csskit_derives::NodeWithMetadata)]
515pub struct BorderBlockStartWidthStyleValue;
516
517/// Represents the style value for `border-block-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-style).
518///
519/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
520///
521/// The grammar is defined as:
522///
523/// ```text,ignore
524/// <'border-top-style'>{1,2}
525/// ```
526///
527/// https://drafts.csswg.org/css-borders-4/#border-block-style
528#[syntax(" <'border-top-style'>{1,2} ")]
529#[derive(
530	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
531)]
532#[declaration_metadata(
533    initial = "see individual properties",
534    inherits = Unknown,
535    applies_to = Unknown,
536    animation_type = Unknown,
537    percentages = Unknown,
538    shorthand_group = BorderBlock,
539    property_group = Borders,
540    computed_value_type = Unknown,
541    canonical_order = "per grammar",
542    box_side = BlockStart|BlockEnd,
543    box_portion = Border,
544)]
545#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
546#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-style"))]
547#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
548#[derive(csskit_derives::NodeWithMetadata)]
549pub struct BorderBlockStyleStyleValue;
550
551/// Represents the style value for `border-block-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-width).
552///
553/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
554///
555/// The grammar is defined as:
556///
557/// ```text,ignore
558/// <'border-top-width'>{1,2}
559/// ```
560///
561/// https://drafts.csswg.org/css-borders-4/#border-block-width
562#[syntax(" <'border-top-width'>{1,2} ")]
563#[derive(
564	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
565)]
566#[declaration_metadata(
567    initial = "see individual properties",
568    inherits = Unknown,
569    applies_to = Unknown,
570    animation_type = Unknown,
571    percentages = Unknown,
572    shorthand_group = BorderBlock,
573    property_group = Borders,
574    computed_value_type = Unknown,
575    canonical_order = "per grammar",
576    box_side = BlockStart|BlockEnd,
577    box_portion = Border,
578)]
579#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
580#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-width"))]
581#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
582#[derive(csskit_derives::NodeWithMetadata)]
583pub struct BorderBlockWidthStyleValue;
584
585/// Represents the style value for `border-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom).
586///
587/// The border CSS property sets the color, style, and width of the line around an element.
588///
589/// The grammar is defined as:
590///
591/// ```text,ignore
592/// <line-width> || <line-style> || <color>
593/// ```
594///
595/// https://drafts.csswg.org/css-borders-4/#border-bottom
596#[syntax(" <line-width> || <line-style> || <color> ")]
597#[derive(
598	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
599)]
600#[declaration_metadata(
601    initial = "See individual properties",
602    applies_to = Unknown,
603    animation_type = Unknown,
604    longhands = BorderBottomColor|BorderBottomStyle|BorderBottomWidth,
605    property_group = Borders,
606    computed_value_type = Unknown,
607    canonical_order = "per grammar",
608    box_side = Bottom,
609    box_portion = Border,
610)]
611#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
612#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom"))]
613#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
614#[derive(csskit_derives::NodeWithMetadata)]
615pub struct BorderBottomStyleValue<'a>;
616
617/// Represents the style value for `border-bottom-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-clip).
618///
619/// The grammar is defined as:
620///
621/// ```text,ignore
622/// none | [ <length-percentage [0,∞]> | <flex> ]+
623/// ```
624///
625/// https://drafts.csswg.org/css-borders-4/#border-bottom-clip
626#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
627#[derive(
628	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
629)]
630#[declaration_metadata(
631    initial = "none",
632    applies_to = Elements,
633    animation_type = ByComputedValue,
634    percentages = BorderEdge,
635    property_group = Borders,
636    computed_value_type = SpecifiedWithAbsoluteLengths,
637    canonical_order = "per grammar",
638    logical_property_group = BorderClip,
639    box_portion = Border,
640)]
641#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
642#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-clip"))]
643#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
644#[derive(csskit_derives::NodeWithMetadata)]
645pub struct BorderBottomClipStyleValue<'a>;
646
647/// Represents the style value for `border-bottom-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-color).
648///
649/// The border CSS property sets the color, style, and width of the line around an element.
650///
651/// The grammar is defined as:
652///
653/// ```text,ignore
654/// <color> | <image-1D>
655/// ```
656///
657/// https://drafts.csswg.org/css-borders-4/#border-bottom-color
658#[syntax(" <color> | <image-1D> ")]
659#[derive(
660	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
661)]
662#[declaration_metadata(
663    initial = "currentcolor",
664    applies_to = Unknown,
665    animation_type = Unknown,
666    shorthand_group = Border,
667    property_group = Borders,
668    computed_value_type = Unknown,
669    canonical_order = "per grammar",
670    logical_property_group = BorderColor,
671    box_portion = Border,
672)]
673#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
674#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-color"))]
675#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
676#[derive(csskit_derives::NodeWithMetadata)]
677pub enum BorderBottomColorStyleValue<'a> {}
678
679/// Represents the style value for `border-bottom-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-left-radius).
680///
681/// The border-radius CSS property rounds the corners of the border drawn around an element.
682///
683/// The grammar is defined as:
684///
685/// ```text,ignore
686/// <border-radius>
687/// ```
688///
689/// https://drafts.csswg.org/css-borders-4/#border-bottom-left-radius
690#[syntax(" <border-radius> ")]
691#[derive(
692	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
693)]
694#[declaration_metadata(
695    initial = "0",
696    applies_to = Elements,
697    animation_type = ByComputedValue,
698    percentages = BorderBox,
699    shorthand_group = BorderRadius,
700    property_group = Borders,
701    computed_value_type = Unknown,
702    canonical_order = "per grammar",
703    logical_property_group = BorderRadius,
704    box_side = Bottom|Left,
705    box_portion = Border,
706)]
707#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
708#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-left-radius"))]
709#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
710#[derive(csskit_derives::NodeWithMetadata)]
711pub struct BorderBottomLeftRadiusStyleValue;
712
713/// Represents the style value for `border-bottom-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-radius).
714///
715/// The grammar is defined as:
716///
717/// ```text,ignore
718/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
719/// ```
720///
721/// https://drafts.csswg.org/css-borders-4/#border-bottom-radius
722#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
723#[derive(
724	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
725)]
726#[declaration_metadata(
727    initial = "0",
728    applies_to = Elements,
729    animation_type = Unknown,
730    percentages = BorderBox,
731    property_group = Borders,
732    computed_value_type = Unknown,
733    canonical_order = "per grammar",
734    box_portion = Border,
735)]
736#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
737#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-radius"))]
738#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
739#[derive(csskit_derives::NodeWithMetadata)]
740pub struct BorderBottomRadiusStyleValue;
741
742/// Represents the style value for `border-bottom-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-right-radius).
743///
744/// The border-radius CSS property rounds the corners of the border drawn around an element.
745///
746/// The grammar is defined as:
747///
748/// ```text,ignore
749/// <border-radius>
750/// ```
751///
752/// https://drafts.csswg.org/css-borders-4/#border-bottom-right-radius
753#[syntax(" <border-radius> ")]
754#[derive(
755	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
756)]
757#[declaration_metadata(
758    initial = "0",
759    applies_to = Elements,
760    animation_type = ByComputedValue,
761    percentages = BorderBox,
762    shorthand_group = BorderRadius,
763    property_group = Borders,
764    computed_value_type = Unknown,
765    canonical_order = "per grammar",
766    logical_property_group = BorderRadius,
767    box_side = Bottom|Right,
768    box_portion = Border,
769)]
770#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
771#[cfg_attr(
772	feature = "css_feature_data",
773	derive(ToCSSFeature),
774	css_feature("css.properties.border-bottom-right-radius")
775)]
776#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
777#[derive(csskit_derives::NodeWithMetadata)]
778pub struct BorderBottomRightRadiusStyleValue;
779
780/// Represents the style value for `border-bottom-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-style).
781///
782/// The border CSS property sets the color, style, and width of the line around an element.
783///
784/// The grammar is defined as:
785///
786/// ```text,ignore
787/// <line-style>
788/// ```
789///
790/// https://drafts.csswg.org/css-borders-4/#border-bottom-style
791#[syntax(" <line-style> ")]
792#[derive(
793	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
794)]
795#[declaration_metadata(
796    initial = "none",
797    applies_to = Unknown,
798    animation_type = Discrete,
799    shorthand_group = Border,
800    property_group = Borders,
801    computed_value_type = Unknown,
802    canonical_order = "per grammar",
803    logical_property_group = BorderStyle,
804    box_portion = Border,
805)]
806#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
807#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-style"))]
808#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
809#[derive(csskit_derives::NodeWithMetadata)]
810pub struct BorderBottomStyleStyleValue;
811
812/// Represents the style value for `border-bottom-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-width).
813///
814/// The border CSS property sets the color, style, and width of the line around an element.
815///
816/// The grammar is defined as:
817///
818/// ```text,ignore
819/// <line-width>
820/// ```
821///
822/// https://drafts.csswg.org/css-borders-4/#border-bottom-width
823#[syntax(" <line-width> ")]
824#[derive(
825	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
826)]
827#[declaration_metadata(
828    initial = "medium",
829    applies_to = Unknown,
830    animation_type = ByComputedValue,
831    shorthand_group = Border,
832    property_group = Borders,
833    computed_value_type = AbsoluteLength,
834    canonical_order = "per grammar",
835    logical_property_group = BorderWidth,
836    box_portion = Border,
837)]
838#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
839#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-width"))]
840#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
841#[derive(csskit_derives::NodeWithMetadata)]
842pub struct BorderBottomWidthStyleValue;
843
844/// Represents the style value for `border-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip).
845///
846/// The grammar is defined as:
847///
848/// ```text,ignore
849/// <'border-top-clip'>
850/// ```
851///
852/// https://drafts.csswg.org/css-borders-4/#border-clip
853#[syntax(" <'border-top-clip'> ")]
854#[derive(
855	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
856)]
857#[declaration_metadata(
858    initial = "see individual properties",
859    inherits = Unknown,
860    applies_to = Unknown,
861    animation_type = Unknown,
862    percentages = Unknown,
863    property_group = Borders,
864    computed_value_type = Unknown,
865    canonical_order = "per grammar",
866    box_portion = Border,
867)]
868#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
869#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip"))]
870#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
871#[derive(csskit_derives::NodeWithMetadata)]
872pub struct BorderClipStyleValue<'a>;
873
874// /// Represents the style value for `border-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-color).
875// ///
876// /// The border CSS property sets the color, style, and width of the line around an element.
877// ///
878// /// The grammar is defined as:
879// ///
880// /// ```text,ignore
881// /// [ <color> | <image-1D> ]{1,4}
882// /// ```
883// ///
884// /// https://drafts.csswg.org/css-borders-4/#border-color
885// #[syntax(" [ <color> | <image-1D> ]{1,4} ")]
886// #[derive(
887//     Parse,
888//     Peek,
889//     ToSpan,
890//     ToCursors,
891//     DeclarationMetadata,
892//     SemanticEq,
893//     Debug,
894//     Clone,
895//     PartialEq,
896//     Eq,
897//     PartialOrd,
898//     Ord,
899//     Hash,
900// )]
901// #[declaration_metadata(
902//     initial = "see individual properties",
903//     inherits = Unknown,
904//     applies_to = Unknown,
905//     animation_type = Unknown,
906//     percentages = Unknown,
907//     shorthand_group = Border,
908//     longhands = BorderBottomColor|BorderLeftColor|BorderRightColor|BorderTopColor,
909//     property_group = Borders,
910//     computed_value_type = Unknown,
911//     canonical_order = "per grammar",
912//     box_side = Top|Bottom|Left|Right,
913//     box_portion = Border,
914// )]
915// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
916// #[cfg_attr(
917//     feature = "css_feature_data",
918//     derive(ToCSSFeature),
919//     css_feature("css.properties.border-color")
920// )]
921// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
922// #[derive(csskit_derives::NodeWithMetadata)]
923// pub struct BorderColorStyleValue<'a>;
924
925/// Represents the style value for `border-end-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-end-end-radius).
926///
927/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
928///
929/// The grammar is defined as:
930///
931/// ```text,ignore
932/// <border-radius>
933/// ```
934///
935/// https://drafts.csswg.org/css-borders-4/#border-end-end-radius
936#[syntax(" <border-radius> ")]
937#[derive(
938	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
939)]
940#[declaration_metadata(
941    initial = "0",
942    applies_to = Elements,
943    animation_type = ByComputedValue,
944    percentages = BorderBox,
945    property_group = Borders,
946    computed_value_type = Unknown,
947    canonical_order = "per grammar",
948    logical_property_group = BorderRadius,
949    box_side = BlockEnd|InlineEnd,
950    box_portion = Border,
951)]
952#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
953#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-end-radius"))]
954#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
955#[derive(csskit_derives::NodeWithMetadata)]
956pub struct BorderEndEndRadiusStyleValue;
957
958/// Represents the style value for `border-end-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-end-start-radius).
959///
960/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
961///
962/// The grammar is defined as:
963///
964/// ```text,ignore
965/// <border-radius>
966/// ```
967///
968/// https://drafts.csswg.org/css-borders-4/#border-end-start-radius
969#[syntax(" <border-radius> ")]
970#[derive(
971	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
972)]
973#[declaration_metadata(
974    initial = "0",
975    applies_to = Elements,
976    animation_type = ByComputedValue,
977    percentages = BorderBox,
978    property_group = Borders,
979    computed_value_type = Unknown,
980    canonical_order = "per grammar",
981    logical_property_group = BorderRadius,
982    box_side = BlockEnd|InlineStart,
983    box_portion = Border,
984)]
985#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
986#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-start-radius"))]
987#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
988#[derive(csskit_derives::NodeWithMetadata)]
989pub struct BorderEndStartRadiusStyleValue;
990
991// /// Represents the style value for `border-image` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image).
992// ///
993// /// The border-image CSS property draws an image around an element.
994// ///
995// /// The grammar is defined as:
996// ///
997// /// ```text,ignore
998// /// <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>
999// /// ```
1000// ///
1001// /// https://drafts.csswg.org/css-borders-4/#border-image
1002// #[syntax(
1003//     " <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'> "
1004// )]
1005// #[derive(
1006//     Parse,
1007//     Peek,
1008//     ToSpan,
1009//     ToCursors,
1010//     DeclarationMetadata,
1011//     SemanticEq,
1012//     Debug,
1013//     Clone,
1014//     PartialEq,
1015//     Eq,
1016//     PartialOrd,
1017//     Ord,
1018//     Hash,
1019// )]
1020// #[declaration_metadata(
1021//     initial = "See individual properties",
1022//     applies_to = Unknown,
1023//     animation_type = Unknown,
1024//     longhands = BorderImageOutset|BorderImageRepeat|BorderImageSlice|BorderImageSource|BorderImageWidth,
1025//     property_group = Borders,
1026//     computed_value_type = Unknown,
1027//     canonical_order = "per grammar",
1028//     box_portion = Border,
1029// )]
1030// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1031// #[cfg_attr(
1032//     feature = "css_feature_data",
1033//     derive(ToCSSFeature),
1034//     css_feature("css.properties.border-image")
1035// )]
1036// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1037// #[derive(csskit_derives::NodeWithMetadata)]
1038// pub enum BorderImageStyleValue<'a> {}
1039
1040/// Represents the style value for `border-image-outset` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-outset).
1041///
1042/// The border-image CSS property draws an image around an element.
1043///
1044/// The grammar is defined as:
1045///
1046/// ```text,ignore
1047/// [ <length [0,∞]> | <number [0,∞]> ]{1,4}
1048/// ```
1049///
1050/// https://drafts.csswg.org/css-borders-4/#border-image-outset
1051#[syntax(" [ <length [0,∞]> | <number [0,∞]> ]{1,4} ")]
1052#[derive(
1053	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1054)]
1055#[declaration_metadata(
1056    initial = "0",
1057    applies_to = Unknown,
1058    animation_type = ByComputedValue,
1059    shorthand_group = BorderImage,
1060    property_group = Borders,
1061    computed_value_type = AbsoluteLength,
1062    canonical_order = "per grammar",
1063    box_portion = Border,
1064)]
1065#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1066#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-outset"))]
1067#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1068#[derive(csskit_derives::NodeWithMetadata)]
1069pub struct BorderImageOutsetStyleValue;
1070
1071/// Represents the style value for `border-image-repeat` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-repeat).
1072///
1073/// The border-image CSS property draws an image around an element.
1074///
1075/// The grammar is defined as:
1076///
1077/// ```text,ignore
1078/// [ stretch | repeat | round | space ]{1,2}
1079/// ```
1080///
1081/// https://drafts.csswg.org/css-borders-4/#border-image-repeat
1082#[syntax(" [ stretch | repeat | round | space ]{1,2} ")]
1083#[derive(
1084	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1085)]
1086#[declaration_metadata(
1087    initial = "stretch",
1088    applies_to = Unknown,
1089    animation_type = Discrete,
1090    shorthand_group = BorderImage,
1091    property_group = Borders,
1092    computed_value_type = Unknown,
1093    canonical_order = "per grammar",
1094    box_portion = Border,
1095)]
1096#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1097#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-repeat"))]
1098#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1099#[derive(csskit_derives::NodeWithMetadata)]
1100pub struct BorderImageRepeatStyleValue;
1101
1102// /// Represents the style value for `border-image-slice` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-slice).
1103// ///
1104// /// The border-image CSS property draws an image around an element.
1105// ///
1106// /// The grammar is defined as:
1107// ///
1108// /// ```text,ignore
1109// /// [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill?
1110// /// ```
1111// ///
1112// /// https://drafts.csswg.org/css-borders-4/#border-image-slice
1113// #[syntax(" [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill? ")]
1114// #[derive(
1115//     Parse,
1116//     Peek,
1117//     ToSpan,
1118//     ToCursors,
1119//     DeclarationMetadata,
1120//     SemanticEq,
1121//     Debug,
1122//     Clone,
1123//     PartialEq,
1124//     Eq,
1125//     PartialOrd,
1126//     Ord,
1127//     Hash,
1128// )]
1129// #[declaration_metadata(
1130//     initial = "100%",
1131//     applies_to = Unknown,
1132//     animation_type = ByComputedValue,
1133//     percentages = BorderImageArea,
1134//     shorthand_group = BorderImage,
1135//     property_group = Borders,
1136//     computed_value_type = Unknown,
1137//     canonical_order = "per grammar",
1138//     box_portion = Border,
1139// )]
1140// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1141// #[cfg_attr(
1142//     feature = "css_feature_data",
1143//     derive(ToCSSFeature),
1144//     css_feature("css.properties.border-image-slice")
1145// )]
1146// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1147// #[derive(csskit_derives::NodeWithMetadata)]
1148// pub struct BorderImageSliceStyleValue;
1149
1150/// Represents the style value for `border-image-source` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-source).
1151///
1152/// The border-image CSS property draws an image around an element.
1153///
1154/// The grammar is defined as:
1155///
1156/// ```text,ignore
1157/// none | <image>
1158/// ```
1159///
1160/// https://drafts.csswg.org/css-borders-4/#border-image-source
1161#[syntax(" none | <image> ")]
1162#[derive(
1163	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1164)]
1165#[declaration_metadata(
1166    initial = "none",
1167    applies_to = Unknown,
1168    animation_type = Discrete,
1169    shorthand_group = BorderImage,
1170    property_group = Borders,
1171    computed_value_type = Unknown,
1172    canonical_order = "per grammar",
1173    box_portion = Border,
1174)]
1175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-source"))]
1177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1178#[derive(csskit_derives::NodeWithMetadata)]
1179pub struct BorderImageSourceStyleValue<'a>;
1180
1181// /// Represents the style value for `border-image-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-width).
1182// ///
1183// /// The border-image CSS property draws an image around an element.
1184// ///
1185// /// The grammar is defined as:
1186// ///
1187// /// ```text,ignore
1188// /// [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}
1189// /// ```
1190// ///
1191// /// https://drafts.csswg.org/css-borders-4/#border-image-width
1192// #[syntax(" [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4} ")]
1193// #[derive(
1194//     Parse,
1195//     Peek,
1196//     ToSpan,
1197//     ToCursors,
1198//     DeclarationMetadata,
1199//     SemanticEq,
1200//     Debug,
1201//     Clone,
1202//     PartialEq,
1203//     Eq,
1204//     PartialOrd,
1205//     Ord,
1206//     Hash,
1207// )]
1208// #[declaration_metadata(
1209//     initial = "1",
1210//     applies_to = Unknown,
1211//     animation_type = ByComputedValue,
1212//     percentages = BorderImageArea,
1213//     shorthand_group = BorderImage,
1214//     property_group = Borders,
1215//     computed_value_type = Unknown,
1216//     canonical_order = "per grammar",
1217//     box_portion = Border,
1218// )]
1219// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1220// #[cfg_attr(
1221//     feature = "css_feature_data",
1222//     derive(ToCSSFeature),
1223//     css_feature("css.properties.border-image-width")
1224// )]
1225// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1226// #[derive(csskit_derives::NodeWithMetadata)]
1227// pub struct BorderImageWidthStyleValue;
1228
1229/// Represents the style value for `border-inline` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline).
1230///
1231/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1232///
1233/// The grammar is defined as:
1234///
1235/// ```text,ignore
1236/// <'border-block-start'>
1237/// ```
1238///
1239/// https://drafts.csswg.org/css-borders-4/#border-inline
1240#[syntax(" <'border-block-start'> ")]
1241#[derive(
1242	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1243)]
1244#[declaration_metadata(
1245    initial = "see individual properties",
1246    inherits = Unknown,
1247    applies_to = Unknown,
1248    animation_type = Unknown,
1249    percentages = Unknown,
1250    longhands = BorderInlineColor|BorderInlineStyle|BorderInlineWidth,
1251    property_group = Borders,
1252    computed_value_type = Unknown,
1253    canonical_order = "per grammar",
1254    box_side = InlineStart|InlineEnd,
1255    box_portion = Border,
1256)]
1257#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1258#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline"))]
1259#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1260#[derive(csskit_derives::NodeWithMetadata)]
1261pub struct BorderInlineStyleValue<'a>;
1262
1263/// Represents the style value for `border-inline-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-clip).
1264///
1265/// The grammar is defined as:
1266///
1267/// ```text,ignore
1268/// <'border-top-clip'>
1269/// ```
1270///
1271/// https://drafts.csswg.org/css-borders-4/#border-inline-clip
1272#[syntax(" <'border-top-clip'> ")]
1273#[derive(
1274	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1275)]
1276#[declaration_metadata(
1277    initial = "see individual properties",
1278    inherits = Unknown,
1279    applies_to = Unknown,
1280    animation_type = Unknown,
1281    percentages = Unknown,
1282    property_group = Borders,
1283    computed_value_type = Unknown,
1284    canonical_order = "per grammar",
1285    box_side = InlineStart|InlineEnd,
1286    box_portion = Border,
1287)]
1288#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1289#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-clip"))]
1290#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1291#[derive(csskit_derives::NodeWithMetadata)]
1292pub struct BorderInlineClipStyleValue<'a>;
1293
1294/// Represents the style value for `border-inline-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-color).
1295///
1296/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1297///
1298/// The grammar is defined as:
1299///
1300/// ```text,ignore
1301/// <'border-top-color'>{1,2}
1302/// ```
1303///
1304/// https://drafts.csswg.org/css-borders-4/#border-inline-color
1305#[syntax(" <'border-top-color'>{1,2} ")]
1306#[derive(
1307	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1308)]
1309#[declaration_metadata(
1310    initial = "see individual properties",
1311    inherits = Unknown,
1312    applies_to = Unknown,
1313    animation_type = Unknown,
1314    percentages = Unknown,
1315    shorthand_group = BorderInline,
1316    property_group = Borders,
1317    computed_value_type = Unknown,
1318    canonical_order = "per grammar",
1319    box_side = InlineStart|InlineEnd,
1320    box_portion = Border,
1321)]
1322#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1323#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-color"))]
1324#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1325#[derive(csskit_derives::NodeWithMetadata)]
1326pub struct BorderInlineColorStyleValue<'a>;
1327
1328/// Represents the style value for `border-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end).
1329///
1330/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1331///
1332/// The grammar is defined as:
1333///
1334/// ```text,ignore
1335/// <line-width> || <line-style> || <color>
1336/// ```
1337///
1338/// https://drafts.csswg.org/css-borders-4/#border-inline-end
1339#[syntax(" <line-width> || <line-style> || <color> ")]
1340#[derive(
1341	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1342)]
1343#[declaration_metadata(
1344    initial = "See individual properties",
1345    applies_to = Unknown,
1346    animation_type = Unknown,
1347    longhands = BorderInlineEndColor|BorderInlineEndStyle|BorderInlineEndWidth,
1348    property_group = Borders,
1349    computed_value_type = Unknown,
1350    canonical_order = "per grammar",
1351    box_side = InlineEnd,
1352    box_portion = Border,
1353)]
1354#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1355#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end"))]
1356#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1357#[derive(csskit_derives::NodeWithMetadata)]
1358pub struct BorderInlineEndStyleValue<'a>;
1359
1360/// Represents the style value for `border-inline-end-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-clip).
1361///
1362/// The grammar is defined as:
1363///
1364/// ```text,ignore
1365/// none | [ <length-percentage [0,∞]> | <flex> ]+
1366/// ```
1367///
1368/// https://drafts.csswg.org/css-borders-4/#border-inline-end-clip
1369#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1370#[derive(
1371	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1372)]
1373#[declaration_metadata(
1374    initial = "none",
1375    applies_to = Elements,
1376    animation_type = ByComputedValue,
1377    percentages = BorderEdge,
1378    property_group = Borders,
1379    computed_value_type = SpecifiedWithAbsoluteLengths,
1380    canonical_order = "per grammar",
1381    logical_property_group = BorderClip,
1382    box_portion = Border,
1383)]
1384#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1385#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-clip"))]
1386#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1387#[derive(csskit_derives::NodeWithMetadata)]
1388pub struct BorderInlineEndClipStyleValue<'a>;
1389
1390/// Represents the style value for `border-inline-end-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-color).
1391///
1392/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1393///
1394/// The grammar is defined as:
1395///
1396/// ```text,ignore
1397/// <color> | <image-1D>
1398/// ```
1399///
1400/// https://drafts.csswg.org/css-borders-4/#border-inline-end-color
1401#[syntax(" <color> | <image-1D> ")]
1402#[derive(
1403	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1404)]
1405#[declaration_metadata(
1406    initial = "currentcolor",
1407    applies_to = Unknown,
1408    animation_type = Unknown,
1409    shorthand_group = BorderInlineEnd,
1410    property_group = Borders,
1411    computed_value_type = Unknown,
1412    canonical_order = "per grammar",
1413    logical_property_group = BorderColor,
1414    box_portion = Border,
1415)]
1416#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1417#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-color"))]
1418#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1419#[derive(csskit_derives::NodeWithMetadata)]
1420pub enum BorderInlineEndColorStyleValue<'a> {}
1421
1422/// Represents the style value for `border-inline-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-radius).
1423///
1424/// The grammar is defined as:
1425///
1426/// ```text,ignore
1427/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1428/// ```
1429///
1430/// https://drafts.csswg.org/css-borders-4/#border-inline-end-radius
1431#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1432#[derive(
1433	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1434)]
1435#[declaration_metadata(
1436    initial = "0",
1437    applies_to = Elements,
1438    animation_type = Unknown,
1439    percentages = BorderBox,
1440    property_group = Borders,
1441    computed_value_type = Unknown,
1442    canonical_order = "per grammar",
1443    box_portion = Border,
1444)]
1445#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1446#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-radius"))]
1447#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1448#[derive(csskit_derives::NodeWithMetadata)]
1449pub struct BorderInlineEndRadiusStyleValue;
1450
1451/// Represents the style value for `border-inline-end-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-style).
1452///
1453/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1454///
1455/// The grammar is defined as:
1456///
1457/// ```text,ignore
1458/// <line-style>
1459/// ```
1460///
1461/// https://drafts.csswg.org/css-borders-4/#border-inline-end-style
1462#[syntax(" <line-style> ")]
1463#[derive(
1464	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1465)]
1466#[declaration_metadata(
1467    initial = "none",
1468    applies_to = Unknown,
1469    animation_type = Discrete,
1470    shorthand_group = BorderInlineEnd,
1471    property_group = Borders,
1472    computed_value_type = Unknown,
1473    canonical_order = "per grammar",
1474    logical_property_group = BorderStyle,
1475    box_portion = Border,
1476)]
1477#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1478#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-style"))]
1479#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1480#[derive(csskit_derives::NodeWithMetadata)]
1481pub struct BorderInlineEndStyleStyleValue;
1482
1483/// Represents the style value for `border-inline-end-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-width).
1484///
1485/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1486///
1487/// The grammar is defined as:
1488///
1489/// ```text,ignore
1490/// <line-width>
1491/// ```
1492///
1493/// https://drafts.csswg.org/css-borders-4/#border-inline-end-width
1494#[syntax(" <line-width> ")]
1495#[derive(
1496	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1497)]
1498#[declaration_metadata(
1499    initial = "medium",
1500    applies_to = Unknown,
1501    animation_type = ByComputedValue,
1502    shorthand_group = BorderInlineEnd,
1503    property_group = Borders,
1504    computed_value_type = AbsoluteLength,
1505    canonical_order = "per grammar",
1506    logical_property_group = BorderWidth,
1507    box_portion = Border,
1508)]
1509#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1510#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-width"))]
1511#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1512#[derive(csskit_derives::NodeWithMetadata)]
1513pub struct BorderInlineEndWidthStyleValue;
1514
1515/// Represents the style value for `border-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start).
1516///
1517/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1518///
1519/// The grammar is defined as:
1520///
1521/// ```text,ignore
1522/// <line-width> || <line-style> || <color>
1523/// ```
1524///
1525/// https://drafts.csswg.org/css-borders-4/#border-inline-start
1526#[syntax(" <line-width> || <line-style> || <color> ")]
1527#[derive(
1528	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1529)]
1530#[declaration_metadata(
1531    initial = "See individual properties",
1532    applies_to = Unknown,
1533    animation_type = Unknown,
1534    longhands = BorderInlineStartColor|BorderInlineStartStyle|BorderInlineStartWidth,
1535    property_group = Borders,
1536    computed_value_type = Unknown,
1537    canonical_order = "per grammar",
1538    box_side = InlineStart,
1539    box_portion = Border,
1540)]
1541#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1542#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start"))]
1543#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1544#[derive(csskit_derives::NodeWithMetadata)]
1545pub struct BorderInlineStartStyleValue<'a>;
1546
1547/// Represents the style value for `border-inline-start-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-clip).
1548///
1549/// The grammar is defined as:
1550///
1551/// ```text,ignore
1552/// none | [ <length-percentage [0,∞]> | <flex> ]+
1553/// ```
1554///
1555/// https://drafts.csswg.org/css-borders-4/#border-inline-start-clip
1556#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1557#[derive(
1558	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1559)]
1560#[declaration_metadata(
1561    initial = "none",
1562    applies_to = Elements,
1563    animation_type = ByComputedValue,
1564    percentages = BorderEdge,
1565    property_group = Borders,
1566    computed_value_type = SpecifiedWithAbsoluteLengths,
1567    canonical_order = "per grammar",
1568    logical_property_group = BorderClip,
1569    box_portion = Border,
1570)]
1571#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1572#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-clip"))]
1573#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1574#[derive(csskit_derives::NodeWithMetadata)]
1575pub struct BorderInlineStartClipStyleValue<'a>;
1576
1577/// Represents the style value for `border-inline-start-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-color).
1578///
1579/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1580///
1581/// The grammar is defined as:
1582///
1583/// ```text,ignore
1584/// <color> | <image-1D>
1585/// ```
1586///
1587/// https://drafts.csswg.org/css-borders-4/#border-inline-start-color
1588#[syntax(" <color> | <image-1D> ")]
1589#[derive(
1590	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1591)]
1592#[declaration_metadata(
1593    initial = "currentcolor",
1594    applies_to = Unknown,
1595    animation_type = Unknown,
1596    shorthand_group = BorderInlineStart,
1597    property_group = Borders,
1598    computed_value_type = Unknown,
1599    canonical_order = "per grammar",
1600    logical_property_group = BorderColor,
1601    box_portion = Border,
1602)]
1603#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1604#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-color"))]
1605#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1606#[derive(csskit_derives::NodeWithMetadata)]
1607pub enum BorderInlineStartColorStyleValue<'a> {}
1608
1609/// Represents the style value for `border-inline-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-radius).
1610///
1611/// The grammar is defined as:
1612///
1613/// ```text,ignore
1614/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1615/// ```
1616///
1617/// https://drafts.csswg.org/css-borders-4/#border-inline-start-radius
1618#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1619#[derive(
1620	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1621)]
1622#[declaration_metadata(
1623    initial = "0",
1624    applies_to = Elements,
1625    animation_type = Unknown,
1626    percentages = BorderBox,
1627    property_group = Borders,
1628    computed_value_type = Unknown,
1629    canonical_order = "per grammar",
1630    box_portion = Border,
1631)]
1632#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1633#[cfg_attr(
1634	feature = "css_feature_data",
1635	derive(ToCSSFeature),
1636	css_feature("css.properties.border-inline-start-radius")
1637)]
1638#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1639#[derive(csskit_derives::NodeWithMetadata)]
1640pub struct BorderInlineStartRadiusStyleValue;
1641
1642/// Represents the style value for `border-inline-start-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-style).
1643///
1644/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1645///
1646/// The grammar is defined as:
1647///
1648/// ```text,ignore
1649/// <line-style>
1650/// ```
1651///
1652/// https://drafts.csswg.org/css-borders-4/#border-inline-start-style
1653#[syntax(" <line-style> ")]
1654#[derive(
1655	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1656)]
1657#[declaration_metadata(
1658    initial = "none",
1659    applies_to = Unknown,
1660    animation_type = Discrete,
1661    shorthand_group = BorderInlineStart,
1662    property_group = Borders,
1663    computed_value_type = Unknown,
1664    canonical_order = "per grammar",
1665    logical_property_group = BorderStyle,
1666    box_portion = Border,
1667)]
1668#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1669#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-style"))]
1670#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1671#[derive(csskit_derives::NodeWithMetadata)]
1672pub struct BorderInlineStartStyleStyleValue;
1673
1674/// Represents the style value for `border-inline-start-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-width).
1675///
1676/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1677///
1678/// The grammar is defined as:
1679///
1680/// ```text,ignore
1681/// <line-width>
1682/// ```
1683///
1684/// https://drafts.csswg.org/css-borders-4/#border-inline-start-width
1685#[syntax(" <line-width> ")]
1686#[derive(
1687	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1688)]
1689#[declaration_metadata(
1690    initial = "medium",
1691    applies_to = Unknown,
1692    animation_type = ByComputedValue,
1693    shorthand_group = BorderInlineStart,
1694    property_group = Borders,
1695    computed_value_type = AbsoluteLength,
1696    canonical_order = "per grammar",
1697    logical_property_group = BorderWidth,
1698    box_portion = Border,
1699)]
1700#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1701#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-width"))]
1702#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1703#[derive(csskit_derives::NodeWithMetadata)]
1704pub struct BorderInlineStartWidthStyleValue;
1705
1706/// Represents the style value for `border-inline-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-style).
1707///
1708/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1709///
1710/// The grammar is defined as:
1711///
1712/// ```text,ignore
1713/// <'border-top-style'>{1,2}
1714/// ```
1715///
1716/// https://drafts.csswg.org/css-borders-4/#border-inline-style
1717#[syntax(" <'border-top-style'>{1,2} ")]
1718#[derive(
1719	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1720)]
1721#[declaration_metadata(
1722    initial = "see individual properties",
1723    inherits = Unknown,
1724    applies_to = Unknown,
1725    animation_type = Unknown,
1726    percentages = Unknown,
1727    shorthand_group = BorderInline,
1728    property_group = Borders,
1729    computed_value_type = Unknown,
1730    canonical_order = "per grammar",
1731    box_side = InlineStart|InlineEnd,
1732    box_portion = Border,
1733)]
1734#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1735#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-style"))]
1736#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1737#[derive(csskit_derives::NodeWithMetadata)]
1738pub struct BorderInlineStyleStyleValue;
1739
1740/// Represents the style value for `border-inline-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-width).
1741///
1742/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1743///
1744/// The grammar is defined as:
1745///
1746/// ```text,ignore
1747/// <'border-top-width'>{1,2}
1748/// ```
1749///
1750/// https://drafts.csswg.org/css-borders-4/#border-inline-width
1751#[syntax(" <'border-top-width'>{1,2} ")]
1752#[derive(
1753	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1754)]
1755#[declaration_metadata(
1756    initial = "see individual properties",
1757    inherits = Unknown,
1758    applies_to = Unknown,
1759    animation_type = Unknown,
1760    percentages = Unknown,
1761    shorthand_group = BorderInline,
1762    property_group = Borders,
1763    computed_value_type = Unknown,
1764    canonical_order = "per grammar",
1765    box_side = InlineStart|InlineEnd,
1766    box_portion = Border,
1767)]
1768#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1769#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-width"))]
1770#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1771#[derive(csskit_derives::NodeWithMetadata)]
1772pub struct BorderInlineWidthStyleValue;
1773
1774/// Represents the style value for `border-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left).
1775///
1776/// The border CSS property sets the color, style, and width of the line around an element.
1777///
1778/// The grammar is defined as:
1779///
1780/// ```text,ignore
1781/// <line-width> || <line-style> || <color>
1782/// ```
1783///
1784/// https://drafts.csswg.org/css-borders-4/#border-left
1785#[syntax(" <line-width> || <line-style> || <color> ")]
1786#[derive(
1787	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1788)]
1789#[declaration_metadata(
1790    initial = "See individual properties",
1791    applies_to = Unknown,
1792    animation_type = Unknown,
1793    longhands = BorderLeftColor|BorderLeftStyle|BorderLeftWidth,
1794    property_group = Borders,
1795    computed_value_type = Unknown,
1796    canonical_order = "per grammar",
1797    box_side = Left,
1798    box_portion = Border,
1799)]
1800#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1801#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left"))]
1802#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1803#[derive(csskit_derives::NodeWithMetadata)]
1804pub struct BorderLeftStyleValue<'a>;
1805
1806/// Represents the style value for `border-left-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-clip).
1807///
1808/// The grammar is defined as:
1809///
1810/// ```text,ignore
1811/// none | [ <length-percentage [0,∞]> | <flex> ]+
1812/// ```
1813///
1814/// https://drafts.csswg.org/css-borders-4/#border-left-clip
1815#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1816#[derive(
1817	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1818)]
1819#[declaration_metadata(
1820    initial = "none",
1821    applies_to = Elements,
1822    animation_type = ByComputedValue,
1823    percentages = BorderEdge,
1824    property_group = Borders,
1825    computed_value_type = SpecifiedWithAbsoluteLengths,
1826    canonical_order = "per grammar",
1827    logical_property_group = BorderClip,
1828    box_portion = Border,
1829)]
1830#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1831#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-clip"))]
1832#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1833#[derive(csskit_derives::NodeWithMetadata)]
1834pub struct BorderLeftClipStyleValue<'a>;
1835
1836/// Represents the style value for `border-left-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-color).
1837///
1838/// The border CSS property sets the color, style, and width of the line around an element.
1839///
1840/// The grammar is defined as:
1841///
1842/// ```text,ignore
1843/// <color> | <image-1D>
1844/// ```
1845///
1846/// https://drafts.csswg.org/css-borders-4/#border-left-color
1847#[syntax(" <color> | <image-1D> ")]
1848#[derive(
1849	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1850)]
1851#[declaration_metadata(
1852    initial = "currentcolor",
1853    applies_to = Unknown,
1854    animation_type = Unknown,
1855    shorthand_group = Border,
1856    property_group = Borders,
1857    computed_value_type = Unknown,
1858    canonical_order = "per grammar",
1859    logical_property_group = BorderColor,
1860    box_portion = Border,
1861)]
1862#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1863#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-color"))]
1864#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1865#[derive(csskit_derives::NodeWithMetadata)]
1866pub enum BorderLeftColorStyleValue<'a> {}
1867
1868/// Represents the style value for `border-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-radius).
1869///
1870/// The grammar is defined as:
1871///
1872/// ```text,ignore
1873/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1874/// ```
1875///
1876/// https://drafts.csswg.org/css-borders-4/#border-left-radius
1877#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1878#[derive(
1879	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1880)]
1881#[declaration_metadata(
1882    initial = "0",
1883    applies_to = Elements,
1884    animation_type = Unknown,
1885    percentages = BorderBox,
1886    property_group = Borders,
1887    computed_value_type = Unknown,
1888    canonical_order = "per grammar",
1889    box_portion = Border,
1890)]
1891#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1892#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-radius"))]
1893#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1894#[derive(csskit_derives::NodeWithMetadata)]
1895pub struct BorderLeftRadiusStyleValue;
1896
1897/// Represents the style value for `border-left-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-style).
1898///
1899/// The border CSS property sets the color, style, and width of the line around an element.
1900///
1901/// The grammar is defined as:
1902///
1903/// ```text,ignore
1904/// <line-style>
1905/// ```
1906///
1907/// https://drafts.csswg.org/css-borders-4/#border-left-style
1908#[syntax(" <line-style> ")]
1909#[derive(
1910	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1911)]
1912#[declaration_metadata(
1913    initial = "none",
1914    applies_to = Unknown,
1915    animation_type = Discrete,
1916    shorthand_group = Border,
1917    property_group = Borders,
1918    computed_value_type = Unknown,
1919    canonical_order = "per grammar",
1920    logical_property_group = BorderStyle,
1921    box_portion = Border,
1922)]
1923#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1924#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-style"))]
1925#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1926#[derive(csskit_derives::NodeWithMetadata)]
1927pub struct BorderLeftStyleStyleValue;
1928
1929/// Represents the style value for `border-left-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-width).
1930///
1931/// The border CSS property sets the color, style, and width of the line around an element.
1932///
1933/// The grammar is defined as:
1934///
1935/// ```text,ignore
1936/// <line-width>
1937/// ```
1938///
1939/// https://drafts.csswg.org/css-borders-4/#border-left-width
1940#[syntax(" <line-width> ")]
1941#[derive(
1942	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1943)]
1944#[declaration_metadata(
1945    initial = "medium",
1946    applies_to = Unknown,
1947    animation_type = ByComputedValue,
1948    shorthand_group = Border,
1949    property_group = Borders,
1950    computed_value_type = AbsoluteLength,
1951    canonical_order = "per grammar",
1952    logical_property_group = BorderWidth,
1953    box_portion = Border,
1954)]
1955#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1956#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-width"))]
1957#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1958#[derive(csskit_derives::NodeWithMetadata)]
1959pub struct BorderLeftWidthStyleValue;
1960
1961/// Represents the style value for `border-limit` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-limit).
1962///
1963/// The grammar is defined as:
1964///
1965/// ```text,ignore
1966/**all | [ sides | corners ] <length-percentage [0,∞]>?
1967| [ top | right | bottom | left ] <length-percentage [0,∞]>*/
1968/// ```
1969///
1970/// https://drafts.csswg.org/css-borders-4/#border-limit
1971#[syntax(
1972	" all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]> "
1973)]
1974#[derive(
1975	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1976)]
1977#[declaration_metadata(
1978    initial = "all",
1979    applies_to = Unknown,
1980    animation_type = Discrete,
1981    percentages = BorderBox,
1982    property_group = Borders,
1983    computed_value_type = AsSpecified,
1984    canonical_order = "per grammar",
1985    box_portion = Border,
1986)]
1987#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1988#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-limit"))]
1989#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1990#[derive(csskit_derives::NodeWithMetadata)]
1991pub enum BorderLimitStyleValue {}
1992
1993/// Represents the style value for `border-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-radius).
1994///
1995/// The border-radius CSS property rounds the corners of the border drawn around an element.
1996///
1997/// The grammar is defined as:
1998///
1999/// ```text,ignore
2000/// <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?
2001/// ```
2002///
2003/// https://drafts.csswg.org/css-borders-4/#border-radius
2004#[syntax(" <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? ")]
2005#[derive(
2006	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2007)]
2008#[declaration_metadata(
2009    initial = "see individual properties",
2010    inherits = Unknown,
2011    applies_to = Unknown,
2012    animation_type = Unknown,
2013    percentages = Unknown,
2014    longhands = BorderBottomLeftRadius|BorderBottomRightRadius|BorderTopLeftRadius|BorderTopRightRadius,
2015    property_group = Borders,
2016    computed_value_type = Unknown,
2017    canonical_order = "per grammar",
2018    box_portion = Border,
2019)]
2020#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2021#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-radius"))]
2022#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2023#[derive(csskit_derives::NodeWithMetadata)]
2024pub struct BorderRadiusStyleValue;
2025
2026/// Represents the style value for `border-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right).
2027///
2028/// The border CSS property sets the color, style, and width of the line around an element.
2029///
2030/// The grammar is defined as:
2031///
2032/// ```text,ignore
2033/// <line-width> || <line-style> || <color>
2034/// ```
2035///
2036/// https://drafts.csswg.org/css-borders-4/#border-right
2037#[syntax(" <line-width> || <line-style> || <color> ")]
2038#[derive(
2039	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2040)]
2041#[declaration_metadata(
2042    initial = "See individual properties",
2043    applies_to = Unknown,
2044    animation_type = Unknown,
2045    longhands = BorderRightColor|BorderRightStyle|BorderRightWidth,
2046    property_group = Borders,
2047    computed_value_type = Unknown,
2048    canonical_order = "per grammar",
2049    box_side = Right,
2050    box_portion = Border,
2051)]
2052#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2053#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right"))]
2054#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2055#[derive(csskit_derives::NodeWithMetadata)]
2056pub struct BorderRightStyleValue<'a>;
2057
2058/// Represents the style value for `border-right-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-clip).
2059///
2060/// The grammar is defined as:
2061///
2062/// ```text,ignore
2063/// none | [ <length-percentage [0,∞]> | <flex> ]+
2064/// ```
2065///
2066/// https://drafts.csswg.org/css-borders-4/#border-right-clip
2067#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2068#[derive(
2069	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2070)]
2071#[declaration_metadata(
2072    initial = "none",
2073    applies_to = Elements,
2074    animation_type = ByComputedValue,
2075    percentages = BorderEdge,
2076    property_group = Borders,
2077    computed_value_type = SpecifiedWithAbsoluteLengths,
2078    canonical_order = "per grammar",
2079    logical_property_group = BorderClip,
2080    box_portion = Border,
2081)]
2082#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2083#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-clip"))]
2084#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2085#[derive(csskit_derives::NodeWithMetadata)]
2086pub struct BorderRightClipStyleValue<'a>;
2087
2088/// Represents the style value for `border-right-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-color).
2089///
2090/// The border CSS property sets the color, style, and width of the line around an element.
2091///
2092/// The grammar is defined as:
2093///
2094/// ```text,ignore
2095/// <color> | <image-1D>
2096/// ```
2097///
2098/// https://drafts.csswg.org/css-borders-4/#border-right-color
2099#[syntax(" <color> | <image-1D> ")]
2100#[derive(
2101	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2102)]
2103#[declaration_metadata(
2104    initial = "currentcolor",
2105    applies_to = Unknown,
2106    animation_type = Unknown,
2107    shorthand_group = Border,
2108    property_group = Borders,
2109    computed_value_type = Unknown,
2110    canonical_order = "per grammar",
2111    logical_property_group = BorderColor,
2112    box_portion = Border,
2113)]
2114#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2115#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-color"))]
2116#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2117#[derive(csskit_derives::NodeWithMetadata)]
2118pub enum BorderRightColorStyleValue<'a> {}
2119
2120/// Represents the style value for `border-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-radius).
2121///
2122/// The grammar is defined as:
2123///
2124/// ```text,ignore
2125/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
2126/// ```
2127///
2128/// https://drafts.csswg.org/css-borders-4/#border-right-radius
2129#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
2130#[derive(
2131	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2132)]
2133#[declaration_metadata(
2134    initial = "0",
2135    applies_to = Elements,
2136    animation_type = Unknown,
2137    percentages = BorderBox,
2138    property_group = Borders,
2139    computed_value_type = Unknown,
2140    canonical_order = "per grammar",
2141    box_portion = Border,
2142)]
2143#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2144#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-radius"))]
2145#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2146#[derive(csskit_derives::NodeWithMetadata)]
2147pub struct BorderRightRadiusStyleValue;
2148
2149/// Represents the style value for `border-right-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-style).
2150///
2151/// The border CSS property sets the color, style, and width of the line around an element.
2152///
2153/// The grammar is defined as:
2154///
2155/// ```text,ignore
2156/// <line-style>
2157/// ```
2158///
2159/// https://drafts.csswg.org/css-borders-4/#border-right-style
2160#[syntax(" <line-style> ")]
2161#[derive(
2162	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2163)]
2164#[declaration_metadata(
2165    initial = "none",
2166    applies_to = Unknown,
2167    animation_type = Discrete,
2168    shorthand_group = Border,
2169    property_group = Borders,
2170    computed_value_type = Unknown,
2171    canonical_order = "per grammar",
2172    logical_property_group = BorderStyle,
2173    box_portion = Border,
2174)]
2175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-style"))]
2177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2178#[derive(csskit_derives::NodeWithMetadata)]
2179pub struct BorderRightStyleStyleValue;
2180
2181/// Represents the style value for `border-right-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-width).
2182///
2183/// The border CSS property sets the color, style, and width of the line around an element.
2184///
2185/// The grammar is defined as:
2186///
2187/// ```text,ignore
2188/// <line-width>
2189/// ```
2190///
2191/// https://drafts.csswg.org/css-borders-4/#border-right-width
2192#[syntax(" <line-width> ")]
2193#[derive(
2194	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2195)]
2196#[declaration_metadata(
2197    initial = "medium",
2198    applies_to = Unknown,
2199    animation_type = ByComputedValue,
2200    shorthand_group = Border,
2201    property_group = Borders,
2202    computed_value_type = AbsoluteLength,
2203    canonical_order = "per grammar",
2204    logical_property_group = BorderWidth,
2205    box_portion = Border,
2206)]
2207#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2208#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-width"))]
2209#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2210#[derive(csskit_derives::NodeWithMetadata)]
2211pub struct BorderRightWidthStyleValue;
2212
2213// /// Represents the style value for `border-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-shape).
2214// ///
2215// /// The border-shape CSS property sets the geometry of the border box, changing the shape of any applicable border, border image, focus outline, or shadow.
2216// ///
2217// /// The grammar is defined as:
2218// ///
2219// /// ```text,ignore
2220// /// none | [ <basic-shape> <geometry-box>?]{1,2}
2221// /// ```
2222// ///
2223// /// https://drafts.csswg.org/css-borders-4/#border-shape
2224// #[syntax(" none | [ <basic-shape> <geometry-box>?]{1,2} ")]
2225// #[derive(
2226//     Parse,
2227//     Peek,
2228//     ToSpan,
2229//     ToCursors,
2230//     DeclarationMetadata,
2231//     SemanticEq,
2232//     Debug,
2233//     Clone,
2234//     PartialEq,
2235//     Eq,
2236//     PartialOrd,
2237//     Ord,
2238//     Hash,
2239// )]
2240// #[declaration_metadata(
2241//     initial = "none",
2242//     applies_to = Elements,
2243//     animation_type = ByComputedValue,
2244//     percentages = Unknown,
2245//     property_group = Borders,
2246//     computed_value_type = Unknown,
2247//     canonical_order = "per grammar",
2248//     box_portion = Border,
2249// )]
2250// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2251// #[cfg_attr(
2252//     feature = "css_feature_data",
2253//     derive(ToCSSFeature),
2254//     css_feature("css.properties.border-shape")
2255// )]
2256// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2257// #[derive(csskit_derives::NodeWithMetadata)]
2258// pub struct BorderShapeStyleValue;
2259
2260/// Represents the style value for `border-start-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-start-end-radius).
2261///
2262/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
2263///
2264/// The grammar is defined as:
2265///
2266/// ```text,ignore
2267/// <border-radius>
2268/// ```
2269///
2270/// https://drafts.csswg.org/css-borders-4/#border-start-end-radius
2271#[syntax(" <border-radius> ")]
2272#[derive(
2273	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2274)]
2275#[declaration_metadata(
2276    initial = "0",
2277    applies_to = Elements,
2278    animation_type = ByComputedValue,
2279    percentages = BorderBox,
2280    property_group = Borders,
2281    computed_value_type = Unknown,
2282    canonical_order = "per grammar",
2283    logical_property_group = BorderRadius,
2284    box_side = BlockStart|InlineEnd,
2285    box_portion = Border,
2286)]
2287#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2288#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-end-radius"))]
2289#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2290#[derive(csskit_derives::NodeWithMetadata)]
2291pub struct BorderStartEndRadiusStyleValue;
2292
2293/// Represents the style value for `border-start-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-start-start-radius).
2294///
2295/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
2296///
2297/// The grammar is defined as:
2298///
2299/// ```text,ignore
2300/// <border-radius>
2301/// ```
2302///
2303/// https://drafts.csswg.org/css-borders-4/#border-start-start-radius
2304#[syntax(" <border-radius> ")]
2305#[derive(
2306	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2307)]
2308#[declaration_metadata(
2309    initial = "0",
2310    applies_to = Elements,
2311    animation_type = ByComputedValue,
2312    percentages = BorderBox,
2313    property_group = Borders,
2314    computed_value_type = Unknown,
2315    canonical_order = "per grammar",
2316    logical_property_group = BorderRadius,
2317    box_side = BlockStart|InlineStart,
2318    box_portion = Border,
2319)]
2320#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2321#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-start-radius"))]
2322#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2323#[derive(csskit_derives::NodeWithMetadata)]
2324pub struct BorderStartStartRadiusStyleValue;
2325
2326/// Represents the style value for `border-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-style).
2327///
2328/// The border CSS property sets the color, style, and width of the line around an element.
2329///
2330/// The grammar is defined as:
2331///
2332/// ```text,ignore
2333/// <'border-top-style'>{1,4}
2334/// ```
2335///
2336/// https://drafts.csswg.org/css-borders-4/#border-style
2337#[syntax(" <'border-top-style'>{1,4} ")]
2338#[derive(
2339	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2340)]
2341#[declaration_metadata(
2342    initial = "see individual properties",
2343    inherits = Unknown,
2344    applies_to = Unknown,
2345    animation_type = Unknown,
2346    percentages = Unknown,
2347    shorthand_group = Border,
2348    longhands = BorderBottomStyle|BorderLeftStyle|BorderRightStyle|BorderTopStyle,
2349    property_group = Borders,
2350    computed_value_type = Unknown,
2351    canonical_order = "per grammar",
2352    box_side = Top|Bottom|Left|Right,
2353    box_portion = Border,
2354)]
2355#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2356#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-style"))]
2357#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2358#[derive(csskit_derives::NodeWithMetadata)]
2359pub struct BorderStyleStyleValue;
2360
2361/// Represents the style value for `border-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top).
2362///
2363/// The border CSS property sets the color, style, and width of the line around an element.
2364///
2365/// The grammar is defined as:
2366///
2367/// ```text,ignore
2368/// <line-width> || <line-style> || <color>
2369/// ```
2370///
2371/// https://drafts.csswg.org/css-borders-4/#border-top
2372#[syntax(" <line-width> || <line-style> || <color> ")]
2373#[derive(
2374	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2375)]
2376#[declaration_metadata(
2377    initial = "See individual properties",
2378    applies_to = Unknown,
2379    animation_type = Unknown,
2380    longhands = BorderTopColor|BorderTopStyle|BorderTopWidth,
2381    property_group = Borders,
2382    computed_value_type = Unknown,
2383    canonical_order = "per grammar",
2384    box_side = Top,
2385    box_portion = Border,
2386)]
2387#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2388#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top"))]
2389#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2390#[derive(csskit_derives::NodeWithMetadata)]
2391pub struct BorderTopStyleValue<'a>;
2392
2393/// Represents the style value for `border-top-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-clip).
2394///
2395/// The grammar is defined as:
2396///
2397/// ```text,ignore
2398/// none | [ <length-percentage [0,∞]> | <flex> ]+
2399/// ```
2400///
2401/// https://drafts.csswg.org/css-borders-4/#border-top-clip
2402#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2403#[derive(
2404	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2405)]
2406#[declaration_metadata(
2407    initial = "none",
2408    applies_to = Elements,
2409    animation_type = ByComputedValue,
2410    percentages = BorderEdge,
2411    property_group = Borders,
2412    computed_value_type = SpecifiedWithAbsoluteLengths,
2413    canonical_order = "per grammar",
2414    logical_property_group = BorderClip,
2415    box_portion = Border,
2416)]
2417#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2418#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-clip"))]
2419#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2420#[derive(csskit_derives::NodeWithMetadata)]
2421pub struct BorderTopClipStyleValue<'a>;
2422
2423/// Represents the style value for `border-top-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-color).
2424///
2425/// The border CSS property sets the color, style, and width of the line around an element.
2426///
2427/// The grammar is defined as:
2428///
2429/// ```text,ignore
2430/// <color> | <image-1D>
2431/// ```
2432///
2433/// https://drafts.csswg.org/css-borders-4/#border-top-color
2434#[syntax(" <color> | <image-1D> ")]
2435#[derive(
2436	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2437)]
2438#[declaration_metadata(
2439    initial = "currentcolor",
2440    applies_to = Unknown,
2441    animation_type = Unknown,
2442    shorthand_group = Border,
2443    property_group = Borders,
2444    computed_value_type = Unknown,
2445    canonical_order = "per grammar",
2446    logical_property_group = BorderColor,
2447    box_portion = Border,
2448)]
2449#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2450#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-color"))]
2451#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2452#[derive(csskit_derives::NodeWithMetadata)]
2453pub enum BorderTopColorStyleValue<'a> {}
2454
2455/// Represents the style value for `border-top-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-left-radius).
2456///
2457/// The border-radius CSS property rounds the corners of the border drawn around an element.
2458///
2459/// The grammar is defined as:
2460///
2461/// ```text,ignore
2462/// <border-radius>
2463/// ```
2464///
2465/// https://drafts.csswg.org/css-borders-4/#border-top-left-radius
2466#[syntax(" <border-radius> ")]
2467#[derive(
2468	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2469)]
2470#[declaration_metadata(
2471    initial = "0",
2472    applies_to = Elements,
2473    animation_type = ByComputedValue,
2474    percentages = BorderBox,
2475    shorthand_group = BorderRadius,
2476    property_group = Borders,
2477    computed_value_type = Unknown,
2478    canonical_order = "per grammar",
2479    logical_property_group = BorderRadius,
2480    box_side = Top|Left,
2481    box_portion = Border,
2482)]
2483#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2484#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-left-radius"))]
2485#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2486#[derive(csskit_derives::NodeWithMetadata)]
2487pub struct BorderTopLeftRadiusStyleValue;
2488
2489/// Represents the style value for `border-top-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-radius).
2490///
2491/// The grammar is defined as:
2492///
2493/// ```text,ignore
2494/// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
2495/// ```
2496///
2497/// https://drafts.csswg.org/css-borders-4/#border-top-radius
2498#[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
2499#[derive(
2500	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2501)]
2502#[declaration_metadata(
2503    initial = "0",
2504    applies_to = Elements,
2505    animation_type = Unknown,
2506    percentages = BorderBox,
2507    property_group = Borders,
2508    computed_value_type = Unknown,
2509    canonical_order = "per grammar",
2510    box_portion = Border,
2511)]
2512#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2513#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-radius"))]
2514#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2515#[derive(csskit_derives::NodeWithMetadata)]
2516pub struct BorderTopRadiusStyleValue;
2517
2518/// Represents the style value for `border-top-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-right-radius).
2519///
2520/// The border-radius CSS property rounds the corners of the border drawn around an element.
2521///
2522/// The grammar is defined as:
2523///
2524/// ```text,ignore
2525/// <border-radius>
2526/// ```
2527///
2528/// https://drafts.csswg.org/css-borders-4/#border-top-right-radius
2529#[syntax(" <border-radius> ")]
2530#[derive(
2531	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2532)]
2533#[declaration_metadata(
2534    initial = "0",
2535    applies_to = Elements,
2536    animation_type = ByComputedValue,
2537    percentages = BorderBox,
2538    shorthand_group = BorderRadius,
2539    property_group = Borders,
2540    computed_value_type = Unknown,
2541    canonical_order = "per grammar",
2542    logical_property_group = BorderRadius,
2543    box_side = Top|Right,
2544    box_portion = Border,
2545)]
2546#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2547#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-right-radius"))]
2548#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2549#[derive(csskit_derives::NodeWithMetadata)]
2550pub struct BorderTopRightRadiusStyleValue;
2551
2552/// Represents the style value for `border-top-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-style).
2553///
2554/// The border CSS property sets the color, style, and width of the line around an element.
2555///
2556/// The grammar is defined as:
2557///
2558/// ```text,ignore
2559/// <line-style>
2560/// ```
2561///
2562/// https://drafts.csswg.org/css-borders-4/#border-top-style
2563#[syntax(" <line-style> ")]
2564#[derive(
2565	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2566)]
2567#[declaration_metadata(
2568    initial = "none",
2569    applies_to = Unknown,
2570    animation_type = Discrete,
2571    shorthand_group = Border,
2572    property_group = Borders,
2573    computed_value_type = Unknown,
2574    canonical_order = "per grammar",
2575    logical_property_group = BorderStyle,
2576    box_portion = Border,
2577)]
2578#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2579#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-style"))]
2580#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2581#[derive(csskit_derives::NodeWithMetadata)]
2582pub struct BorderTopStyleStyleValue;
2583
2584/// Represents the style value for `border-top-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-width).
2585///
2586/// The border CSS property sets the color, style, and width of the line around an element.
2587///
2588/// The grammar is defined as:
2589///
2590/// ```text,ignore
2591/// <line-width>
2592/// ```
2593///
2594/// https://drafts.csswg.org/css-borders-4/#border-top-width
2595#[syntax(" <line-width> ")]
2596#[derive(
2597	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2598)]
2599#[declaration_metadata(
2600    initial = "medium",
2601    applies_to = Unknown,
2602    animation_type = ByComputedValue,
2603    shorthand_group = Border,
2604    property_group = Borders,
2605    computed_value_type = AbsoluteLength,
2606    canonical_order = "per grammar",
2607    logical_property_group = BorderWidth,
2608    box_portion = Border,
2609)]
2610#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2611#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-width"))]
2612#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2613#[derive(csskit_derives::NodeWithMetadata)]
2614pub struct BorderTopWidthStyleValue;
2615
2616/// Represents the style value for `border-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-width).
2617///
2618/// The border CSS property sets the color, style, and width of the line around an element.
2619///
2620/// The grammar is defined as:
2621///
2622/// ```text,ignore
2623/// <'border-top-width'>{1,4}
2624/// ```
2625///
2626/// https://drafts.csswg.org/css-borders-4/#border-width
2627#[syntax(" <'border-top-width'>{1,4} ")]
2628#[derive(
2629	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2630)]
2631#[declaration_metadata(
2632    initial = "see individual properties",
2633    inherits = Unknown,
2634    applies_to = Unknown,
2635    animation_type = Unknown,
2636    percentages = Unknown,
2637    shorthand_group = Border,
2638    longhands = BorderBottomWidth|BorderLeftWidth|BorderRightWidth|BorderTopWidth,
2639    property_group = Borders,
2640    computed_value_type = Unknown,
2641    canonical_order = "per grammar",
2642    box_side = Top|Bottom|Left|Right,
2643    box_portion = Border,
2644)]
2645#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2646#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-width"))]
2647#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2648#[derive(csskit_derives::NodeWithMetadata)]
2649pub struct BorderWidthStyleValue;
2650
2651/// Represents the style value for `box-shadow` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow).
2652///
2653/// The box-shadow CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects.
2654///
2655/// The grammar is defined as:
2656///
2657/// ```text,ignore
2658/// <spread-shadow>#
2659/// ```
2660///
2661/// https://drafts.csswg.org/css-borders-4/#box-shadow
2662#[syntax(" <spread-shadow># ")]
2663#[derive(
2664	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2665)]
2666#[declaration_metadata(
2667    initial = "none",
2668    applies_to = Elements,
2669    animation_type = Unknown,
2670    property_group = Borders,
2671    computed_value_type = Unknown,
2672    canonical_order = "per grammar",
2673)]
2674#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2675#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow"))]
2676#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2677#[derive(csskit_derives::NodeWithMetadata)]
2678pub struct BoxShadowStyleValue<'a>;
2679
2680/// Represents the style value for `box-shadow-blur` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-blur).
2681///
2682/// The grammar is defined as:
2683///
2684/// ```text,ignore
2685/// <length [0,∞]>#
2686/// ```
2687///
2688/// https://drafts.csswg.org/css-borders-4/#box-shadow-blur
2689#[syntax(" <length [0,∞]># ")]
2690#[derive(
2691	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2692)]
2693#[declaration_metadata(
2694    initial = "0",
2695    applies_to = Elements,
2696    animation_type = ByComputedValue,
2697    property_group = Borders,
2698    computed_value_type = Unknown,
2699    canonical_order = "per grammar",
2700)]
2701#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2702#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-blur"))]
2703#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2704#[derive(csskit_derives::NodeWithMetadata)]
2705pub struct BoxShadowBlurStyleValue<'a>;
2706
2707/// Represents the style value for `box-shadow-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-color).
2708///
2709/// The grammar is defined as:
2710///
2711/// ```text,ignore
2712/// <color>#
2713/// ```
2714///
2715/// https://drafts.csswg.org/css-borders-4/#box-shadow-color
2716#[syntax(" <color># ")]
2717#[derive(
2718	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2719)]
2720#[declaration_metadata(
2721    initial = "currentcolor",
2722    applies_to = Elements,
2723    animation_type = ByComputedValue,
2724    property_group = Borders,
2725    computed_value_type = Unknown,
2726    canonical_order = "per grammar",
2727)]
2728#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2729#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-color"))]
2730#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2731#[derive(csskit_derives::NodeWithMetadata)]
2732pub struct BoxShadowColorStyleValue<'a>;
2733
2734/// Represents the style value for `box-shadow-offset` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-offset).
2735///
2736/// The grammar is defined as:
2737///
2738/// ```text,ignore
2739/// [ none | <length>{1,2} ]#
2740/// ```
2741///
2742/// https://drafts.csswg.org/css-borders-4/#box-shadow-offset
2743#[syntax(" [ none | <length>{1,2} ]# ")]
2744#[derive(
2745	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2746)]
2747#[declaration_metadata(
2748    initial = "none",
2749    applies_to = Elements,
2750    animation_type = ByComputedValue,
2751    property_group = Borders,
2752    computed_value_type = Unknown,
2753    canonical_order = "per grammar",
2754)]
2755#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2756#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-offset"))]
2757#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2758#[derive(csskit_derives::NodeWithMetadata)]
2759pub struct BoxShadowOffsetStyleValue<'a>;
2760
2761/// Represents the style value for `box-shadow-position` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-position).
2762///
2763/// The grammar is defined as:
2764///
2765/// ```text,ignore
2766/// [ outset | inset ]#
2767/// ```
2768///
2769/// https://drafts.csswg.org/css-borders-4/#box-shadow-position
2770#[syntax(" [ outset | inset ]# ")]
2771#[derive(
2772	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2773)]
2774#[declaration_metadata(
2775    initial = "outset",
2776    applies_to = Elements,
2777    animation_type = ByComputedValue,
2778    property_group = Borders,
2779    computed_value_type = Unknown,
2780    canonical_order = "per grammar",
2781)]
2782#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2783#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-position"))]
2784#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2785#[derive(csskit_derives::NodeWithMetadata)]
2786pub struct BoxShadowPositionStyleValue<'a>;
2787
2788/// Represents the style value for `box-shadow-spread` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-spread).
2789///
2790/// The grammar is defined as:
2791///
2792/// ```text,ignore
2793/// <length>#
2794/// ```
2795///
2796/// https://drafts.csswg.org/css-borders-4/#box-shadow-spread
2797#[syntax(" <length># ")]
2798#[derive(
2799	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2800)]
2801#[declaration_metadata(
2802    initial = "0",
2803    applies_to = Elements,
2804    animation_type = ByComputedValue,
2805    property_group = Borders,
2806    computed_value_type = Unknown,
2807    canonical_order = "per grammar",
2808)]
2809#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2810#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-spread"))]
2811#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2812#[derive(csskit_derives::NodeWithMetadata)]
2813pub struct BoxShadowSpreadStyleValue<'a>;
2814
2815// /// Represents the style value for `corner` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner).
2816// ///
2817// /// The grammar is defined as:
2818// ///
2819// /// ```text,ignore
2820// /// <'border-radius'> || <'corner-shape'>
2821// /// ```
2822// ///
2823// /// https://drafts.csswg.org/css-borders-4/#corner
2824// #[syntax(" <'border-radius'> || <'corner-shape'> ")]
2825// #[derive(
2826//     Parse,
2827//     Peek,
2828//     ToSpan,
2829//     ToCursors,
2830//     DeclarationMetadata,
2831//     SemanticEq,
2832//     Debug,
2833//     Clone,
2834//     PartialEq,
2835//     Eq,
2836//     PartialOrd,
2837//     Ord,
2838//     Hash,
2839// )]
2840// #[declaration_metadata(
2841//     initial = "0",
2842//     applies_to = Elements,
2843//     animation_type = Unknown,
2844//     percentages = BorderBox,
2845//     property_group = Borders,
2846//     computed_value_type = Unknown,
2847//     canonical_order = "per grammar",
2848// )]
2849// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2850// #[cfg_attr(
2851//     feature = "css_feature_data",
2852//     derive(ToCSSFeature),
2853//     css_feature("css.properties.corner")
2854// )]
2855// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2856// #[derive(csskit_derives::NodeWithMetadata)]
2857// pub struct CornerStyleValue;
2858
2859// /// Represents the style value for `corner-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-end).
2860// ///
2861// /// The grammar is defined as:
2862// ///
2863// /// ```text,ignore
2864// /// <'border-top-radius'> || <'corner-top-shape'>
2865// /// ```
2866// ///
2867// /// https://drafts.csswg.org/css-borders-4/#corner-block-end
2868// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2869// #[derive(
2870//     Parse,
2871//     Peek,
2872//     ToSpan,
2873//     ToCursors,
2874//     DeclarationMetadata,
2875//     SemanticEq,
2876//     Debug,
2877//     Clone,
2878//     PartialEq,
2879//     Eq,
2880//     PartialOrd,
2881//     Ord,
2882//     Hash,
2883// )]
2884// #[declaration_metadata(
2885//     initial = "0",
2886//     applies_to = Elements,
2887//     animation_type = Unknown,
2888//     percentages = BorderBox,
2889//     property_group = Borders,
2890//     computed_value_type = Unknown,
2891//     canonical_order = "per grammar",
2892//     box_side = BlockEnd,
2893// )]
2894// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2895// #[cfg_attr(
2896//     feature = "css_feature_data",
2897//     derive(ToCSSFeature),
2898//     css_feature("css.properties.corner-block-end")
2899// )]
2900// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2901// #[derive(csskit_derives::NodeWithMetadata)]
2902// pub struct CornerBlockEndStyleValue;
2903
2904/// Represents the style value for `corner-block-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-end-shape).
2905///
2906/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
2907///
2908/// The grammar is defined as:
2909///
2910/// ```text,ignore
2911/// <'corner-top-left-shape'>{1,2}
2912/// ```
2913///
2914/// https://drafts.csswg.org/css-borders-4/#corner-block-end-shape
2915#[syntax(" <'corner-top-left-shape'>{1,2} ")]
2916#[derive(
2917	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2918)]
2919#[declaration_metadata(
2920    initial = "see individual properties",
2921    inherits = Unknown,
2922    applies_to = Unknown,
2923    animation_type = Unknown,
2924    percentages = Unknown,
2925    property_group = Borders,
2926    computed_value_type = Unknown,
2927    canonical_order = "per grammar",
2928)]
2929#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2930#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-end-shape"))]
2931#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2932#[derive(csskit_derives::NodeWithMetadata)]
2933pub struct CornerBlockEndShapeStyleValue;
2934
2935// /// Represents the style value for `corner-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-start).
2936// ///
2937// /// The grammar is defined as:
2938// ///
2939// /// ```text,ignore
2940// /// <'border-top-radius'> || <'corner-top-shape'>
2941// /// ```
2942// ///
2943// /// https://drafts.csswg.org/css-borders-4/#corner-block-start
2944// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2945// #[derive(
2946//     Parse,
2947//     Peek,
2948//     ToSpan,
2949//     ToCursors,
2950//     DeclarationMetadata,
2951//     SemanticEq,
2952//     Debug,
2953//     Clone,
2954//     PartialEq,
2955//     Eq,
2956//     PartialOrd,
2957//     Ord,
2958//     Hash,
2959// )]
2960// #[declaration_metadata(
2961//     initial = "0",
2962//     applies_to = Elements,
2963//     animation_type = Unknown,
2964//     percentages = BorderBox,
2965//     property_group = Borders,
2966//     computed_value_type = Unknown,
2967//     canonical_order = "per grammar",
2968//     box_side = BlockStart,
2969// )]
2970// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2971// #[cfg_attr(
2972//     feature = "css_feature_data",
2973//     derive(ToCSSFeature),
2974//     css_feature("css.properties.corner-block-start")
2975// )]
2976// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2977// #[derive(csskit_derives::NodeWithMetadata)]
2978// pub struct CornerBlockStartStyleValue;
2979
2980/// Represents the style value for `corner-block-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-start-shape).
2981///
2982/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
2983///
2984/// The grammar is defined as:
2985///
2986/// ```text,ignore
2987/// <'corner-top-left-shape'>{1,2}
2988/// ```
2989///
2990/// https://drafts.csswg.org/css-borders-4/#corner-block-start-shape
2991#[syntax(" <'corner-top-left-shape'>{1,2} ")]
2992#[derive(
2993	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2994)]
2995#[declaration_metadata(
2996    initial = "see individual properties",
2997    inherits = Unknown,
2998    applies_to = Unknown,
2999    animation_type = Unknown,
3000    percentages = Unknown,
3001    property_group = Borders,
3002    computed_value_type = Unknown,
3003    canonical_order = "per grammar",
3004)]
3005#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3006#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-start-shape"))]
3007#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3008#[derive(csskit_derives::NodeWithMetadata)]
3009pub struct CornerBlockStartShapeStyleValue;
3010
3011// /// Represents the style value for `corner-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom).
3012// ///
3013// /// The grammar is defined as:
3014// ///
3015// /// ```text,ignore
3016// /// <'border-top-radius'> || <'corner-top-shape'>
3017// /// ```
3018// ///
3019// /// https://drafts.csswg.org/css-borders-4/#corner-bottom
3020// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3021// #[derive(
3022//     Parse,
3023//     Peek,
3024//     ToSpan,
3025//     ToCursors,
3026//     DeclarationMetadata,
3027//     SemanticEq,
3028//     Debug,
3029//     Clone,
3030//     PartialEq,
3031//     Eq,
3032//     PartialOrd,
3033//     Ord,
3034//     Hash,
3035// )]
3036// #[declaration_metadata(
3037//     initial = "0",
3038//     applies_to = Elements,
3039//     animation_type = Unknown,
3040//     percentages = BorderBox,
3041//     property_group = Borders,
3042//     computed_value_type = Unknown,
3043//     canonical_order = "per grammar",
3044//     box_side = Bottom,
3045// )]
3046// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3047// #[cfg_attr(
3048//     feature = "css_feature_data",
3049//     derive(ToCSSFeature),
3050//     css_feature("css.properties.corner-bottom")
3051// )]
3052// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3053// #[derive(csskit_derives::NodeWithMetadata)]
3054// pub struct CornerBottomStyleValue;
3055
3056// /// Represents the style value for `corner-bottom-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-left).
3057// ///
3058// /// The grammar is defined as:
3059// ///
3060// /// ```text,ignore
3061// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3062// /// ```
3063// ///
3064// /// https://drafts.csswg.org/css-borders-4/#corner-bottom-left
3065// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3066// #[derive(
3067//     Parse,
3068//     Peek,
3069//     ToSpan,
3070//     ToCursors,
3071//     DeclarationMetadata,
3072//     SemanticEq,
3073//     Debug,
3074//     Clone,
3075//     PartialEq,
3076//     Eq,
3077//     PartialOrd,
3078//     Ord,
3079//     Hash,
3080// )]
3081// #[declaration_metadata(
3082//     initial = "0",
3083//     applies_to = Elements,
3084//     animation_type = Unknown,
3085//     percentages = BorderBox,
3086//     property_group = Borders,
3087//     computed_value_type = Unknown,
3088//     canonical_order = "per grammar",
3089//     box_side = Bottom|Left,
3090// )]
3091// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3092// #[cfg_attr(
3093//     feature = "css_feature_data",
3094//     derive(ToCSSFeature),
3095//     css_feature("css.properties.corner-bottom-left")
3096// )]
3097// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3098// #[derive(csskit_derives::NodeWithMetadata)]
3099// pub struct CornerBottomLeftStyleValue;
3100
3101/// Represents the style value for `corner-bottom-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-left-shape).
3102///
3103/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3104///
3105/// The grammar is defined as:
3106///
3107/// ```text,ignore
3108/// <corner-shape-value>
3109/// ```
3110///
3111/// https://drafts.csswg.org/css-borders-4/#corner-bottom-left-shape
3112#[syntax(" <corner-shape-value> ")]
3113#[derive(
3114	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3115)]
3116#[declaration_metadata(
3117    initial = "round",
3118    applies_to = Unknown,
3119    animation_type = Unknown,
3120    property_group = Borders,
3121    computed_value_type = Unknown,
3122    canonical_order = "per grammar",
3123    logical_property_group = CornerShape,
3124    box_side = Bottom|Left,
3125)]
3126#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3127#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-left-shape"))]
3128#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3129#[derive(csskit_derives::NodeWithMetadata)]
3130pub struct CornerBottomLeftShapeStyleValue;
3131
3132// /// Represents the style value for `corner-bottom-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-right).
3133// ///
3134// /// The grammar is defined as:
3135// ///
3136// /// ```text,ignore
3137// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3138// /// ```
3139// ///
3140// /// https://drafts.csswg.org/css-borders-4/#corner-bottom-right
3141// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3142// #[derive(
3143//     Parse,
3144//     Peek,
3145//     ToSpan,
3146//     ToCursors,
3147//     DeclarationMetadata,
3148//     SemanticEq,
3149//     Debug,
3150//     Clone,
3151//     PartialEq,
3152//     Eq,
3153//     PartialOrd,
3154//     Ord,
3155//     Hash,
3156// )]
3157// #[declaration_metadata(
3158//     initial = "0",
3159//     applies_to = Elements,
3160//     animation_type = Unknown,
3161//     percentages = BorderBox,
3162//     property_group = Borders,
3163//     computed_value_type = Unknown,
3164//     canonical_order = "per grammar",
3165//     box_side = Bottom|Right,
3166// )]
3167// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3168// #[cfg_attr(
3169//     feature = "css_feature_data",
3170//     derive(ToCSSFeature),
3171//     css_feature("css.properties.corner-bottom-right")
3172// )]
3173// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3174// #[derive(csskit_derives::NodeWithMetadata)]
3175// pub struct CornerBottomRightStyleValue;
3176
3177/// Represents the style value for `corner-bottom-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-right-shape).
3178///
3179/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3180///
3181/// The grammar is defined as:
3182///
3183/// ```text,ignore
3184/// <corner-shape-value>
3185/// ```
3186///
3187/// https://drafts.csswg.org/css-borders-4/#corner-bottom-right-shape
3188#[syntax(" <corner-shape-value> ")]
3189#[derive(
3190	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3191)]
3192#[declaration_metadata(
3193    initial = "round",
3194    applies_to = Unknown,
3195    animation_type = Unknown,
3196    property_group = Borders,
3197    computed_value_type = Unknown,
3198    canonical_order = "per grammar",
3199    logical_property_group = CornerShape,
3200    box_side = Bottom|Right,
3201)]
3202#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3203#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-right-shape"))]
3204#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3205#[derive(csskit_derives::NodeWithMetadata)]
3206pub struct CornerBottomRightShapeStyleValue;
3207
3208/// Represents the style value for `corner-bottom-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-shape).
3209///
3210/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3211///
3212/// The grammar is defined as:
3213///
3214/// ```text,ignore
3215/// <'corner-top-left-shape'>{1,2}
3216/// ```
3217///
3218/// https://drafts.csswg.org/css-borders-4/#corner-bottom-shape
3219#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3220#[derive(
3221	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3222)]
3223#[declaration_metadata(
3224    initial = "see individual properties",
3225    inherits = Unknown,
3226    applies_to = Unknown,
3227    animation_type = Unknown,
3228    percentages = Unknown,
3229    property_group = Borders,
3230    computed_value_type = Unknown,
3231    canonical_order = "per grammar",
3232)]
3233#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3234#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-shape"))]
3235#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3236#[derive(csskit_derives::NodeWithMetadata)]
3237pub struct CornerBottomShapeStyleValue;
3238
3239// /// Represents the style value for `corner-end-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-end).
3240// ///
3241// /// The grammar is defined as:
3242// ///
3243// /// ```text,ignore
3244// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3245// /// ```
3246// ///
3247// /// https://drafts.csswg.org/css-borders-4/#corner-end-end
3248// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3249// #[derive(
3250//     Parse,
3251//     Peek,
3252//     ToSpan,
3253//     ToCursors,
3254//     DeclarationMetadata,
3255//     SemanticEq,
3256//     Debug,
3257//     Clone,
3258//     PartialEq,
3259//     Eq,
3260//     PartialOrd,
3261//     Ord,
3262//     Hash,
3263// )]
3264// #[declaration_metadata(
3265//     initial = "0",
3266//     applies_to = Elements,
3267//     animation_type = Unknown,
3268//     percentages = BorderBox,
3269//     property_group = Borders,
3270//     computed_value_type = Unknown,
3271//     canonical_order = "per grammar",
3272//     box_side = BlockEnd|InlineEnd,
3273// )]
3274// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3275// #[cfg_attr(
3276//     feature = "css_feature_data",
3277//     derive(ToCSSFeature),
3278//     css_feature("css.properties.corner-end-end")
3279// )]
3280// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3281// #[derive(csskit_derives::NodeWithMetadata)]
3282// pub struct CornerEndEndStyleValue;
3283
3284/// Represents the style value for `corner-end-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-end-shape).
3285///
3286/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3287///
3288/// The grammar is defined as:
3289///
3290/// ```text,ignore
3291/// <corner-shape-value>
3292/// ```
3293///
3294/// https://drafts.csswg.org/css-borders-4/#corner-end-end-shape
3295#[syntax(" <corner-shape-value> ")]
3296#[derive(
3297	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3298)]
3299#[declaration_metadata(
3300    initial = "round",
3301    applies_to = Unknown,
3302    animation_type = Unknown,
3303    property_group = Borders,
3304    computed_value_type = Unknown,
3305    canonical_order = "per grammar",
3306    logical_property_group = CornerShape,
3307    box_side = BlockEnd|InlineEnd,
3308)]
3309#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3310#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-end-shape"))]
3311#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3312#[derive(csskit_derives::NodeWithMetadata)]
3313pub struct CornerEndEndShapeStyleValue;
3314
3315// /// Represents the style value for `corner-end-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-start).
3316// ///
3317// /// The grammar is defined as:
3318// ///
3319// /// ```text,ignore
3320// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3321// /// ```
3322// ///
3323// /// https://drafts.csswg.org/css-borders-4/#corner-end-start
3324// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3325// #[derive(
3326//     Parse,
3327//     Peek,
3328//     ToSpan,
3329//     ToCursors,
3330//     DeclarationMetadata,
3331//     SemanticEq,
3332//     Debug,
3333//     Clone,
3334//     PartialEq,
3335//     Eq,
3336//     PartialOrd,
3337//     Ord,
3338//     Hash,
3339// )]
3340// #[declaration_metadata(
3341//     initial = "0",
3342//     applies_to = Elements,
3343//     animation_type = Unknown,
3344//     percentages = BorderBox,
3345//     property_group = Borders,
3346//     computed_value_type = Unknown,
3347//     canonical_order = "per grammar",
3348//     box_side = BlockEnd|InlineStart,
3349// )]
3350// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3351// #[cfg_attr(
3352//     feature = "css_feature_data",
3353//     derive(ToCSSFeature),
3354//     css_feature("css.properties.corner-end-start")
3355// )]
3356// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3357// #[derive(csskit_derives::NodeWithMetadata)]
3358// pub struct CornerEndStartStyleValue;
3359
3360/// Represents the style value for `corner-end-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-start-shape).
3361///
3362/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3363///
3364/// The grammar is defined as:
3365///
3366/// ```text,ignore
3367/// <corner-shape-value>
3368/// ```
3369///
3370/// https://drafts.csswg.org/css-borders-4/#corner-end-start-shape
3371#[syntax(" <corner-shape-value> ")]
3372#[derive(
3373	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3374)]
3375#[declaration_metadata(
3376    initial = "round",
3377    applies_to = Unknown,
3378    animation_type = Unknown,
3379    property_group = Borders,
3380    computed_value_type = Unknown,
3381    canonical_order = "per grammar",
3382    logical_property_group = CornerShape,
3383    box_side = BlockEnd|InlineStart,
3384)]
3385#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3386#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-start-shape"))]
3387#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3388#[derive(csskit_derives::NodeWithMetadata)]
3389pub struct CornerEndStartShapeStyleValue;
3390
3391// /// Represents the style value for `corner-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-end).
3392// ///
3393// /// The grammar is defined as:
3394// ///
3395// /// ```text,ignore
3396// /// <'border-top-radius'> || <'corner-top-shape'>
3397// /// ```
3398// ///
3399// /// https://drafts.csswg.org/css-borders-4/#corner-inline-end
3400// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3401// #[derive(
3402//     Parse,
3403//     Peek,
3404//     ToSpan,
3405//     ToCursors,
3406//     DeclarationMetadata,
3407//     SemanticEq,
3408//     Debug,
3409//     Clone,
3410//     PartialEq,
3411//     Eq,
3412//     PartialOrd,
3413//     Ord,
3414//     Hash,
3415// )]
3416// #[declaration_metadata(
3417//     initial = "0",
3418//     applies_to = Elements,
3419//     animation_type = Unknown,
3420//     percentages = BorderBox,
3421//     property_group = Borders,
3422//     computed_value_type = Unknown,
3423//     canonical_order = "per grammar",
3424//     box_side = InlineEnd,
3425// )]
3426// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3427// #[cfg_attr(
3428//     feature = "css_feature_data",
3429//     derive(ToCSSFeature),
3430//     css_feature("css.properties.corner-inline-end")
3431// )]
3432// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3433// #[derive(csskit_derives::NodeWithMetadata)]
3434// pub struct CornerInlineEndStyleValue;
3435
3436/// Represents the style value for `corner-inline-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-end-shape).
3437///
3438/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3439///
3440/// The grammar is defined as:
3441///
3442/// ```text,ignore
3443/// <'corner-top-left-shape'>{1,2}
3444/// ```
3445///
3446/// https://drafts.csswg.org/css-borders-4/#corner-inline-end-shape
3447#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3448#[derive(
3449	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3450)]
3451#[declaration_metadata(
3452    initial = "see individual properties",
3453    inherits = Unknown,
3454    applies_to = Unknown,
3455    animation_type = Unknown,
3456    percentages = Unknown,
3457    property_group = Borders,
3458    computed_value_type = Unknown,
3459    canonical_order = "per grammar",
3460)]
3461#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3462#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-end-shape"))]
3463#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3464#[derive(csskit_derives::NodeWithMetadata)]
3465pub struct CornerInlineEndShapeStyleValue;
3466
3467// /// Represents the style value for `corner-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-start).
3468// ///
3469// /// The grammar is defined as:
3470// ///
3471// /// ```text,ignore
3472// /// <'border-top-radius'> || <'corner-top-shape'>
3473// /// ```
3474// ///
3475// /// https://drafts.csswg.org/css-borders-4/#corner-inline-start
3476// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3477// #[derive(
3478//     Parse,
3479//     Peek,
3480//     ToSpan,
3481//     ToCursors,
3482//     DeclarationMetadata,
3483//     SemanticEq,
3484//     Debug,
3485//     Clone,
3486//     PartialEq,
3487//     Eq,
3488//     PartialOrd,
3489//     Ord,
3490//     Hash,
3491// )]
3492// #[declaration_metadata(
3493//     initial = "0",
3494//     applies_to = Elements,
3495//     animation_type = Unknown,
3496//     percentages = BorderBox,
3497//     property_group = Borders,
3498//     computed_value_type = Unknown,
3499//     canonical_order = "per grammar",
3500//     box_side = InlineStart,
3501// )]
3502// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3503// #[cfg_attr(
3504//     feature = "css_feature_data",
3505//     derive(ToCSSFeature),
3506//     css_feature("css.properties.corner-inline-start")
3507// )]
3508// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3509// #[derive(csskit_derives::NodeWithMetadata)]
3510// pub struct CornerInlineStartStyleValue;
3511
3512/// Represents the style value for `corner-inline-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-start-shape).
3513///
3514/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3515///
3516/// The grammar is defined as:
3517///
3518/// ```text,ignore
3519/// <'corner-top-left-shape'>{1,2}
3520/// ```
3521///
3522/// https://drafts.csswg.org/css-borders-4/#corner-inline-start-shape
3523#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3524#[derive(
3525	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3526)]
3527#[declaration_metadata(
3528    initial = "see individual properties",
3529    inherits = Unknown,
3530    applies_to = Unknown,
3531    animation_type = Unknown,
3532    percentages = Unknown,
3533    property_group = Borders,
3534    computed_value_type = Unknown,
3535    canonical_order = "per grammar",
3536)]
3537#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3538#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-start-shape"))]
3539#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3540#[derive(csskit_derives::NodeWithMetadata)]
3541pub struct CornerInlineStartShapeStyleValue;
3542
3543// /// Represents the style value for `corner-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left).
3544// ///
3545// /// The grammar is defined as:
3546// ///
3547// /// ```text,ignore
3548// /// <'border-top-radius'> || <'corner-top-shape'>
3549// /// ```
3550// ///
3551// /// https://drafts.csswg.org/css-borders-4/#corner-left
3552// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3553// #[derive(
3554//     Parse,
3555//     Peek,
3556//     ToSpan,
3557//     ToCursors,
3558//     DeclarationMetadata,
3559//     SemanticEq,
3560//     Debug,
3561//     Clone,
3562//     PartialEq,
3563//     Eq,
3564//     PartialOrd,
3565//     Ord,
3566//     Hash,
3567// )]
3568// #[declaration_metadata(
3569//     initial = "0",
3570//     applies_to = Elements,
3571//     animation_type = Unknown,
3572//     percentages = BorderBox,
3573//     property_group = Borders,
3574//     computed_value_type = Unknown,
3575//     canonical_order = "per grammar",
3576//     box_side = Left,
3577// )]
3578// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3579// #[cfg_attr(
3580//     feature = "css_feature_data",
3581//     derive(ToCSSFeature),
3582//     css_feature("css.properties.corner-left")
3583// )]
3584// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3585// #[derive(csskit_derives::NodeWithMetadata)]
3586// pub struct CornerLeftStyleValue;
3587
3588/// Represents the style value for `corner-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left-shape).
3589///
3590/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3591///
3592/// The grammar is defined as:
3593///
3594/// ```text,ignore
3595/// <'corner-top-left-shape'>{1,2}
3596/// ```
3597///
3598/// https://drafts.csswg.org/css-borders-4/#corner-left-shape
3599#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3600#[derive(
3601	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3602)]
3603#[declaration_metadata(
3604    initial = "see individual properties",
3605    inherits = Unknown,
3606    applies_to = Unknown,
3607    animation_type = Unknown,
3608    percentages = Unknown,
3609    property_group = Borders,
3610    computed_value_type = Unknown,
3611    canonical_order = "per grammar",
3612)]
3613#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3614#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-left-shape"))]
3615#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3616#[derive(csskit_derives::NodeWithMetadata)]
3617pub struct CornerLeftShapeStyleValue;
3618
3619// /// Represents the style value for `corner-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right).
3620// ///
3621// /// The grammar is defined as:
3622// ///
3623// /// ```text,ignore
3624// /// <'border-top-radius'> || <'corner-top-shape'>
3625// /// ```
3626// ///
3627// /// https://drafts.csswg.org/css-borders-4/#corner-right
3628// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3629// #[derive(
3630//     Parse,
3631//     Peek,
3632//     ToSpan,
3633//     ToCursors,
3634//     DeclarationMetadata,
3635//     SemanticEq,
3636//     Debug,
3637//     Clone,
3638//     PartialEq,
3639//     Eq,
3640//     PartialOrd,
3641//     Ord,
3642//     Hash,
3643// )]
3644// #[declaration_metadata(
3645//     initial = "0",
3646//     applies_to = Elements,
3647//     animation_type = Unknown,
3648//     percentages = BorderBox,
3649//     property_group = Borders,
3650//     computed_value_type = Unknown,
3651//     canonical_order = "per grammar",
3652//     box_side = Right,
3653// )]
3654// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3655// #[cfg_attr(
3656//     feature = "css_feature_data",
3657//     derive(ToCSSFeature),
3658//     css_feature("css.properties.corner-right")
3659// )]
3660// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3661// #[derive(csskit_derives::NodeWithMetadata)]
3662// pub struct CornerRightStyleValue;
3663
3664/// Represents the style value for `corner-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right-shape).
3665///
3666/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3667///
3668/// The grammar is defined as:
3669///
3670/// ```text,ignore
3671/// <'corner-top-left-shape'>{1,2}
3672/// ```
3673///
3674/// https://drafts.csswg.org/css-borders-4/#corner-right-shape
3675#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3676#[derive(
3677	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3678)]
3679#[declaration_metadata(
3680    initial = "see individual properties",
3681    inherits = Unknown,
3682    applies_to = Unknown,
3683    animation_type = Unknown,
3684    percentages = Unknown,
3685    property_group = Borders,
3686    computed_value_type = Unknown,
3687    canonical_order = "per grammar",
3688)]
3689#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3690#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-right-shape"))]
3691#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3692#[derive(csskit_derives::NodeWithMetadata)]
3693pub struct CornerRightShapeStyleValue;
3694
3695/// Represents the style value for `corner-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-shape).
3696///
3697/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3698///
3699/// The grammar is defined as:
3700///
3701/// ```text,ignore
3702/// <'corner-top-left-shape'>{1,4}
3703/// ```
3704///
3705/// https://drafts.csswg.org/css-borders-4/#corner-shape
3706#[syntax(" <'corner-top-left-shape'>{1,4} ")]
3707#[derive(
3708	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3709)]
3710#[declaration_metadata(
3711    initial = "round",
3712    applies_to = Unknown,
3713    animation_type = Unknown,
3714    percentages = Unknown,
3715    property_group = Borders,
3716    computed_value_type = Unknown,
3717    canonical_order = "per grammar",
3718)]
3719#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3720#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-shape"))]
3721#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3722#[derive(csskit_derives::NodeWithMetadata)]
3723pub struct CornerShapeStyleValue;
3724
3725// /// Represents the style value for `corner-start-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-end).
3726// ///
3727// /// The grammar is defined as:
3728// ///
3729// /// ```text,ignore
3730// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3731// /// ```
3732// ///
3733// /// https://drafts.csswg.org/css-borders-4/#corner-start-end
3734// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3735// #[derive(
3736//     Parse,
3737//     Peek,
3738//     ToSpan,
3739//     ToCursors,
3740//     DeclarationMetadata,
3741//     SemanticEq,
3742//     Debug,
3743//     Clone,
3744//     PartialEq,
3745//     Eq,
3746//     PartialOrd,
3747//     Ord,
3748//     Hash,
3749// )]
3750// #[declaration_metadata(
3751//     initial = "0",
3752//     applies_to = Elements,
3753//     animation_type = Unknown,
3754//     percentages = BorderBox,
3755//     property_group = Borders,
3756//     computed_value_type = Unknown,
3757//     canonical_order = "per grammar",
3758//     box_side = BlockStart|InlineEnd,
3759// )]
3760// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3761// #[cfg_attr(
3762//     feature = "css_feature_data",
3763//     derive(ToCSSFeature),
3764//     css_feature("css.properties.corner-start-end")
3765// )]
3766// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3767// #[derive(csskit_derives::NodeWithMetadata)]
3768// pub struct CornerStartEndStyleValue;
3769
3770/// Represents the style value for `corner-start-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-end-shape).
3771///
3772/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3773///
3774/// The grammar is defined as:
3775///
3776/// ```text,ignore
3777/// <corner-shape-value>
3778/// ```
3779///
3780/// https://drafts.csswg.org/css-borders-4/#corner-start-end-shape
3781#[syntax(" <corner-shape-value> ")]
3782#[derive(
3783	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3784)]
3785#[declaration_metadata(
3786    initial = "round",
3787    applies_to = Unknown,
3788    animation_type = Unknown,
3789    property_group = Borders,
3790    computed_value_type = Unknown,
3791    canonical_order = "per grammar",
3792    logical_property_group = CornerShape,
3793    box_side = BlockStart|InlineEnd,
3794)]
3795#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3796#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-end-shape"))]
3797#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3798#[derive(csskit_derives::NodeWithMetadata)]
3799pub struct CornerStartEndShapeStyleValue;
3800
3801// /// Represents the style value for `corner-start-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-start).
3802// ///
3803// /// The grammar is defined as:
3804// ///
3805// /// ```text,ignore
3806// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3807// /// ```
3808// ///
3809// /// https://drafts.csswg.org/css-borders-4/#corner-start-start
3810// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3811// #[derive(
3812//     Parse,
3813//     Peek,
3814//     ToSpan,
3815//     ToCursors,
3816//     DeclarationMetadata,
3817//     SemanticEq,
3818//     Debug,
3819//     Clone,
3820//     PartialEq,
3821//     Eq,
3822//     PartialOrd,
3823//     Ord,
3824//     Hash,
3825// )]
3826// #[declaration_metadata(
3827//     initial = "0",
3828//     applies_to = Elements,
3829//     animation_type = Unknown,
3830//     percentages = BorderBox,
3831//     property_group = Borders,
3832//     computed_value_type = Unknown,
3833//     canonical_order = "per grammar",
3834//     box_side = BlockStart|InlineStart,
3835// )]
3836// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3837// #[cfg_attr(
3838//     feature = "css_feature_data",
3839//     derive(ToCSSFeature),
3840//     css_feature("css.properties.corner-start-start")
3841// )]
3842// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3843// #[derive(csskit_derives::NodeWithMetadata)]
3844// pub struct CornerStartStartStyleValue;
3845
3846/// Represents the style value for `corner-start-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-start-shape).
3847///
3848/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3849///
3850/// The grammar is defined as:
3851///
3852/// ```text,ignore
3853/// <corner-shape-value>
3854/// ```
3855///
3856/// https://drafts.csswg.org/css-borders-4/#corner-start-start-shape
3857#[syntax(" <corner-shape-value> ")]
3858#[derive(
3859	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3860)]
3861#[declaration_metadata(
3862    initial = "round",
3863    applies_to = Unknown,
3864    animation_type = Unknown,
3865    property_group = Borders,
3866    computed_value_type = Unknown,
3867    canonical_order = "per grammar",
3868    logical_property_group = CornerShape,
3869    box_side = BlockStart|InlineStart,
3870)]
3871#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3872#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-start-shape"))]
3873#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3874#[derive(csskit_derives::NodeWithMetadata)]
3875pub struct CornerStartStartShapeStyleValue;
3876
3877// /// Represents the style value for `corner-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top).
3878// ///
3879// /// The grammar is defined as:
3880// ///
3881// /// ```text,ignore
3882// /// <'border-top-radius'> || <'corner-top-shape'>
3883// /// ```
3884// ///
3885// /// https://drafts.csswg.org/css-borders-4/#corner-top
3886// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3887// #[derive(
3888//     Parse,
3889//     Peek,
3890//     ToSpan,
3891//     ToCursors,
3892//     DeclarationMetadata,
3893//     SemanticEq,
3894//     Debug,
3895//     Clone,
3896//     PartialEq,
3897//     Eq,
3898//     PartialOrd,
3899//     Ord,
3900//     Hash,
3901// )]
3902// #[declaration_metadata(
3903//     initial = "0",
3904//     applies_to = Elements,
3905//     animation_type = Unknown,
3906//     percentages = BorderBox,
3907//     property_group = Borders,
3908//     computed_value_type = Unknown,
3909//     canonical_order = "per grammar",
3910//     box_side = Top,
3911// )]
3912// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3913// #[cfg_attr(
3914//     feature = "css_feature_data",
3915//     derive(ToCSSFeature),
3916//     css_feature("css.properties.corner-top")
3917// )]
3918// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3919// #[derive(csskit_derives::NodeWithMetadata)]
3920// pub struct CornerTopStyleValue;
3921
3922// /// Represents the style value for `corner-top-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-left).
3923// ///
3924// /// The grammar is defined as:
3925// ///
3926// /// ```text,ignore
3927// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3928// /// ```
3929// ///
3930// /// https://drafts.csswg.org/css-borders-4/#corner-top-left
3931// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3932// #[derive(
3933//     Parse,
3934//     Peek,
3935//     ToSpan,
3936//     ToCursors,
3937//     DeclarationMetadata,
3938//     SemanticEq,
3939//     Debug,
3940//     Clone,
3941//     PartialEq,
3942//     Eq,
3943//     PartialOrd,
3944//     Ord,
3945//     Hash,
3946// )]
3947// #[declaration_metadata(
3948//     initial = "0",
3949//     applies_to = Elements,
3950//     animation_type = Unknown,
3951//     percentages = BorderBox,
3952//     property_group = Borders,
3953//     computed_value_type = Unknown,
3954//     canonical_order = "per grammar",
3955//     box_side = Top|Left,
3956// )]
3957// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3958// #[cfg_attr(
3959//     feature = "css_feature_data",
3960//     derive(ToCSSFeature),
3961//     css_feature("css.properties.corner-top-left")
3962// )]
3963// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3964// #[derive(csskit_derives::NodeWithMetadata)]
3965// pub struct CornerTopLeftStyleValue;
3966
3967/// Represents the style value for `corner-top-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-left-shape).
3968///
3969/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3970///
3971/// The grammar is defined as:
3972///
3973/// ```text,ignore
3974/// <corner-shape-value>
3975/// ```
3976///
3977/// https://drafts.csswg.org/css-borders-4/#corner-top-left-shape
3978#[syntax(" <corner-shape-value> ")]
3979#[derive(
3980	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3981)]
3982#[declaration_metadata(
3983    initial = "round",
3984    applies_to = Unknown,
3985    animation_type = Unknown,
3986    property_group = Borders,
3987    computed_value_type = Unknown,
3988    canonical_order = "per grammar",
3989    logical_property_group = CornerShape,
3990    box_side = Top|Left,
3991)]
3992#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3993#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-left-shape"))]
3994#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3995#[derive(csskit_derives::NodeWithMetadata)]
3996pub struct CornerTopLeftShapeStyleValue;
3997
3998// /// Represents the style value for `corner-top-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-right).
3999// ///
4000// /// The grammar is defined as:
4001// ///
4002// /// ```text,ignore
4003// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
4004// /// ```
4005// ///
4006// /// https://drafts.csswg.org/css-borders-4/#corner-top-right
4007// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
4008// #[derive(
4009//     Parse,
4010//     Peek,
4011//     ToSpan,
4012//     ToCursors,
4013//     DeclarationMetadata,
4014//     SemanticEq,
4015//     Debug,
4016//     Clone,
4017//     PartialEq,
4018//     Eq,
4019//     PartialOrd,
4020//     Ord,
4021//     Hash,
4022// )]
4023// #[declaration_metadata(
4024//     initial = "0",
4025//     applies_to = Elements,
4026//     animation_type = Unknown,
4027//     percentages = BorderBox,
4028//     property_group = Borders,
4029//     computed_value_type = Unknown,
4030//     canonical_order = "per grammar",
4031//     box_side = Top|Right,
4032// )]
4033// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4034// #[cfg_attr(
4035//     feature = "css_feature_data",
4036//     derive(ToCSSFeature),
4037//     css_feature("css.properties.corner-top-right")
4038// )]
4039// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4040// #[derive(csskit_derives::NodeWithMetadata)]
4041// pub struct CornerTopRightStyleValue;
4042
4043/// Represents the style value for `corner-top-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-right-shape).
4044///
4045/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4046///
4047/// The grammar is defined as:
4048///
4049/// ```text,ignore
4050/// <corner-shape-value>
4051/// ```
4052///
4053/// https://drafts.csswg.org/css-borders-4/#corner-top-right-shape
4054#[syntax(" <corner-shape-value> ")]
4055#[derive(
4056	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4057)]
4058#[declaration_metadata(
4059    initial = "round",
4060    applies_to = Unknown,
4061    animation_type = Unknown,
4062    property_group = Borders,
4063    computed_value_type = Unknown,
4064    canonical_order = "per grammar",
4065    logical_property_group = CornerShape,
4066    box_side = Top|Right,
4067)]
4068#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4069#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-right-shape"))]
4070#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4071#[derive(csskit_derives::NodeWithMetadata)]
4072pub struct CornerTopRightShapeStyleValue;
4073
4074/// Represents the style value for `corner-top-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-shape).
4075///
4076/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4077///
4078/// The grammar is defined as:
4079///
4080/// ```text,ignore
4081/// <'corner-top-left-shape'>{1,2}
4082/// ```
4083///
4084/// https://drafts.csswg.org/css-borders-4/#corner-top-shape
4085#[syntax(" <'corner-top-left-shape'>{1,2} ")]
4086#[derive(
4087	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4088)]
4089#[declaration_metadata(
4090    initial = "see individual properties",
4091    inherits = Unknown,
4092    applies_to = Unknown,
4093    animation_type = Unknown,
4094    percentages = Unknown,
4095    property_group = Borders,
4096    computed_value_type = Unknown,
4097    canonical_order = "per grammar",
4098)]
4099#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4100#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-shape"))]
4101#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4102#[derive(csskit_derives::NodeWithMetadata)]
4103pub struct CornerTopShapeStyleValue;