Skip to main content

css_ast/values/fill_stroke/
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/fill-stroke-3/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10/// Represents the style value for `fill` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill).
11///
12/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
13///
14/// The grammar is defined as:
15///
16/// ```text,ignore
17/// <fill-layer>#
18/// ```
19///
20/// https://drafts.csswg.org/fill-stroke-3/#fill
21#[syntax(" <fill-layer># ")]
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    property_group = FillStroke,
31    computed_value_type = Unknown,
32    canonical_order = "per grammar",
33)]
34#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
35#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill"))]
36#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
37#[derive(csskit_derives::NodeWithMetadata)]
38pub struct FillStyleValue<'a>;
39
40/// Represents the style value for `fill-break` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-break).
41///
42/// The grammar is defined as:
43///
44/// ```text,ignore
45/// bounding-box | slice | clone
46/// ```
47///
48/// https://drafts.csswg.org/fill-stroke-3/#fill-break
49#[syntax(" bounding-box | slice | clone ")]
50#[derive(
51	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
52)]
53#[declaration_metadata(
54    initial = "bounding-box",
55    inherits = Unknown,
56    applies_to = Elements,
57    animation_type = Discrete,
58    property_group = FillStroke,
59    computed_value_type = AsSpecified,
60    canonical_order = "per grammar",
61)]
62#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
63#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-break"))]
64#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
65#[derive(csskit_derives::NodeWithMetadata)]
66pub enum FillBreakStyleValue<'a> {}
67
68/// Represents the style value for `fill-color` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-color).
69///
70/// The grammar is defined as:
71///
72/// ```text,ignore
73/// <color>
74/// ```
75///
76/// https://drafts.csswg.org/fill-stroke-3/#fill-color
77#[syntax(" <color> ")]
78#[derive(
79	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
80)]
81#[declaration_metadata(
82    initial = "currentcolor",
83    inherits,
84    applies_to = Unknown,
85    animation_type = ByComputedValue,
86    property_group = FillStroke,
87    computed_value_type = Unknown,
88    canonical_order = "per grammar",
89)]
90#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
91#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-color"))]
92#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
93#[derive(csskit_derives::NodeWithMetadata)]
94pub struct FillColorStyleValue<'a>;
95
96/// Represents the style value for `fill-image` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-image).
97///
98/// The grammar is defined as:
99///
100/// ```text,ignore
101/// <paint>#
102/// ```
103///
104/// https://drafts.csswg.org/fill-stroke-3/#fill-image
105#[syntax(" <paint># ")]
106#[derive(
107	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
108)]
109#[declaration_metadata(
110    initial = "none",
111    inherits,
112    applies_to = Unknown,
113    animation_type = RepeatableList,
114    property_group = FillStroke,
115    computed_value_type = AsSpecified,
116    canonical_order = "per grammar",
117)]
118#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
119#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-image"))]
120#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
121#[derive(csskit_derives::NodeWithMetadata)]
122pub struct FillImageStyleValue<'a>;
123
124/// Represents the style value for `fill-opacity` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-opacity).
125///
126/// The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.
127///
128/// The grammar is defined as:
129///
130/// ```text,ignore
131/// <'opacity'>
132/// ```
133///
134/// https://drafts.csswg.org/fill-stroke-3/#fill-opacity
135#[syntax(" <'opacity'> ")]
136#[derive(
137	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
138)]
139#[declaration_metadata(
140    initial = "1",
141    inherits,
142    applies_to = Unknown,
143    animation_type = ByComputedValue,
144    property_group = FillStroke,
145    computed_value_type = Unknown,
146    canonical_order = "per grammar",
147)]
148#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
149#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-opacity"))]
150#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
151#[derive(csskit_derives::NodeWithMetadata)]
152pub struct FillOpacityStyleValue<'a>;
153
154/// Represents the style value for `fill-origin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-origin).
155///
156/// The grammar is defined as:
157///
158/// ```text,ignore
159/// match-parent | fill-box | stroke-box | content-box | padding-box | border-box
160/// ```
161///
162/// https://drafts.csswg.org/fill-stroke-3/#fill-origin
163#[syntax(" match-parent | fill-box | stroke-box | content-box | padding-box | border-box ")]
164#[derive(
165	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
166)]
167#[declaration_metadata(
168    initial = "match-parent",
169    applies_to = Elements,
170    animation_type = Discrete,
171    property_group = FillStroke,
172    computed_value_type = AsSpecified,
173    canonical_order = "per grammar",
174)]
175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-origin"))]
177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
178#[derive(csskit_derives::NodeWithMetadata)]
179pub enum FillOriginStyleValue<'a> {}
180
181/// Represents the style value for `fill-position` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-position).
182///
183/// The grammar is defined as:
184///
185/// ```text,ignore
186/// <position>#
187/// ```
188///
189/// https://drafts.csswg.org/fill-stroke-3/#fill-position
190#[syntax(" <position># ")]
191#[derive(
192	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
193)]
194#[declaration_metadata(
195    initial = "0% 0%",
196    inherits,
197    applies_to = Unknown,
198    animation_type = RepeatableList,
199    property_group = FillStroke,
200    computed_value_type = AbsoluteLengthOrPercentage,
201    canonical_order = "per grammar",
202)]
203#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
204#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-position"))]
205#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
206#[derive(csskit_derives::NodeWithMetadata)]
207pub struct FillPositionStyleValue<'a>;
208
209/// Represents the style value for `fill-repeat` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-repeat).
210///
211/// The grammar is defined as:
212///
213/// ```text,ignore
214/// <repeat-style>#
215/// ```
216///
217/// https://drafts.csswg.org/fill-stroke-3/#fill-repeat
218#[syntax(" <repeat-style># ")]
219#[derive(
220	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
221)]
222#[declaration_metadata(
223    initial = "repeat",
224    inherits,
225    applies_to = Unknown,
226    animation_type = Discrete,
227    property_group = FillStroke,
228    computed_value_type = Unknown,
229    canonical_order = "per grammar",
230)]
231#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
232#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-repeat"))]
233#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
234#[derive(csskit_derives::NodeWithMetadata)]
235pub struct FillRepeatStyleValue<'a>;
236
237/// Represents the style value for `fill-rule` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-rule).
238///
239/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
240///
241/// The grammar is defined as:
242///
243/// ```text,ignore
244/// nonzero | evenodd
245/// ```
246///
247/// https://drafts.csswg.org/fill-stroke-3/#fill-rule
248#[syntax(" nonzero | evenodd ")]
249#[derive(
250	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
251)]
252#[declaration_metadata(
253    initial = "nonzero",
254    inherits,
255    applies_to = Unknown,
256    animation_type = Discrete,
257    property_group = FillStroke,
258    computed_value_type = AsSpecified,
259    canonical_order = "per grammar",
260)]
261#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
262#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-rule"))]
263#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
264#[derive(csskit_derives::NodeWithMetadata)]
265pub enum FillRuleStyleValue<'a> {}
266
267/// Represents the style value for `fill-size` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-size).
268///
269/// The grammar is defined as:
270///
271/// ```text,ignore
272/// <bg-size>#
273/// ```
274///
275/// https://drafts.csswg.org/fill-stroke-3/#fill-size
276#[syntax(" <bg-size># ")]
277#[derive(
278	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
279)]
280#[declaration_metadata(
281    initial = "auto",
282    inherits,
283    applies_to = Unknown,
284    animation_type = RepeatableList,
285    property_group = FillStroke,
286    computed_value_type = AsSpecified,
287    canonical_order = "per grammar",
288)]
289#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
290#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-size"))]
291#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
292#[derive(csskit_derives::NodeWithMetadata)]
293pub struct FillSizeStyleValue<'a>;
294
295/// Represents the style value for `stroke` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke).
296///
297/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
298///
299/// The grammar is defined as:
300///
301/// ```text,ignore
302/// <stroke-layer>#
303/// ```
304///
305/// https://drafts.csswg.org/fill-stroke-3/#stroke
306#[syntax(" <stroke-layer># ")]
307#[derive(
308	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
309)]
310#[declaration_metadata(
311    initial = "See individual properties",
312    inherits = Unknown,
313    applies_to = Unknown,
314    animation_type = Unknown,
315    property_group = FillStroke,
316    computed_value_type = Unknown,
317    canonical_order = "per grammar",
318)]
319#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
320#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke"))]
321#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
322#[derive(csskit_derives::NodeWithMetadata)]
323pub struct StrokeStyleValue<'a>;
324
325/// Represents the style value for `stroke-align` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-align).
326///
327/// The grammar is defined as:
328///
329/// ```text,ignore
330/// center | inset | outset
331/// ```
332///
333/// https://drafts.csswg.org/fill-stroke-3/#stroke-align
334#[syntax(" center | inset | outset ")]
335#[derive(
336	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
337)]
338#[declaration_metadata(
339    initial = "center",
340    inherits,
341    applies_to = Unknown,
342    animation_type = Discrete,
343    property_group = FillStroke,
344    computed_value_type = AsSpecified,
345    canonical_order = "per grammar",
346)]
347#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
348#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-align"))]
349#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
350#[derive(csskit_derives::NodeWithMetadata)]
351pub enum StrokeAlignStyleValue<'a> {}
352
353/// Represents the style value for `stroke-break` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-break).
354///
355/// The grammar is defined as:
356///
357/// ```text,ignore
358/// bounding-box | slice | clone
359/// ```
360///
361/// https://drafts.csswg.org/fill-stroke-3/#stroke-break
362#[syntax(" bounding-box | slice | clone ")]
363#[derive(
364	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
365)]
366#[declaration_metadata(
367    initial = "bounding-box",
368    inherits = Unknown,
369    applies_to = Elements,
370    animation_type = Discrete,
371    property_group = FillStroke,
372    computed_value_type = AsSpecified,
373    canonical_order = "per grammar",
374)]
375#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
376#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-break"))]
377#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
378#[derive(csskit_derives::NodeWithMetadata)]
379pub enum StrokeBreakStyleValue<'a> {}
380
381/// Represents the style value for `stroke-color` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-color).
382///
383/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
384///
385/// The grammar is defined as:
386///
387/// ```text,ignore
388/// <color>#
389/// ```
390///
391/// https://drafts.csswg.org/fill-stroke-3/#stroke-color
392#[syntax(" <color># ")]
393#[derive(
394	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
395)]
396#[declaration_metadata(
397    initial = "transparent",
398    inherits,
399    applies_to = Unknown,
400    animation_type = ByComputedValue,
401    property_group = FillStroke,
402    computed_value_type = Unknown,
403    canonical_order = "per grammar",
404)]
405#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
406#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-color"))]
407#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
408#[derive(csskit_derives::NodeWithMetadata)]
409pub struct StrokeColorStyleValue<'a>;
410
411/// Represents the style value for `stroke-dash-corner` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dash-corner).
412///
413/// The grammar is defined as:
414///
415/// ```text,ignore
416/// none | <length>
417/// ```
418///
419/// https://drafts.csswg.org/fill-stroke-3/#stroke-dash-corner
420#[syntax(" none | <length> ")]
421#[derive(
422	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
423)]
424#[declaration_metadata(
425    initial = "none",
426    inherits,
427    applies_to = Unknown,
428    animation_type = Discrete,
429    property_group = FillStroke,
430    computed_value_type = Unknown,
431    canonical_order = "per grammar",
432)]
433#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
434#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dash-corner"))]
435#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
436#[derive(csskit_derives::NodeWithMetadata)]
437pub struct StrokeDashCornerStyleValue<'a>;
438
439/// Represents the style value for `stroke-dash-justify` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dash-justify).
440///
441/// The grammar is defined as:
442///
443/// ```text,ignore
444/// none | [ stretch | compress ] || [ dashes || gaps ]
445/// ```
446///
447/// https://drafts.csswg.org/fill-stroke-3/#stroke-dash-justify
448#[syntax(" none | [ stretch | compress ] || [ dashes || gaps ] ")]
449#[derive(
450	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
451)]
452#[declaration_metadata(
453    initial = "none",
454    inherits,
455    applies_to = Unknown,
456    animation_type = Discrete,
457    property_group = FillStroke,
458    computed_value_type = Unknown,
459    canonical_order = "per grammar",
460)]
461#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
462#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dash-justify"))]
463#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
464#[derive(csskit_derives::NodeWithMetadata)]
465pub enum StrokeDashJustifyStyleValue<'a> {}
466
467/// Represents the style value for `stroke-dasharray` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray).
468///
469/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
470///
471/// The grammar is defined as:
472///
473/// ```text,ignore
474/// none | <length-percentage>+#
475/// ```
476///
477/// https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray
478#[syntax(" none | <length-percentage>+# ")]
479#[derive(
480	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
481)]
482#[declaration_metadata(
483    initial = "none",
484    inherits,
485    applies_to = Unknown,
486    animation_type = RepeatableList,
487    percentages = Unknown,
488    property_group = FillStroke,
489    computed_value_type = AsSpecified,
490    canonical_order = "per grammar",
491)]
492#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
493#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dasharray"))]
494#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
495#[derive(csskit_derives::NodeWithMetadata)]
496pub struct StrokeDasharrayStyleValue<'a>;
497
498/// Represents the style value for `stroke-dashoffset` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset).
499///
500/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
501///
502/// The grammar is defined as:
503///
504/// ```text,ignore
505/// <length-percentage>
506/// ```
507///
508/// https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset
509#[syntax(" <length-percentage> ")]
510#[derive(
511	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
512)]
513#[declaration_metadata(
514    initial = "0",
515    inherits,
516    applies_to = Unknown,
517    animation_type = RepeatableList,
518    percentages = Unknown,
519    property_group = FillStroke,
520    computed_value_type = AsSpecified,
521    canonical_order = "per grammar",
522)]
523#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
524#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dashoffset"))]
525#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
526#[derive(csskit_derives::NodeWithMetadata)]
527pub struct StrokeDashoffsetStyleValue<'a>;
528
529/// Represents the style value for `stroke-image` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-image).
530///
531/// The grammar is defined as:
532///
533/// ```text,ignore
534/// <paint>#
535/// ```
536///
537/// https://drafts.csswg.org/fill-stroke-3/#stroke-image
538#[syntax(" <paint># ")]
539#[derive(
540	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
541)]
542#[declaration_metadata(
543    initial = "none",
544    inherits,
545    applies_to = Unknown,
546    animation_type = RepeatableList,
547    property_group = FillStroke,
548    computed_value_type = AsSpecified,
549    canonical_order = "per grammar",
550)]
551#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
552#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-image"))]
553#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
554#[derive(csskit_derives::NodeWithMetadata)]
555pub struct StrokeImageStyleValue<'a>;
556
557/// Represents the style value for `stroke-linecap` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linecap).
558///
559/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
560///
561/// The grammar is defined as:
562///
563/// ```text,ignore
564/// butt | round | square
565/// ```
566///
567/// https://drafts.csswg.org/fill-stroke-3/#stroke-linecap
568#[syntax(" butt | round | square ")]
569#[derive(
570	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
571)]
572#[declaration_metadata(
573    initial = "butt",
574    inherits,
575    applies_to = Unknown,
576    animation_type = Discrete,
577    property_group = FillStroke,
578    computed_value_type = AsSpecified,
579    canonical_order = "per grammar",
580)]
581#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
582#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-linecap"))]
583#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
584#[derive(csskit_derives::NodeWithMetadata)]
585pub enum StrokeLinecapStyleValue<'a> {}
586
587/// Represents the style value for `stroke-linejoin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin).
588///
589/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
590///
591/// The grammar is defined as:
592///
593/// ```text,ignore
594/// [ crop | arcs | miter ] || [ bevel | round | fallback ]
595/// ```
596///
597/// https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin
598#[syntax(" [ crop | arcs | miter ] || [ bevel | round | fallback ] ")]
599#[derive(
600	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
601)]
602#[declaration_metadata(
603    initial = "miter",
604    inherits,
605    applies_to = Unknown,
606    animation_type = Discrete,
607    property_group = FillStroke,
608    computed_value_type = AsSpecified,
609    canonical_order = "per grammar",
610)]
611#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
612#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-linejoin"))]
613#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
614#[derive(csskit_derives::NodeWithMetadata)]
615pub struct StrokeLinejoinStyleValue<'a>;
616
617/// Represents the style value for `stroke-miterlimit` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit).
618///
619/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
620///
621/// The grammar is defined as:
622///
623/// ```text,ignore
624/// <number>
625/// ```
626///
627/// https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit
628#[syntax(" <number> ")]
629#[derive(
630	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
631)]
632#[declaration_metadata(
633    initial = "4",
634    inherits,
635    applies_to = Unknown,
636    animation_type = Discrete,
637    property_group = FillStroke,
638    computed_value_type = Unknown,
639    canonical_order = "per grammar",
640)]
641#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
642#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-miterlimit"))]
643#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
644#[derive(csskit_derives::NodeWithMetadata)]
645pub struct StrokeMiterlimitStyleValue<'a>;
646
647/// Represents the style value for `stroke-opacity` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-opacity).
648///
649/// The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.
650///
651/// The grammar is defined as:
652///
653/// ```text,ignore
654/// <'opacity'>
655/// ```
656///
657/// https://drafts.csswg.org/fill-stroke-3/#stroke-opacity
658#[syntax(" <'opacity'> ")]
659#[derive(
660	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
661)]
662#[declaration_metadata(
663    initial = "1",
664    inherits,
665    applies_to = Unknown,
666    animation_type = ByComputedValue,
667    property_group = FillStroke,
668    computed_value_type = Unknown,
669    canonical_order = "per grammar",
670)]
671#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
672#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-opacity"))]
673#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
674#[derive(csskit_derives::NodeWithMetadata)]
675pub struct StrokeOpacityStyleValue<'a>;
676
677/// Represents the style value for `stroke-origin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-origin).
678///
679/// The grammar is defined as:
680///
681/// ```text,ignore
682/// match-parent | fill-box | stroke-box | content-box | padding-box | border-box
683/// ```
684///
685/// https://drafts.csswg.org/fill-stroke-3/#stroke-origin
686#[syntax(" match-parent | fill-box | stroke-box | content-box | padding-box | border-box ")]
687#[derive(
688	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
689)]
690#[declaration_metadata(
691    initial = "match-parent",
692    applies_to = Elements,
693    animation_type = Discrete,
694    property_group = FillStroke,
695    computed_value_type = AsSpecified,
696    canonical_order = "per grammar",
697)]
698#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
699#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-origin"))]
700#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
701#[derive(csskit_derives::NodeWithMetadata)]
702pub enum StrokeOriginStyleValue<'a> {}
703
704/// Represents the style value for `stroke-position` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-position).
705///
706/// The grammar is defined as:
707///
708/// ```text,ignore
709/// <position>#
710/// ```
711///
712/// https://drafts.csswg.org/fill-stroke-3/#stroke-position
713#[syntax(" <position># ")]
714#[derive(
715	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
716)]
717#[declaration_metadata(
718    initial = "0% 0%",
719    inherits,
720    applies_to = Unknown,
721    animation_type = RepeatableList,
722    property_group = FillStroke,
723    computed_value_type = AbsoluteLengthOrPercentage,
724    canonical_order = "per grammar",
725)]
726#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
727#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-position"))]
728#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
729#[derive(csskit_derives::NodeWithMetadata)]
730pub struct StrokePositionStyleValue<'a>;
731
732/// Represents the style value for `stroke-repeat` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-repeat).
733///
734/// The grammar is defined as:
735///
736/// ```text,ignore
737/// <repeat-style>#
738/// ```
739///
740/// https://drafts.csswg.org/fill-stroke-3/#stroke-repeat
741#[syntax(" <repeat-style># ")]
742#[derive(
743	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
744)]
745#[declaration_metadata(
746    initial = "repeat",
747    inherits,
748    applies_to = Unknown,
749    animation_type = Discrete,
750    property_group = FillStroke,
751    computed_value_type = Unknown,
752    canonical_order = "per grammar",
753)]
754#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
755#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-repeat"))]
756#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
757#[derive(csskit_derives::NodeWithMetadata)]
758pub struct StrokeRepeatStyleValue<'a>;
759
760/// Represents the style value for `stroke-size` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-size).
761///
762/// The grammar is defined as:
763///
764/// ```text,ignore
765/// <bg-size>#
766/// ```
767///
768/// https://drafts.csswg.org/fill-stroke-3/#stroke-size
769#[syntax(" <bg-size># ")]
770#[derive(
771	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
772)]
773#[declaration_metadata(
774    initial = "auto",
775    inherits,
776    applies_to = Unknown,
777    animation_type = RepeatableList,
778    property_group = FillStroke,
779    computed_value_type = AsSpecified,
780    canonical_order = "per grammar",
781)]
782#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
783#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-size"))]
784#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
785#[derive(csskit_derives::NodeWithMetadata)]
786pub struct StrokeSizeStyleValue<'a>;
787
788/// Represents the style value for `stroke-width` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-width).
789///
790/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
791///
792/// The grammar is defined as:
793///
794/// ```text,ignore
795/// [ <length-percentage> | <line-width> ]#
796/// ```
797///
798/// https://drafts.csswg.org/fill-stroke-3/#stroke-width
799#[syntax(" [ <length-percentage> | <line-width> ]# ")]
800#[derive(
801	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
802)]
803#[declaration_metadata(
804    initial = "1px",
805    inherits,
806    applies_to = Unknown,
807    animation_type = ByComputedValue,
808    percentages = Unknown,
809    property_group = FillStroke,
810    computed_value_type = AbsoluteLengthOrPercentage,
811    canonical_order = "per grammar",
812)]
813#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
814#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-width"))]
815#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
816#[derive(csskit_derives::NodeWithMetadata)]
817pub struct StrokeWidthStyleValue<'a>;