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