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