css_ast/values/fill_stroke/mod.rs
1// AUTO-GENERATED from w3c/csswg-drafts
2// Commit: https://github.com/w3c/csswg-drafts/commit/7e27ad7484307dfdbe9d0e18ad19d02859389688
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;
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,
499// Peek,
500// ToSpan,
501// ToCursors,
502// DeclarationMetadata,
503// SemanticEq,
504// Debug,
505// Clone,
506// PartialEq,
507// Eq,
508// PartialOrd,
509// Ord,
510// Hash,
511// )]
512// #[declaration_metadata(
513// initial = "none",
514// inherits,
515// applies_to = Unknown,
516// animation_type = Discrete,
517// property_group = FillStroke,
518// computed_value_type = Unknown,
519// canonical_order = "per grammar",
520// )]
521// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
522// #[cfg_attr(
523// feature = "css_feature_data",
524// derive(ToCSSFeature),
525// css_feature("css.properties.stroke-dash-justify")
526// )]
527// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
528// #[derive(csskit_derives::NodeWithMetadata)]
529// pub struct StrokeDashJustifyStyleValue;
530
531/// Represents the style value for `stroke-dasharray` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray).
532///
533/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
534///
535/// The grammar is defined as:
536///
537/// ```text,ignore
538/// none | <length-percentage>+#
539/// ```
540///
541/// https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray
542#[syntax(" none | <length-percentage>+# ")]
543#[derive(
544 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
545)]
546#[declaration_metadata(
547 initial = "none",
548 inherits,
549 applies_to = Unknown,
550 animation_type = RepeatableList,
551 percentages = Unknown,
552 property_group = FillStroke,
553 computed_value_type = AsSpecified,
554 canonical_order = "per grammar",
555)]
556#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
557#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dasharray"))]
558#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
559#[derive(csskit_derives::NodeWithMetadata)]
560pub struct StrokeDasharrayStyleValue<'a>;
561
562/// Represents the style value for `stroke-dashoffset` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset).
563///
564/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
565///
566/// The grammar is defined as:
567///
568/// ```text,ignore
569/// <length-percentage>
570/// ```
571///
572/// https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset
573#[syntax(" <length-percentage> ")]
574#[derive(
575 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
576)]
577#[declaration_metadata(
578 initial = "0",
579 inherits,
580 applies_to = Unknown,
581 animation_type = RepeatableList,
582 percentages = Unknown,
583 property_group = FillStroke,
584 computed_value_type = AsSpecified,
585 canonical_order = "per grammar",
586)]
587#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
588#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dashoffset"))]
589#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
590#[derive(csskit_derives::NodeWithMetadata)]
591pub struct StrokeDashoffsetStyleValue;
592
593// /// Represents the style value for `stroke-image` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-image).
594// ///
595// /// The grammar is defined as:
596// ///
597// /// ```text,ignore
598// /// <paint>#
599// /// ```
600// ///
601// /// https://drafts.csswg.org/fill-stroke-3/#stroke-image
602// #[syntax(" <paint># ")]
603// #[derive(
604// Parse,
605// Peek,
606// ToSpan,
607// ToCursors,
608// DeclarationMetadata,
609// SemanticEq,
610// Debug,
611// Clone,
612// PartialEq,
613// Eq,
614// PartialOrd,
615// Ord,
616// Hash,
617// )]
618// #[declaration_metadata(
619// initial = "none",
620// inherits,
621// applies_to = Unknown,
622// animation_type = RepeatableList,
623// property_group = FillStroke,
624// computed_value_type = AsSpecified,
625// canonical_order = "per grammar",
626// )]
627// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
628// #[cfg_attr(
629// feature = "css_feature_data",
630// derive(ToCSSFeature),
631// css_feature("css.properties.stroke-image")
632// )]
633// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
634// #[derive(csskit_derives::NodeWithMetadata)]
635// pub struct StrokeImageStyleValue<'a>;
636
637/// Represents the style value for `stroke-linecap` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linecap).
638///
639/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
640///
641/// The grammar is defined as:
642///
643/// ```text,ignore
644/// butt | round | square
645/// ```
646///
647/// https://drafts.csswg.org/fill-stroke-3/#stroke-linecap
648#[syntax(" butt | round | square ")]
649#[derive(
650 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
651)]
652#[declaration_metadata(
653 initial = "butt",
654 inherits,
655 applies_to = Unknown,
656 animation_type = Discrete,
657 property_group = FillStroke,
658 computed_value_type = AsSpecified,
659 canonical_order = "per grammar",
660)]
661#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
662#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-linecap"))]
663#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
664#[derive(csskit_derives::NodeWithMetadata)]
665pub enum StrokeLinecapStyleValue {}
666
667// /// Represents the style value for `stroke-linejoin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin).
668// ///
669// /// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
670// ///
671// /// The grammar is defined as:
672// ///
673// /// ```text,ignore
674// /// [ crop | arcs | miter ] || [ bevel | round | fallback ]
675// /// ```
676// ///
677// /// https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin
678// #[syntax(" [ crop | arcs | miter ] || [ bevel | round | fallback ] ")]
679// #[derive(
680// Parse,
681// Peek,
682// ToSpan,
683// ToCursors,
684// DeclarationMetadata,
685// SemanticEq,
686// Debug,
687// Clone,
688// PartialEq,
689// Eq,
690// PartialOrd,
691// Ord,
692// Hash,
693// )]
694// #[declaration_metadata(
695// initial = "miter",
696// inherits,
697// applies_to = Unknown,
698// animation_type = Discrete,
699// property_group = FillStroke,
700// computed_value_type = AsSpecified,
701// canonical_order = "per grammar",
702// )]
703// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
704// #[cfg_attr(
705// feature = "css_feature_data",
706// derive(ToCSSFeature),
707// css_feature("css.properties.stroke-linejoin")
708// )]
709// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
710// #[derive(csskit_derives::NodeWithMetadata)]
711// pub struct StrokeLinejoinStyleValue;
712
713/// Represents the style value for `stroke-miterlimit` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit).
714///
715/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
716///
717/// The grammar is defined as:
718///
719/// ```text,ignore
720/// <number>
721/// ```
722///
723/// https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit
724#[syntax(" <number> ")]
725#[derive(
726 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
727)]
728#[declaration_metadata(
729 initial = "4",
730 inherits,
731 applies_to = Unknown,
732 animation_type = Discrete,
733 property_group = FillStroke,
734 computed_value_type = Unknown,
735 canonical_order = "per grammar",
736)]
737#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
738#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-miterlimit"))]
739#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
740#[derive(csskit_derives::NodeWithMetadata)]
741pub struct StrokeMiterlimitStyleValue;
742
743/// Represents the style value for `stroke-opacity` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-opacity).
744///
745/// The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.
746///
747/// The grammar is defined as:
748///
749/// ```text,ignore
750/// <'opacity'>
751/// ```
752///
753/// https://drafts.csswg.org/fill-stroke-3/#stroke-opacity
754#[syntax(" <'opacity'> ")]
755#[derive(
756 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
757)]
758#[declaration_metadata(
759 initial = "1",
760 inherits,
761 applies_to = Unknown,
762 animation_type = ByComputedValue,
763 property_group = FillStroke,
764 computed_value_type = Unknown,
765 canonical_order = "per grammar",
766)]
767#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
768#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-opacity"))]
769#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
770#[derive(csskit_derives::NodeWithMetadata)]
771pub struct StrokeOpacityStyleValue;
772
773/// Represents the style value for `stroke-origin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-origin).
774///
775/// The grammar is defined as:
776///
777/// ```text,ignore
778/// match-parent | fill-box | stroke-box | content-box | padding-box | border-box
779/// ```
780///
781/// https://drafts.csswg.org/fill-stroke-3/#stroke-origin
782#[syntax(" match-parent | fill-box | stroke-box | content-box | padding-box | border-box ")]
783#[derive(
784 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
785)]
786#[declaration_metadata(
787 initial = "match-parent",
788 applies_to = Elements,
789 animation_type = Discrete,
790 property_group = FillStroke,
791 computed_value_type = AsSpecified,
792 canonical_order = "per grammar",
793)]
794#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
795#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-origin"))]
796#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
797#[derive(csskit_derives::NodeWithMetadata)]
798pub enum StrokeOriginStyleValue {}
799
800/// Represents the style value for `stroke-position` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-position).
801///
802/// The grammar is defined as:
803///
804/// ```text,ignore
805/// <position>#
806/// ```
807///
808/// https://drafts.csswg.org/fill-stroke-3/#stroke-position
809#[syntax(" <position># ")]
810#[derive(
811 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
812)]
813#[declaration_metadata(
814 initial = "0% 0%",
815 inherits,
816 applies_to = Unknown,
817 animation_type = RepeatableList,
818 property_group = FillStroke,
819 computed_value_type = AbsoluteLengthOrPercentage,
820 canonical_order = "per grammar",
821)]
822#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
823#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-position"))]
824#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
825#[derive(csskit_derives::NodeWithMetadata)]
826pub struct StrokePositionStyleValue<'a>;
827
828/// Represents the style value for `stroke-repeat` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-repeat).
829///
830/// The grammar is defined as:
831///
832/// ```text,ignore
833/// <repeat-style>#
834/// ```
835///
836/// https://drafts.csswg.org/fill-stroke-3/#stroke-repeat
837#[syntax(" <repeat-style># ")]
838#[derive(
839 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
840)]
841#[declaration_metadata(
842 initial = "repeat",
843 inherits,
844 applies_to = Unknown,
845 animation_type = Discrete,
846 property_group = FillStroke,
847 computed_value_type = Unknown,
848 canonical_order = "per grammar",
849)]
850#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
851#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-repeat"))]
852#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
853#[derive(csskit_derives::NodeWithMetadata)]
854pub struct StrokeRepeatStyleValue<'a>;
855
856/// Represents the style value for `stroke-size` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-size).
857///
858/// The grammar is defined as:
859///
860/// ```text,ignore
861/// <bg-size>#
862/// ```
863///
864/// https://drafts.csswg.org/fill-stroke-3/#stroke-size
865#[syntax(" <bg-size># ")]
866#[derive(
867 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
868)]
869#[declaration_metadata(
870 initial = "auto",
871 inherits,
872 applies_to = Unknown,
873 animation_type = RepeatableList,
874 property_group = FillStroke,
875 computed_value_type = AsSpecified,
876 canonical_order = "per grammar",
877)]
878#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
879#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-size"))]
880#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
881#[derive(csskit_derives::NodeWithMetadata)]
882pub struct StrokeSizeStyleValue<'a>;
883
884/// Represents the style value for `stroke-width` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-width).
885///
886/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
887///
888/// The grammar is defined as:
889///
890/// ```text,ignore
891/// <length-percentage>#
892/// ```
893///
894/// https://drafts.csswg.org/fill-stroke-3/#stroke-width
895#[syntax(" <length-percentage># ")]
896#[derive(
897 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
898)]
899#[declaration_metadata(
900 initial = "1px",
901 inherits,
902 applies_to = Unknown,
903 animation_type = ByComputedValue,
904 percentages = Unknown,
905 property_group = FillStroke,
906 computed_value_type = AbsoluteLengthOrPercentage,
907 canonical_order = "per grammar",
908)]
909#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
910#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-width"))]
911#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
912#[derive(csskit_derives::NodeWithMetadata)]
913pub struct StrokeWidthStyleValue<'a>;