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