1use super::prelude::*;
7use crate::{CalcableValue, Length, PositionOne, PositionTwo};
8use css_parse::{Cursor, Parse, Parser, Result as ParseResult};
9
10#[syntax(" none | <filter-value-list> ")]
20#[derive(
21 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
22)]
23#[declaration_metadata(
24 initial = "none",
25 applies_to = Unknown,
26 animation_type = Unknown,
27 property_group = FilterEffects,
28 computed_value_type = AsSpecified,
29 canonical_order = "per grammar",
30)]
31#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
32#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
33#[derive(csskit_derives::NodeWithMetadata)]
34pub struct WebkitFilterStyleValue<'a>;
35
36#[syntax(" none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] ")]
46#[derive(
47 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
48)]
49#[declaration_metadata(
50 initial = "0 1 auto",
51 applies_to = Elements,
52 animation_type = Unknown,
53 property_group = Flexbox,
54 computed_value_type = Unknown,
55 canonical_order = "per grammar",
56)]
57#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
58#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
59#[derive(csskit_derives::NodeWithMetadata)]
60pub struct WebkitFlexStyleValue<'a>;
61
62#[syntax(" <integer> ")]
72#[derive(
73 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
74)]
75#[declaration_metadata(
76 initial = "0",
77 applies_to = Elements,
78 animation_type = ByComputedValue,
79 property_group = Flexbox,
80 computed_value_type = AsSpecified,
81 canonical_order = "per grammar",
82)]
83#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
84#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
85#[derive(csskit_derives::NodeWithMetadata)]
86pub struct WebkitOrderStyleValue<'a>;
87
88#[syntax(" <position-one> | <position-two> <length>? ")]
98#[derive(
99 Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
100)]
101#[declaration_metadata(
102 initial = "none",
103 applies_to = Unknown,
104 animation_type = Unknown,
105 property_group = FilterEffects,
106 computed_value_type = AsSpecified,
107 canonical_order = "per grammar",
108)]
109#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
110#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
111#[derive(csskit_derives::NodeWithMetadata)]
112pub enum WebkitTransformOriginStyleValue<'a> {}
113
114impl<'a> Parse<'a> for WebkitTransformOriginStyleValue<'a> {
115 fn parse<I>(p: &mut Parser<'a, I>) -> ParseResult<Self>
116 where
117 I: Iterator<Item = Cursor> + Clone,
118 {
119 let first = p.parse::<PositionOne>()?;
120 if !p.peek::<PositionOne>() {
121 return Ok(Self::PositionOne(crate::Value::Literal(first)));
122 }
123 let second_c = p.peek_n(1);
124 let second = p.parse::<PositionOne>()?;
125 let two = PositionTwo::from_two(p, first, second, second_c)?;
126 Ok(Self::PositionTwo(crate::Value::Literal(two), p.parse_if_peek::<CalcableValue<Length>>()?))
127 }
128}
129
130#[syntax(" <single-transition># ")]
140#[derive(
141 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
142)]
143#[declaration_metadata(
144 initial = "see individual properties",
145 applies_to = Elements,
146 property_group = Transitions,
147 computed_value_type = Unknown,
148 canonical_order = "per grammar",
149)]
150#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
151#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
152#[derive(csskit_derives::NodeWithMetadata)]
153pub struct WebkitTransitionStyleValue<'a>;
154
155#[syntax(" none | auto | base | base-select | <compat-auto> | <compat-special> ")]
165#[derive(
166 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
167)]
168#[declaration_metadata(
169 initial = "none",
170 applies_to = Elements,
171 animation_type = Discrete,
172 property_group = Ui,
173 computed_value_type = Unknown,
174 canonical_order = "per grammar",
175)]
176#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
178#[derive(csskit_derives::NodeWithMetadata)]
179pub enum WebkitAppearanceStyleValue<'a> {}
180
181#[syntax(" none | <transform-list> ")]
191#[derive(
192 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
193)]
194#[declaration_metadata(
195 initial = "none",
196 applies_to = Unknown,
197 animation_type = Unknown,
198 property_group = Transforms,
199 computed_value_type = AsSpecified,
200 canonical_order = "per grammar",
201)]
202#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
203#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
204#[derive(csskit_derives::NodeWithMetadata)]
205pub struct WebkitTransformStyleValue<'a>;
206
207#[syntax(" auto | none | antialiased | subpixel-antialiased ")]
217#[derive(
218 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
219)]
220#[declaration_metadata(
221 initial = "auto",
222 applies_to = Unknown,
223 animation_type = Unknown,
224 property_group = Fonts,
225 computed_value_type = AsSpecified,
226 canonical_order = "per grammar",
227)]
228#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
229#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
230#[derive(csskit_derives::NodeWithMetadata)]
231pub enum WebkitFontSmoothingStyleValue<'a> {}
232
233#[syntax(" auto | none | <percentage [0,∞]> ")]
243#[derive(
244 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
245)]
246#[declaration_metadata(
247 initial = "auto",
248 inherits,
249 applies_to = Elements,
250 animation_type = ByComputedValue,
251 percentages = Unknown,
252 property_group = SizeAdjust,
253 computed_value_type = Unknown,
254 canonical_order = "N/A",
255)]
256#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
257#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
258#[derive(csskit_derives::NodeWithMetadata)]
259pub struct WebkitTextSizeAdjustStyleValue<'a>;
260
261#[syntax(" <time># ")]
271#[derive(
272 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
273)]
274#[declaration_metadata(
275 initial = "0s",
276 applies_to = Elements,
277 shorthand_group = _WebkitAnimation,
278 property_group = Animations,
279 computed_value_type = Unknown,
280 canonical_order = "per grammar",
281)]
282#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
283#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
284#[derive(csskit_derives::NodeWithMetadata)]
285pub struct WebkitAnimationDelayStyleValue<'a>;
286
287#[syntax(" [ auto | <time [0s,∞]> ]# ")]
297#[derive(
298 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
299)]
300#[declaration_metadata(
301 initial = "auto",
302 applies_to = Elements,
303 shorthand_group = _WebkitAnimation,
304 property_group = Animations,
305 computed_value_type = Unknown,
306 canonical_order = "per grammar",
307)]
308#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
309#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
310#[derive(csskit_derives::NodeWithMetadata)]
311pub struct WebkitAnimationDurationStyleValue<'a>;
312
313#[syntax(" <single-animation-fill-mode># ")]
323#[derive(
324 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
325)]
326#[declaration_metadata(
327 initial = "none",
328 applies_to = Elements,
329 shorthand_group = _WebkitAnimation,
330 property_group = Animations,
331 computed_value_type = Unknown,
332 canonical_order = "per grammar",
333)]
334#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
335#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
336#[derive(csskit_derives::NodeWithMetadata)]
337pub struct WebkitAnimationFillModeStyleValue<'a>;
338
339#[syntax(" <single-animation-iteration-count># ")]
349#[derive(
350 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
351)]
352#[declaration_metadata(
353 initial = "1",
354 applies_to = Elements,
355 shorthand_group = _WebkitAnimation,
356 property_group = Animations,
357 computed_value_type = Unknown,
358 canonical_order = "per grammar",
359)]
360#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
361#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
362#[derive(csskit_derives::NodeWithMetadata)]
363pub struct WebkitAnimationIterationCountStyleValue<'a>;
364
365#[syntax(" [ none | <keyframes-name> ]# ")]
375#[derive(
376 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
377)]
378#[declaration_metadata(
379 initial = "none",
380 applies_to = Elements,
381 shorthand_group = _WebkitAnimation,
382 property_group = Animations,
383 computed_value_type = Unknown,
384 canonical_order = "per grammar",
385)]
386#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
387#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
388#[derive(csskit_derives::NodeWithMetadata)]
389pub struct WebkitAnimationNameStyleValue<'a>;
390
391#[syntax(" <easing-function># ")]
401#[derive(
402 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
403)]
404#[declaration_metadata(
405 initial = "ease",
406 applies_to = Elements,
407 shorthand_group = _WebkitAnimation,
408 property_group = Animations,
409 computed_value_type = Unknown,
410 canonical_order = "per grammar",
411)]
412#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
413#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
414#[derive(csskit_derives::NodeWithMetadata)]
415pub struct WebkitAnimationTimingFunctionStyleValue<'a>;
416
417#[syntax(" visible | hidden ")]
427#[derive(
428 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
429)]
430#[declaration_metadata(
431 initial = "visible",
432 applies_to = Elements,
433 property_group = Transforms,
434 computed_value_type = AsSpecified,
435 canonical_order = "per grammar",
436)]
437#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
438#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
439#[derive(csskit_derives::NodeWithMetadata)]
440pub enum WebkitBackfaceVisibilityStyleValue<'a> {}
441
442#[syntax(" <color> ")]
452#[derive(
453 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
454)]
455#[declaration_metadata(
456 initial = "transparent",
457 applies_to = Elements,
458 property_group = Ui,
459 computed_value_type = AsSpecified,
460 canonical_order = "per grammar",
461)]
462#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
463#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
464#[derive(csskit_derives::NodeWithMetadata)]
465pub struct WebkitTapHighlightColorStyleValue<'a>;
466
467#[syntax(" <time [0s,∞]># ")]
477#[derive(
478 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
479)]
480#[declaration_metadata(
481 initial = "0s",
482 applies_to = Elements,
483 property_group = Transitions,
484 computed_value_type = Unknown,
485 canonical_order = "per grammar",
486)]
487#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
488#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
489#[derive(csskit_derives::NodeWithMetadata)]
490pub struct WebkitTransitionDurationStyleValue<'a>;
491
492#[syntax(" <easing-function># ")]
502#[derive(
503 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
504)]
505#[declaration_metadata(
506 initial = "ease",
507 applies_to = Elements,
508 property_group = Transitions,
509 computed_value_type = AsSpecified,
510 canonical_order = "per grammar",
511)]
512#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
513#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
514#[derive(csskit_derives::NodeWithMetadata)]
515pub struct WebkitTransitionTimingFunctionStyleValue<'a>;
516
517#[syntax(" row | row-reverse | column | column-reverse ")]
521#[derive(
522 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
523)]
524#[declaration_metadata(
525 initial = "row",
526 applies_to = Elements,
527 animation_type = Discrete,
528 property_group = Flexbox,
529 computed_value_type = AsSpecified,
530 canonical_order = "per grammar",
531)]
532#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
533#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
534#[derive(csskit_derives::NodeWithMetadata)]
535pub enum WebkitFlexDirectionStyleValue<'a> {}
536
537#[syntax(" nowrap | wrap | wrap-reverse ")]
539#[derive(
540 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
541)]
542#[declaration_metadata(
543 initial = "nowrap",
544 applies_to = Elements,
545 animation_type = Discrete,
546 property_group = Flexbox,
547 computed_value_type = AsSpecified,
548 canonical_order = "per grammar",
549)]
550#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
551#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
552#[derive(csskit_derives::NodeWithMetadata)]
553pub enum WebkitFlexWrapStyleValue<'a> {}
554
555#[syntax(" content | <'width'> ")]
557#[derive(
558 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
559)]
560#[declaration_metadata(
561 initial = "auto",
562 applies_to = Elements,
563 animation_type = ByComputedValue,
564 property_group = Flexbox,
565 computed_value_type = Unknown,
566 canonical_order = "per grammar",
567)]
568#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
569#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
570#[derive(csskit_derives::NodeWithMetadata)]
571pub enum WebkitFlexBasisStyleValue<'a> {}
572
573#[syntax(" <'flex-direction'> || <'flex-wrap'> ")]
575#[derive(
576 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
577)]
578#[declaration_metadata(
579 initial = "see individual properties",
580 applies_to = Elements,
581 property_group = Flexbox,
582 computed_value_type = Unknown,
583 canonical_order = "per grammar",
584)]
585#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
586#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
587#[derive(csskit_derives::NodeWithMetadata)]
588pub struct WebkitFlexFlowStyleValue<'a>;
589
590#[syntax(" <number [0,∞]> ")]
592#[derive(
593 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
594)]
595#[declaration_metadata(
596 initial = "0",
597 applies_to = Elements,
598 animation_type = ByComputedValue,
599 property_group = Flexbox,
600 computed_value_type = AsSpecified,
601 canonical_order = "per grammar",
602)]
603#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
604#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
605#[derive(csskit_derives::NodeWithMetadata)]
606pub struct WebkitFlexGrowStyleValue<'a>;
607
608#[syntax(" normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ")]
610#[derive(
611 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
612)]
613#[declaration_metadata(
614 initial = "normal",
615 applies_to = Elements,
616 animation_type = Discrete,
617 property_group = Align,
618 computed_value_type = AsSpecified,
619 canonical_order = "per grammar",
620)]
621#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
622#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
623#[derive(csskit_derives::NodeWithMetadata)]
624pub enum WebkitJustifyContentStyleValue<'a> {}
625
626#[syntax(" normal | stretch | <baseline-position> | <overflow-position>? <self-position> ")]
628#[derive(
629 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
630)]
631#[declaration_metadata(
632 initial = "normal",
633 applies_to = Elements,
634 animation_type = Discrete,
635 property_group = Align,
636 computed_value_type = AsSpecified,
637 canonical_order = "per grammar",
638)]
639#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
640#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
641#[derive(csskit_derives::NodeWithMetadata)]
642pub enum WebkitAlignItemsStyleValue<'a> {}
643
644#[syntax(" auto | <overflow-position>? [ normal | <self-position> ] | stretch | <baseline-position> ")]
646#[derive(
647 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
648)]
649#[declaration_metadata(
650 initial = "auto",
651 applies_to = Elements,
652 animation_type = Discrete,
653 property_group = Align,
654 computed_value_type = AsSpecified,
655 canonical_order = "per grammar",
656)]
657#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
658#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
659#[derive(csskit_derives::NodeWithMetadata)]
660pub enum WebkitAlignSelfStyleValue<'a> {}
661
662#[syntax(" normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ")]
664#[derive(
665 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
666)]
667#[declaration_metadata(
668 initial = "normal",
669 applies_to = Elements,
670 animation_type = Discrete,
671 property_group = Align,
672 computed_value_type = AsSpecified,
673 canonical_order = "per grammar",
674)]
675#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
676#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
677#[derive(csskit_derives::NodeWithMetadata)]
678pub enum WebkitAlignContentStyleValue<'a> {}
679
680#[syntax(" horizontal | vertical | inline-axis | block-axis ")]
684#[derive(
685 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
686)]
687#[declaration_metadata(
688 initial = "inline-axis",
689 applies_to = Elements,
690 animation_type = Discrete,
691 property_group = Flexbox,
692 computed_value_type = AsSpecified,
693 canonical_order = "per grammar",
694)]
695#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
696#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
697#[derive(csskit_derives::NodeWithMetadata)]
698pub enum WebkitBoxOrientStyleValue<'a> {}
699
700#[syntax(" normal | reverse ")]
702#[derive(
703 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
704)]
705#[declaration_metadata(
706 initial = "normal",
707 applies_to = Elements,
708 animation_type = Discrete,
709 property_group = Flexbox,
710 computed_value_type = AsSpecified,
711 canonical_order = "per grammar",
712)]
713#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
714#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
715#[derive(csskit_derives::NodeWithMetadata)]
716pub enum WebkitBoxDirectionStyleValue<'a> {}
717
718#[syntax(" start | end | center | justify ")]
720#[derive(
721 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
722)]
723#[declaration_metadata(
724 initial = "start",
725 applies_to = Elements,
726 animation_type = Discrete,
727 property_group = Flexbox,
728 computed_value_type = AsSpecified,
729 canonical_order = "per grammar",
730)]
731#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
732#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
733#[derive(csskit_derives::NodeWithMetadata)]
734pub enum WebkitBoxPackStyleValue<'a> {}
735
736#[syntax(" stretch | start | end | center | baseline ")]
738#[derive(
739 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
740)]
741#[declaration_metadata(
742 initial = "stretch",
743 applies_to = Elements,
744 animation_type = Discrete,
745 property_group = Flexbox,
746 computed_value_type = AsSpecified,
747 canonical_order = "per grammar",
748)]
749#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
750#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
751#[derive(csskit_derives::NodeWithMetadata)]
752pub enum WebkitBoxAlignStyleValue<'a> {}
753
754#[syntax(" <number> ")]
756#[derive(
757 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
758)]
759#[declaration_metadata(
760 initial = "0",
761 applies_to = Elements,
762 animation_type = ByComputedValue,
763 property_group = Flexbox,
764 computed_value_type = AsSpecified,
765 canonical_order = "per grammar",
766)]
767#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
768#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
769#[derive(csskit_derives::NodeWithMetadata)]
770pub struct WebkitBoxFlexStyleValue<'a>;
771
772#[syntax(" <integer [1,∞]> ")]
774#[derive(
775 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
776)]
777#[declaration_metadata(
778 initial = "1",
779 applies_to = Elements,
780 animation_type = ByComputedValue,
781 property_group = Flexbox,
782 computed_value_type = AsSpecified,
783 canonical_order = "per grammar",
784)]
785#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
786#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
787#[derive(csskit_derives::NodeWithMetadata)]
788pub struct WebkitBoxOrdinalGroupStyleValue<'a>;
789
790#[syntax(" <spread-shadow># ")]
792#[derive(
793 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
794)]
795#[declaration_metadata(
796 initial = "none",
797 applies_to = Elements,
798 animation_type = ByComputedValue,
799 property_group = Borders,
800 computed_value_type = Unknown,
801 canonical_order = "per grammar",
802)]
803#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
804#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
805#[derive(csskit_derives::NodeWithMetadata)]
806pub struct WebkitBoxShadowStyleValue<'a>;
807
808#[syntax(" content-box | border-box ")]
810#[derive(
811 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
812)]
813#[declaration_metadata(
814 initial = "content-box",
815 applies_to = Elements,
816 animation_type = Discrete,
817 property_group = Sizing,
818 computed_value_type = AsSpecified,
819 canonical_order = "per grammar",
820)]
821#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
822#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
823#[derive(csskit_derives::NodeWithMetadata)]
824pub enum WebkitBoxSizingStyleValue<'a> {}
825
826#[syntax(" clone | slice ")]
828#[derive(
829 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
830)]
831#[declaration_metadata(
832 initial = "slice",
833 applies_to = Elements,
834 animation_type = Discrete,
835 property_group = Borders,
836 computed_value_type = AsSpecified,
837 canonical_order = "per grammar",
838)]
839#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
840#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
841#[derive(csskit_derives::NodeWithMetadata)]
842pub enum WebkitBoxDecorationBreakStyleValue<'a> {}
843
844#[syntax(" auto | text | none | all ")]
848#[derive(
849 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
850)]
851#[declaration_metadata(
852 initial = "auto",
853 applies_to = Elements,
854 animation_type = Discrete,
855 property_group = Ui,
856 computed_value_type = AsSpecified,
857 canonical_order = "per grammar",
858)]
859#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
860#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
861#[derive(csskit_derives::NodeWithMetadata)]
862pub enum WebkitUserSelectStyleValue<'a> {}
863
864#[syntax(" auto | touch ")]
866#[derive(
867 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
868)]
869#[declaration_metadata(
870 initial = "auto",
871 applies_to = Elements,
872 animation_type = Discrete,
873 property_group = Overflow,
874 computed_value_type = AsSpecified,
875 canonical_order = "per grammar",
876)]
877#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
878#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
879#[derive(csskit_derives::NodeWithMetadata)]
880pub enum WebkitOverflowScrollingStyleValue<'a> {}
881
882#[syntax(" economy | exact ")]
884#[derive(
885 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
886)]
887#[declaration_metadata(
888 initial = "economy",
889 inherits,
890 applies_to = Elements,
891 animation_type = Discrete,
892 property_group = ColorAdjust,
893 computed_value_type = AsSpecified,
894 canonical_order = "per grammar",
895)]
896#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
897#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
898#[derive(csskit_derives::NodeWithMetadata)]
899pub enum WebkitPrintColorAdjustStyleValue<'a> {}
900
901#[syntax(
903 " <'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'> "
904)]
905#[derive(
906 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
907)]
908#[declaration_metadata(
909 initial = "see individual properties",
910 applies_to = Elements,
911 animation_type = Unknown,
912 property_group = TextDecor,
913 computed_value_type = Unknown,
914 canonical_order = "per grammar",
915)]
916#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
917#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
918#[derive(csskit_derives::NodeWithMetadata)]
919pub struct WebkitTextDecorationStyleValue<'a>;
920
921#[syntax(" <color> ")]
923#[derive(
924 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
925)]
926#[declaration_metadata(
927 initial = "currentcolor",
928 inherits,
929 applies_to = Elements,
930 animation_type = ByComputedValue,
931 property_group = TextDecor,
932 computed_value_type = Unknown,
933 canonical_order = "per grammar",
934)]
935#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
936#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
937#[derive(csskit_derives::NodeWithMetadata)]
938pub struct WebkitTextDecorationColorStyleValue<'a>;
939
940#[syntax(" auto | none | all ")]
942#[derive(
943 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
944)]
945#[declaration_metadata(
946 initial = "auto",
947 inherits,
948 applies_to = Elements,
949 animation_type = Discrete,
950 property_group = TextDecor,
951 computed_value_type = AsSpecified,
952 canonical_order = "per grammar",
953)]
954#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
955#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
956#[derive(csskit_derives::NodeWithMetadata)]
957pub enum WebkitTextDecorationSkipInkStyleValue<'a> {}
958
959#[syntax(" normal | <length-percentage [0,∞]> | <line-width> ")]
961#[derive(
962 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
963)]
964#[declaration_metadata(
965 initial = "normal",
966 applies_to = Elements,
967 animation_type = ByComputedValue,
968 property_group = Gaps,
969 computed_value_type = Unknown,
970 canonical_order = "per grammar",
971)]
972#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
973#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
974#[derive(csskit_derives::NodeWithMetadata)]
975pub enum WebkitColumnGapStyleValue<'a> {}
976
977#[syntax(" auto | <integer [1,∞]> ")]
979#[derive(
980 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
981)]
982#[declaration_metadata(
983 initial = "auto",
984 applies_to = Elements,
985 animation_type = ByComputedValue,
986 property_group = Multicol,
987 computed_value_type = AsSpecified,
988 canonical_order = "per grammar",
989)]
990#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
991#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
992#[derive(csskit_derives::NodeWithMetadata)]
993pub struct WebkitColumnCountStyleValue<'a>;
994
995#[syntax(" <'margin-top'> ")]
997#[derive(
998 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
999)]
1000#[declaration_metadata(
1001 initial = "0",
1002 applies_to = Elements,
1003 animation_type = ByComputedValue,
1004 property_group = Logical,
1005 computed_value_type = Unknown,
1006 canonical_order = "per grammar",
1007)]
1008#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1009#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1010#[derive(csskit_derives::NodeWithMetadata)]
1011pub struct WebkitMarginEndStyleValue<'a>;
1012
1013#[syntax(" <position># ")]
1015#[derive(
1016 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1017)]
1018#[declaration_metadata(
1019 initial = "0% 0%",
1020 applies_to = Elements,
1021 animation_type = Unknown,
1022 property_group = Masking,
1023 computed_value_type = Unknown,
1024 canonical_order = "per grammar",
1025)]
1026#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1027#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1028#[derive(csskit_derives::NodeWithMetadata)]
1029pub struct WebkitMaskPositionStyleValue<'a>;
1030
1031#[syntax(" <bg-size># ")]
1033#[derive(
1034 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1035)]
1036#[declaration_metadata(
1037 initial = "auto",
1038 applies_to = Elements,
1039 animation_type = Unknown,
1040 property_group = Masking,
1041 computed_value_type = Unknown,
1042 canonical_order = "per grammar",
1043)]
1044#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1045#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1046#[derive(csskit_derives::NodeWithMetadata)]
1047pub struct WebkitMaskSizeStyleValue<'a>;
1048
1049#[syntax(" none | <single-transition-property># ")]
1051#[derive(
1052 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1053)]
1054#[declaration_metadata(
1055 initial = "all",
1056 applies_to = Elements,
1057 property_group = Transitions,
1058 computed_value_type = Unknown,
1059 canonical_order = "per grammar",
1060)]
1061#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1062#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1063#[derive(csskit_derives::NodeWithMetadata)]
1064pub struct WebkitTransitionPropertyStyleValue<'a>;
1065
1066#[syntax(" <time># ")]
1068#[derive(
1069 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1070)]
1071#[declaration_metadata(
1072 initial = "0s",
1073 applies_to = Elements,
1074 property_group = Transitions,
1075 computed_value_type = Unknown,
1076 canonical_order = "per grammar",
1077)]
1078#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1079#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1080#[derive(csskit_derives::NodeWithMetadata)]
1081pub struct WebkitTransitionDelayStyleValue<'a>;
1082
1083#[syntax(" auto | none | element ")]
1085#[derive(
1086 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1087)]
1088#[declaration_metadata(
1089 initial = "auto",
1090 applies_to = Elements,
1091 animation_type = Discrete,
1092 property_group = Ui,
1093 computed_value_type = AsSpecified,
1094 canonical_order = "per grammar",
1095)]
1096#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1097#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1098#[derive(csskit_derives::NodeWithMetadata)]
1099pub enum WebkitUserDragStyleValue<'a> {}
1100
1101#[syntax(" default | none ")]
1103#[derive(
1104 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1105)]
1106#[declaration_metadata(
1107 initial = "default",
1108 inherits,
1109 applies_to = Elements,
1110 animation_type = Discrete,
1111 property_group = Ui,
1112 computed_value_type = AsSpecified,
1113 canonical_order = "per grammar",
1114)]
1115#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1116#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1117#[derive(csskit_derives::NodeWithMetadata)]
1118pub enum WebkitTouchCalloutStyleValue<'a> {}
1119
1120#[syntax(" <color> ")]
1122#[derive(
1123 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1124)]
1125#[declaration_metadata(
1126 initial = "currentcolor",
1127 inherits,
1128 applies_to = Elements,
1129 animation_type = ByComputedValue,
1130 property_group = Fonts,
1131 computed_value_type = Unknown,
1132 canonical_order = "per grammar",
1133)]
1134#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1135#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1136#[derive(csskit_derives::NodeWithMetadata)]
1137pub struct WebkitTextFillColorStyleValue<'a>;
1138
1139#[syntax(" <'-webkit-text-stroke-width'> || <'-webkit-text-stroke-color'> ")]
1141#[derive(
1142 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1143)]
1144#[declaration_metadata(
1145 initial = "see individual properties",
1146 inherits,
1147 applies_to = Elements,
1148 animation_type = Unknown,
1149 longhands = _WebkitTextStrokeWidth|_WebkitTextStrokeColor,
1150 property_group = Fonts,
1151 computed_value_type = Unknown,
1152 canonical_order = "per grammar",
1153)]
1154#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1155#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1156#[derive(csskit_derives::NodeWithMetadata)]
1157pub struct WebkitTextStrokeStyleValue<'a>;
1158
1159#[syntax(" <color> ")]
1161#[derive(
1162 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1163)]
1164#[declaration_metadata(
1165 initial = "currentcolor",
1166 inherits,
1167 applies_to = Elements,
1168 animation_type = ByComputedValue,
1169 shorthand_group = _WebkitTextStroke,
1170 property_group = Fonts,
1171 computed_value_type = Unknown,
1172 canonical_order = "per grammar",
1173)]
1174#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1175#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1176#[derive(csskit_derives::NodeWithMetadata)]
1177pub struct WebkitTextStrokeColorStyleValue<'a>;
1178
1179#[syntax(" <line-width> ")]
1181#[derive(
1182 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1183)]
1184#[declaration_metadata(
1185 initial = "0",
1186 inherits,
1187 applies_to = Elements,
1188 animation_type = Discrete,
1189 shorthand_group = _WebkitTextStroke,
1190 property_group = Fonts,
1191 computed_value_type = Unknown,
1192 canonical_order = "per grammar",
1193)]
1194#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1195#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1196#[derive(csskit_derives::NodeWithMetadata)]
1197pub struct WebkitTextStrokeWidthStyleValue<'a>;
1198
1199#[syntax(" <bg-clip># ")]
1201#[derive(
1202 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1203)]
1204#[declaration_metadata(
1205 initial = "border-box",
1206 applies_to = Elements,
1207 animation_type = Discrete,
1208 property_group = Backgrounds,
1209 computed_value_type = AsSpecified,
1210 canonical_order = "per grammar",
1211)]
1212#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1213#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1214#[derive(csskit_derives::NodeWithMetadata)]
1215pub struct WebkitBackgroundClipStyleValue<'a>;
1216
1217#[syntax(" <bg-size># ")]
1219#[derive(
1220 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1221)]
1222#[declaration_metadata(
1223 initial = "auto",
1224 applies_to = Elements,
1225 animation_type = ByComputedValue,
1226 property_group = Backgrounds,
1227 computed_value_type = Unknown,
1228 canonical_order = "per grammar",
1229)]
1230#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1231#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1232#[derive(csskit_derives::NodeWithMetadata)]
1233pub struct WebkitBackgroundSizeStyleValue<'a>;
1234
1235#[syntax(" <single-animation># ")]
1237#[derive(
1238 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1239)]
1240#[declaration_metadata(
1241 initial = "auto",
1242 applies_to = Elements,
1243 animation_type = ByComputedValue,
1244 property_group = Animations,
1245 computed_value_type = Unknown,
1246 canonical_order = "per grammar",
1247)]
1248#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1249#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1250#[derive(csskit_derives::NodeWithMetadata)]
1251pub struct WebkitAnimationStyleValue<'a>;
1252
1253#[syntax(" none | <length [0,∞]> ")]
1255#[derive(
1256 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1257)]
1258#[declaration_metadata(
1259 initial = "none",
1260 applies_to = Elements,
1261 animation_type = ByComputedValue,
1262 property_group = Transforms,
1263 computed_value_type = Unknown,
1264 canonical_order = "per grammar",
1265)]
1266#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1267#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1268#[derive(csskit_derives::NodeWithMetadata)]
1269pub struct WebkitPerspectiveStyleValue<'a>;
1270
1271#[syntax(" none | <clip-source> | [ <basic-shape> || <geometry-box> ] ")]
1273#[derive(
1274 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1275)]
1276#[declaration_metadata(
1277 initial = "none",
1278 applies_to = Unknown,
1279 animation_type = ByComputedValue,
1280 property_group = Masking,
1281 computed_value_type = SpecifiedWithAbsoluteUrls,
1282 canonical_order = "per grammar",
1283)]
1284#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1285#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1286#[derive(csskit_derives::NodeWithMetadata)]
1287pub enum WebkitClipPathStyleValue<'a> {}
1288
1289#[cfg(test)]
1290mod tests {
1291 use super::*;
1292 use crate::CssAtomSet;
1293 use css_parse::{assert_parse, assert_parse_error, assert_peek_false};
1294
1295 #[test]
1296 fn test_parses() {
1297 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "none");
1298 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "blur(4px)");
1299 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "brightness(0.5) contrast(1.2)");
1300 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "drop-shadow(2px 4px)");
1301 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "drop-shadow(red 2px 4px)");
1302 }
1303
1304 #[test]
1305 fn test_errors() {
1306 assert_peek_false!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "invalid");
1307 }
1308
1309 #[test]
1310 fn test_transition_parses() {
1311 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "none");
1312 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "all 0.3s ease");
1313 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "opacity 1s, transform 0.5s");
1314 }
1315
1316 #[test]
1317 fn test_transition_errors() {
1318 assert_parse_error!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "invalid!!!!");
1319 }
1320
1321 #[test]
1322 fn test_flex_parses() {
1323 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "none");
1324 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "1");
1325 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "1 1 auto");
1326 }
1327
1328 #[test]
1329 fn test_flex_errors() {
1330 assert_peek_false!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "invalid");
1331 }
1332
1333 #[test]
1334 fn test_order_parses() {
1335 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "0");
1336 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "-1");
1337 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "5");
1338 }
1339
1340 #[test]
1341 fn test_order_errors() {
1342 assert_peek_false!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "none");
1343 }
1344
1345 #[test]
1346 fn test_appearance_parses() {
1347 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "none");
1348 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "auto");
1349 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "textfield");
1350 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "button");
1351 }
1352
1353 #[test]
1354 fn test_appearance_errors() {
1355 assert_peek_false!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "invalid");
1356 }
1357
1358 #[test]
1359 fn test_transform_parses() {
1360 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "none");
1361 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "rotate(45deg)");
1362 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "scale(-1, 1)");
1363 }
1364
1365 #[test]
1366 fn test_transform_errors() {
1367 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "invalid");
1368 }
1369
1370 #[test]
1371 fn test_font_smoothing_parses() {
1372 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "auto");
1373 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "none");
1374 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "antialiased");
1375 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "subpixel-antialiased");
1376 }
1377
1378 #[test]
1379 fn test_font_smoothing_errors() {
1380 assert_peek_false!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "invalid");
1381 }
1382
1383 #[test]
1384 fn test_text_size_adjust_parses() {
1385 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "auto");
1386 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "none");
1387 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "100%");
1388 }
1389
1390 #[test]
1391 fn test_text_size_adjust_errors() {
1392 assert_peek_false!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "invalid");
1393 }
1394
1395 #[test]
1396 fn test_animation_delay_parses() {
1397 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "0s");
1398 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "0.5s, 1s");
1399 }
1400
1401 #[test]
1402 fn test_animation_delay_errors() {
1403 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "invalid");
1404 }
1405
1406 #[test]
1407 fn test_animation_duration_parses() {
1408 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "auto");
1409 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "0.3s");
1410 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "1s, 2s");
1411 }
1412
1413 #[test]
1414 fn test_animation_duration_errors() {
1415 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "invalid");
1416 }
1417
1418 #[test]
1419 fn test_animation_fill_mode_parses() {
1420 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "none");
1421 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "forwards");
1422 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "both");
1423 }
1424
1425 #[test]
1426 fn test_animation_fill_mode_errors() {
1427 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "invalid");
1428 }
1429
1430 #[test]
1431 fn test_animation_iteration_count_parses() {
1432 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "1");
1433 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "infinite");
1434 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "3");
1435 }
1436
1437 #[test]
1438 fn test_animation_iteration_count_errors() {
1439 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "invalid");
1440 }
1441
1442 #[test]
1443 fn test_animation_name_parses() {
1444 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "none");
1445 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "my-animation");
1446 }
1447
1448 #[test]
1449 fn test_animation_name_errors() {
1450 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "");
1451 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "1px");
1452 }
1453
1454 #[test]
1455 fn test_animation_timing_function_parses() {
1456 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "ease");
1457 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "linear");
1458 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "ease-in-out");
1459 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "cubic-bezier(0.4, 0, 0.2, 1)");
1460 }
1461
1462 #[test]
1463 fn test_animation_timing_function_errors() {
1464 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "invalid");
1465 }
1466
1467 #[test]
1468 fn test_backface_visibility_parses() {
1469 assert_parse!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "visible");
1470 assert_parse!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "hidden");
1471 }
1472
1473 #[test]
1474 fn test_backface_visibility_errors() {
1475 assert_peek_false!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "invalid");
1476 }
1477
1478 #[test]
1479 fn test_tap_highlight_color_parses() {
1480 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "transparent");
1481 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "red");
1482 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "rgba(0, 0, 0, 0)");
1483 }
1484
1485 #[test]
1486 fn test_tap_highlight_color_errors() {
1487 assert_peek_false!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "invalid");
1488 }
1489
1490 #[test]
1491 fn test_transition_duration_parses() {
1492 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "0s");
1493 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "0.3s");
1494 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "1s, 200ms");
1495 }
1496
1497 #[test]
1498 fn test_transition_duration_errors() {
1499 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "invalid");
1500 }
1501
1502 #[test]
1503 fn test_transition_timing_function_parses() {
1504 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "ease");
1505 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "linear");
1506 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "cubic-bezier(0.4, 0, 0.2, 1)");
1507 }
1508
1509 #[test]
1510 fn test_transition_timing_function_errors() {
1511 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "invalid");
1512 }
1513
1514 #[test]
1515 fn test_webkit_perspective_parses() {
1516 assert_parse!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "none");
1517 assert_parse!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "800px");
1518 }
1519
1520 #[test]
1521 fn test_webkit_perspective_errors() {
1522 assert_peek_false!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "invalid");
1523 }
1524
1525 #[test]
1526 fn test_text_stroke_parses() {
1527 assert_parse!(CssAtomSet::ATOMS, WebkitTextStrokeStyleValue, "1px");
1528 assert_parse!(CssAtomSet::ATOMS, WebkitTextStrokeStyleValue, "red");
1529 assert_parse!(CssAtomSet::ATOMS, WebkitTextStrokeStyleValue, "1px red");
1530 assert_parse!(CssAtomSet::ATOMS, WebkitTextStrokeStyleValue, "red 1px");
1531 }
1532
1533 #[test]
1534 fn test_text_stroke_errors() {
1535 assert_peek_false!(CssAtomSet::ATOMS, WebkitTextStrokeStyleValue, "");
1536 }
1537}