Skip to main content

css_ast/
css_atom_set.rs

1pub use atom_set::AtomSet;
2use derive_atom_set::AtomSet;
3
4/// Atoms used by the CSS AST, extending the lexer's atom set with additional CSS-specific atoms.
5///
6/// # Examples
7///
8/// ```rust
9/// use css_ast::CssAtomSet;
10/// use css_parse::AtomSet;
11///
12/// assert_eq!(CssAtomSet::from_str("px"), CssAtomSet::Px);
13/// assert_eq!(CssAtomSet::from_str("%"), CssAtomSet::Percent);
14/// assert_eq!(CssAtomSet::Px.to_str(), "px");
15/// assert_eq!(CssAtomSet::Percent.to_str(), "%");
16/// ```
17#[csskit_proc_macro::node]
18#[derive(AtomSet, Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19pub enum CssAtomSet {
20	#[default]
21	_None,
22
23	Cap,
24	Ch,
25	Cm,
26	Cqb,
27	Cqh,
28	Cqi,
29	Cqmax,
30	Cqmin,
31	Cqw,
32	Db,
33	Deg,
34	Dpcm,
35	Dpi,
36	Dppx,
37	Dvb,
38	Dvh,
39	Dvi,
40	Dvmax,
41	Dvmin,
42	Dvw,
43	Em,
44	Ex,
45	Fr,
46	Grad,
47	Hz,
48	Ic,
49	In,
50	Khz,
51	Lh,
52	Lvb,
53	Lvh,
54	Lvi,
55	Lvmax,
56	Lvmin,
57	Lvw,
58	Mm,
59	Ms,
60	Pc,
61	#[atom("%")]
62	Percent,
63	Pt,
64	Px,
65	Q,
66	Rad,
67	Rcap,
68	Rch,
69	Rem,
70	Rex,
71	Ric,
72	Rlh,
73	S,
74	St,
75	Svb,
76	Svh,
77	Svi,
78	Svmax,
79	Svmin,
80	Svw,
81	Turn,
82	Vb,
83	Vh,
84	Vi,
85	Vmax,
86	Vmin,
87	Vw,
88	X,
89
90	// ^^^ Only dimensions go above here! ^^^
91
92	// CSS Keywords
93	A = 128,
94	A98Rgb,
95	Abbr,
96	Abs,
97	Absolute,
98	AbsoluteColorimetric,
99	AccentColor,
100	Accentcolor,
101	Accentcolortext,
102	Accumulate,
103	Acos,
104	Acronym,
105	Active,
106	ActiveViewTransition,
107	Activetext,
108	Add,
109	Additive,
110	AdditiveSymbols,
111	Address,
112	After,
113	Alias,
114	Aliceblue,
115	AlignContent,
116	AlignItems,
117	AlignSelf,
118	AlignmentBaseline,
119	All,
120	AllPetiteCaps,
121	AllScroll,
122	AllSmallCaps,
123	AllowDiscrete,
124	AllowEnd,
125	AllowKeywords,
126	Alpha,
127	Alphabetic,
128	Alternate,
129	AlternateReverse,
130	Always,
131	AnchorName,
132	AnchorScope,
133	AnchorValid,
134	AnchorVisible,
135	And,
136	Angle,
137	Animate,
138	AnimatedImage,
139	Animatemotion,
140	Animatetransform,
141	Animation,
142	AnimationComposition,
143	AnimationDelay,
144	AnimationDelayEnd,
145	AnimationDelayStart,
146	AnimationDirection,
147	AnimationDuration,
148	AnimationFillMode,
149	AnimationIterationCount,
150	AnimationName,
151	AnimationPlayState,
152	AnimationRange,
153	AnimationRangeCenter,
154	AnimationRangeEnd,
155	AnimationRangeStart,
156	AnimationTimeline,
157	AnimationTimingFunction,
158	AnimationTrigger,
159	AnimationTriggerBehavior,
160	AnimationTriggerExitRange,
161	AnimationTriggerExitRangeEnd,
162	AnimationTriggerExitRangeStart,
163	AnimationTriggerRange,
164	AnimationTriggerRangeEnd,
165	AnimationTriggerRangeStart,
166	AnimationTriggerTimeline,
167	Annotation,
168	AnnotationXml,
169	Antialiased,
170	Antiquewhite,
171	Any,
172	AnyHover,
173	AnyLink,
174	AnyPointer,
175	Anywhere,
176	Appearance,
177	Applet,
178	Apply,
179	Approx,
180	Aqua,
181	Aquamarine,
182	ArabicIndic,
183	Arc,
184	Arcs,
185	Area,
186	Arg,
187	Armenian,
188	Around,
189	Article,
190	AscentOverride,
191	Aside,
192	Asin,
193	AspectRatio,
194	At,
195	Atan,
196	Atan2,
197	Attr,
198	Audio,
199	Auto,
200	AutoFill,
201	AutoFit,
202	AutoPhrase,
203	Autofill,
204	Avoid,
205	AvoidColumn,
206	AvoidFlex,
207	AvoidLine,
208	AvoidOrphans,
209	AvoidPage,
210	AvoidRegion,
211	AvoidShortLastLine,
212	Azure,
213	B,
214	Back,
215	Backdrop,
216	BackdropFilter,
217	BackfaceVisibility,
218	Background,
219	BackgroundAttachment,
220	BackgroundBlendMode,
221	BackgroundClip,
222	BackgroundColor,
223	BackgroundImage,
224	BackgroundOrigin,
225	BackgroundPosition,
226	BackgroundPositionBlock,
227	BackgroundPositionInline,
228	BackgroundPositionX,
229	BackgroundPositionY,
230	BackgroundRepeat,
231	BackgroundRepeatBlock,
232	BackgroundRepeatInline,
233	BackgroundRepeatX,
234	BackgroundRepeatY,
235	BackgroundSize,
236	Backwards,
237	Balance,
238	BalanceAll,
239	Bar,
240	Base,
241	BasePalette,
242	BaseSelect,
243	Basefont,
244	Baseline,
245	BaselineShift,
246	BaselineSource,
247	Bdi,
248	Bdo,
249	Before,
250	Beige,
251	Bengali,
252	Between,
253	Bevel,
254	Bgsound,
255	Bicubic,
256	BidiOverride,
257	Big,
258	Bind,
259	Bisque,
260	Black,
261	Blanchedalmond,
262	Blank,
263	Bleed,
264	Blink,
265	Block,
266	BlockAxis,
267	BlockEllipsis,
268	BlockEnd,
269	BlockSize,
270	BlockStart,
271	BlockStep,
272	BlockStepAlign,
273	BlockStepInsert,
274	BlockStepRound,
275	BlockStepSize,
276	Blockquote,
277	Blue,
278	Blueviolet,
279	Blur,
280	Body,
281	Bold,
282	Bolder,
283	BookmarkLabel,
284	BookmarkLevel,
285	BookmarkState,
286	Border,
287	BorderArea,
288	BorderBlock,
289	BorderBlockClip,
290	BorderBlockColor,
291	BorderBlockEnd,
292	BorderBlockEndClip,
293	BorderBlockEndColor,
294	BorderBlockEndRadius,
295	BorderBlockEndStyle,
296	BorderBlockEndWidth,
297	BorderBlockStart,
298	BorderBlockStartClip,
299	BorderBlockStartColor,
300	BorderBlockStartRadius,
301	BorderBlockStartStyle,
302	BorderBlockStartWidth,
303	BorderBlockStyle,
304	BorderBlockWidth,
305	BorderBottom,
306	BorderBottomClip,
307	BorderBottomColor,
308	BorderBottomLeftRadius,
309	BorderBottomRadius,
310	BorderBottomRightRadius,
311	BorderBottomStyle,
312	BorderBottomWidth,
313	BorderBoundary,
314	BorderBox,
315	BorderClip,
316	BorderClipBottom,
317	BorderClipLeft,
318	BorderClipRight,
319	BorderClipTop,
320	BorderCollapse,
321	BorderColor,
322	BorderEndEndRadius,
323	BorderEndStartRadius,
324	BorderImage,
325	BorderImageOutset,
326	BorderImageRepeat,
327	BorderImageSlice,
328	BorderImageSource,
329	BorderImageWidth,
330	BorderInline,
331	BorderInlineClip,
332	BorderInlineColor,
333	BorderInlineEnd,
334	BorderInlineEndClip,
335	BorderInlineEndColor,
336	BorderInlineEndRadius,
337	BorderInlineEndStyle,
338	BorderInlineEndWidth,
339	BorderInlineStart,
340	BorderInlineStartClip,
341	BorderInlineStartColor,
342	BorderInlineStartRadius,
343	BorderInlineStartStyle,
344	BorderInlineStartWidth,
345	BorderInlineStyle,
346	BorderInlineWidth,
347	BorderLeft,
348	BorderLeftClip,
349	BorderLeftColor,
350	BorderLeftRadius,
351	BorderLeftStyle,
352	BorderLeftWidth,
353	BorderLimit,
354	BorderRadius,
355	BorderRight,
356	BorderRightClip,
357	BorderRightColor,
358	BorderRightRadius,
359	BorderRightStyle,
360	BorderRightWidth,
361	BorderShape,
362	BorderSpacing,
363	BorderStartEndRadius,
364	BorderStartStartRadius,
365	BorderStyle,
366	BorderTop,
367	BorderTopClip,
368	BorderTopColor,
369	BorderTopLeftRadius,
370	BorderTopRadius,
371	BorderTopRightRadius,
372	BorderTopStyle,
373	BorderTopWidth,
374	BorderWidth,
375	Both,
376	BothBlock,
377	BothEdges,
378	BothInline,
379	Bottom,
380	BottomCenter,
381	BottomLeft,
382	BottomLeftCorner,
383	BottomRight,
384	BottomRightCorner,
385	BottomToTop,
386	BoundingBox,
387	Box,
388	BoxDecorationBreak,
389	BoxShadow,
390	BoxShadowBlur,
391	BoxShadowColor,
392	BoxShadowOffset,
393	BoxShadowPosition,
394	BoxShadowSpread,
395	BoxSizing,
396	BoxSnap,
397	Br,
398	Break,
399	BreakAfter,
400	BreakAll,
401	BreakBefore,
402	BreakInside,
403	BreakSpaces,
404	BreakWord,
405	Brightness,
406	Brown,
407	Browser,
408	Buffering,
409	Bullets,
410	Burlywood,
411	Butt,
412	Button,
413	Buttonborder,
414	Buttonface,
415	Buttontext,
416	Bvar,
417	By,
418	C,
419	Cadetblue,
420	Calc,
421	CalcSize,
422	Cambodian,
423	Canvas,
424	Canvastext,
425	CapHeight,
426	Capitalize,
427	Caption,
428	CaptionSide,
429	Card,
430	Caret,
431	CaretAnimation,
432	CaretColor,
433	CaretShape,
434	Cartesianproduct,
435	Cbytes,
436	Ccw,
437	Ceiling,
438	Cell,
439	Center,
440	Central,
441	Cerror,
442	ChWidth,
443	Chain,
444	Change,
445	CharacterVariant,
446	Charset,
447	Chartreuse,
448	Checkbox,
449	Checked,
450	Checkmark,
451	Child,
452	Chocolate,
453	Ci,
454	Circle,
455	Cite,
456	CjkDecimal,
457	CjkEarthlyBranch,
458	CjkHeavenlyStem,
459	Clamp,
460	Clear,
461	ClearIcon,
462	Click,
463	Clip,
464	ClipPath,
465	ClipRule,
466	Clippath,
467	Clone,
468	Close,
469	CloseQuote,
470	Closed,
471	ClosestCorner,
472	ClosestSide,
473	Cn,
474	Coarse,
475	Code,
476	Codomain,
477	Col,
478	ColResize,
479	Colgroup,
480	Collapse,
481	Collection,
482	Color,
483	ColorAdjust,
484	ColorBurn,
485	#[atom("color-CBDT")]
486	ColorCbdt,
487	#[atom("color-COLRv0")]
488	ColorColrv0,
489	#[atom("color-COLRv1")]
490	ColorColrv1,
491	ColorDodge,
492	ColorGamut,
493	ColorIndex,
494	ColorInterpolation,
495	ColorInterpolationFilters,
496	ColorMix,
497	ColorProfile,
498	#[atom("color-sbix")]
499	ColorSbix,
500	ColorScheme,
501	#[atom("color-SVG")]
502	ColorSvg,
503	ColorSwatch,
504	Column,
505	ColumnCount,
506	ColumnFill,
507	ColumnGap,
508	ColumnHeight,
509	ColumnOverRow,
510	ColumnReverse,
511	ColumnRule,
512	ColumnRuleBreak,
513	ColumnRuleColor,
514	ColumnRuleEdgeInset,
515	ColumnRuleEdgeInsetEnd,
516	ColumnRuleEdgeInsetStart,
517	ColumnRuleInset,
518	ColumnRuleInsetCap,
519	ColumnRuleInsetCapEnd,
520	ColumnRuleInsetCapStart,
521	ColumnRuleInsetEnd,
522	ColumnRuleInsetJunction,
523	ColumnRuleInsetJunctionEnd,
524	ColumnRuleInsetJunctionStart,
525	ColumnRuleInsetStart,
526	ColumnRuleInteriorInset,
527	ColumnRuleInteriorInsetEnd,
528	ColumnRuleInteriorInsetStart,
529	ColumnRuleOutset,
530	ColumnRuleStyle,
531	ColumnRuleVisibilityItems,
532	ColumnRuleWidth,
533	ColumnSpan,
534	ColumnWidth,
535	ColumnWrap,
536	Columns,
537	CommonLigatures,
538	Compact,
539	Components,
540	Compose,
541	Compress,
542	Condensed,
543	Condition,
544	ConicGradient,
545	Conjugate,
546	Consistent,
547	Constrained,
548	Contain,
549	ContainIntrinsicBlockSize,
550	ContainIntrinsicHeight,
551	ContainIntrinsicInlineSize,
552	ContainIntrinsicSize,
553	ContainIntrinsicWidth,
554	Container,
555	ContainerName,
556	ContainerType,
557	Content,
558	ContentBlockSize,
559	ContentBox,
560	ContentHeight,
561	ContentInlineSize,
562	ContentVisibility,
563	ContentWidth,
564	Contents,
565	ContextMenu,
566	Contextual,
567	Continue,
568	Contrast,
569	Copy,
570	CopyInto,
571	Coral,
572	Corner,
573	CornerBlockEnd,
574	CornerBlockEndShape,
575	CornerBlockStart,
576	CornerBlockStartShape,
577	CornerBottom,
578	CornerBottomLeft,
579	CornerBottomLeftShape,
580	CornerBottomRight,
581	CornerBottomRightShape,
582	CornerBottomShape,
583	CornerEndEnd,
584	CornerEndEndShape,
585	CornerEndStart,
586	CornerEndStartShape,
587	CornerInlineEnd,
588	CornerInlineEndShape,
589	CornerInlineStart,
590	CornerInlineStartShape,
591	CornerLeft,
592	CornerLeftShape,
593	CornerPresent,
594	CornerRight,
595	CornerRightShape,
596	CornerShape,
597	CornerStartEnd,
598	CornerStartEndShape,
599	CornerStartStart,
600	CornerStartStartShape,
601	CornerTop,
602	CornerTopLeft,
603	CornerTopLeftShape,
604	CornerTopRight,
605	CornerTopRightShape,
606	CornerTopShape,
607	Corners,
608	Cornflowerblue,
609	Cornsilk,
610	Cos,
611	Counter,
612	CounterIncrement,
613	CounterReset,
614	CounterSet,
615	CounterStyle,
616	Counters,
617	Cover,
618	Create,
619	Crimson,
620	CrispEdges,
621	Crispedges,
622	Crop,
623	CrossFade,
624	Crosshair,
625	Cs,
626	Csymbol,
627	CubicBezier,
628	Cue,
629	CueAfter,
630	CueBefore,
631	CueRegion,
632	Curl,
633	Current,
634	Currentcolor,
635	Cursive,
636	Cursor,
637	Curve,
638	Custom,
639	CustomIdent,
640	CustomMedia,
641	Cw,
642	Cyan,
643	Cyclic,
644	D50,
645	D65,
646	Dark,
647	Darkblue,
648	Darkcyan,
649	Darken,
650	Darkgoldenrod,
651	Darkgray,
652	Darkgreen,
653	Darkgrey,
654	Darkkhaki,
655	Darkmagenta,
656	Darkolivegreen,
657	Darkorange,
658	Darkorchid,
659	Darkred,
660	Darksalmon,
661	Darkseagreen,
662	Darkslateblue,
663	Darkslategray,
664	Darkslategrey,
665	Darkturquoise,
666	Darkviolet,
667	Dashed,
668	Dashes,
669	Data,
670	Datalist,
671	Dblclick,
672	Dd,
673	Decimal,
674	DecimalLeadingZero,
675	Declare,
676	Decreasing,
677	Decrement,
678	Deeppink,
679	Deepskyblue,
680	Default,
681	Defined,
682	Defs,
683	Degree,
684	Del,
685	Dense,
686	Desc,
687	DescentOverride,
688	DestinationAtop,
689	DestinationIn,
690	DestinationOut,
691	DestinationOver,
692	Details,
693	DetailsContent,
694	Determinant,
695	Devanagari,
696	DeviceAspectRatio,
697	DeviceCmyk,
698	DeviceHeight,
699	DeviceWidth,
700	Dfn,
701	DiagonalFractions,
702	Dialog,
703	Diff,
704	Difference,
705	Digits,
706	Dimgray,
707	Dimgrey,
708	Dir,
709	Direction,
710	Disabled,
711	Disc,
712	Discard,
713	DiscardAfter,
714	DiscardBefore,
715	DiscardInner,
716	DisclosureClosed,
717	DisclosureOpen,
718	Discrete,
719	DiscretionaryLigatures,
720	Display,
721	DisplayMode,
722	DisplayP3,
723	Distribute,
724	Div,
725	Divergence,
726	Divide,
727	Dl,
728	Document,
729	Dodgerblue,
730	Domain,
731	Domainofapplication,
732	DominantBaseline,
733	Dot,
734	Dotted,
735	Double,
736	DoubleButton,
737	DoubleCircle,
738	Down,
739	Drop,
740	DropShadow,
741	Dt,
742	DynamicRange,
743	DynamicRangeLimit,
744	DynamicRangeLimitMix,
745	E,
746	EResize,
747	EachLine,
748	Ease,
749	EaseIn,
750	EaseInOut,
751	EaseOut,
752	Economy,
753	Element,
754	Ellipse,
755	Ellipsis,
756	Else,
757	Embed,
758	Emoji,
759	Empty,
760	EmptyCells,
761	Emptyset,
762	Enabled,
763	End,
764	EmbeddedOpentype,
765	Entry,
766	EntryCrossing,
767	Env,
768	EnvironmentBlending,
769	Eq,
770	Equivalent,
771	Even,
772	Evenodd,
773	EventTrigger,
774	EventTriggerName,
775	EventTriggerSource,
776	EwResize,
777	ExHeight,
778	Exact,
779	Exclusion,
780	Exists,
781	Exit,
782	ExitCrossing,
783	Exp,
784	Expanded,
785	Extends,
786	ExtraCondensed,
787	ExtraExpanded,
788	Factorial,
789	Factorof,
790	Fade,
791	Fallback,
792	False,
793	Fangsong,
794	Fantasy,
795	FarthestCorner,
796	FarthestSide,
797	Fast,
798	FeaturesAat,
799	FeaturesGraphite,
800	FeaturesOpentype,
801	Feblend,
802	Fecolormatrix,
803	Fecomponenttransfer,
804	Fecomposite,
805	Feconvolvematrix,
806	Fediffuselighting,
807	Fedisplacementmap,
808	Fedistantlight,
809	Fedropshadow,
810	Feflood,
811	Fefunca,
812	Fefuncb,
813	Fefuncg,
814	Fefuncr,
815	Fegaussianblur,
816	Feimage,
817	Female,
818	Femerge,
819	Femergenode,
820	Femorphology,
821	Fencedframe,
822	Feoffset,
823	Fepointlight,
824	Fespecularlighting,
825	Fespotlight,
826	Fetile,
827	Feturbulence,
828	Field,
829	FieldComponent,
830	FieldSeparator,
831	FieldSizing,
832	FieldText,
833	Fieldset,
834	Fieldtext,
835	Figcaption,
836	Figure,
837	FileSelectorButton,
838	Fill,
839	FillBox,
840	FillBreak,
841	FillColor,
842	FillImage,
843	FillOpacity,
844	FillOrigin,
845	FillPosition,
846	FillRepeat,
847	FillRule,
848	FillSize,
849	Filled,
850	Filter,
851	FilterMarginBottom,
852	FilterMarginLeft,
853	FilterMarginRight,
854	FilterMarginTop,
855	Fine,
856	Firebrick,
857	First,
858	FirstChild,
859	FirstExcept,
860	FirstLetter,
861	FirstLine,
862	FirstOfPage,
863	FirstOfType,
864	FirstValid,
865	FitContent,
866	FitTolerance,
867	Fixed,
868	Flat,
869	Flex,
870	FlexBasis,
871	FlexDirection,
872	FlexEnd,
873	FlexFlow,
874	FlexGrow,
875	FlexLineCount,
876	FlexShrink,
877	FlexStart,
878	FlexVisual,
879	FlexWrap,
880	Flip,
881	FlipBlock,
882	FlipInline,
883	FlipStart,
884	FlipX,
885	FlipY,
886	Float,
887	FloatDefer,
888	FloatOffset,
889	FloatReference,
890	FloodColor,
891	FloodOpacity,
892	Floor,
893	Floralwhite,
894	Flow,
895	FlowFrom,
896	FlowInto,
897	FlowRoot,
898	Fn,
899	Focus,
900	FocusVisible,
901	FocusWithin,
902	Focusin,
903	Focusout,
904	Font,
905	FontDisplay,
906	FontFace,
907	FontFaceFormat,
908	FontFaceName,
909	FontFaceRule,
910	FontFaceSrc,
911	FontFaceUri,
912	FontFamily,
913	FontFeatureSettings,
914	FontFeatureValues,
915	FontFormat,
916	FontKerning,
917	FontLanguageOverride,
918	FontNamedInstance,
919	FontOpticalSizing,
920	FontPalette,
921	FontPaletteValues,
922	FontSize,
923	FontSizeAdjust,
924	FontStretch,
925	FontStyle,
926	FontSynthesis,
927	FontSynthesisPosition,
928	FontSynthesisSmallCaps,
929	FontSynthesisStyle,
930	FontSynthesisWeight,
931	FontTech,
932	FontVariant,
933	FontVariantAlternates,
934	FontVariantCaps,
935	FontVariantEastAsian,
936	FontVariantEmoji,
937	FontVariantLigatures,
938	FontVariantNumeric,
939	FontVariantPosition,
940	FontVariationSettings,
941	FontWeight,
942	FontWidth,
943	Footer,
944	FootnoteDisplay,
945	FootnotePolicy,
946	Forall,
947	ForceEnd,
948	ForceHidden,
949	ForcedColorAdjust,
950	ForcedColors,
951	Foreignobject,
952	Forestgreen,
953	Form,
954	Format,
955	Forwards,
956	Frame,
957	FrameSizing,
958	Frameset,
959	From,
960	FromFont,
961	FromImage,
962	Fuchsia,
963	FullSizeKana,
964	FullWidth,
965	Fullscreen,
966	FullscreenLandscape,
967	FullscreenPortait,
968	Future,
969	G,
970	Gainsboro,
971	Gap,
972	Gaps,
973	Gcd,
974	Generic,
975	Geometricprecision,
976	Georgian,
977	Geq,
978	Ghostwhite,
979	GlyphOrientationVertical,
980	Gold,
981	Goldenrod,
982	Grab,
983	Grabbing,
984	GrammarError,
985	Gray,
986	Grayscale,
987	Graytext,
988	Green,
989	Greenyellow,
990	Grey,
991	Grid,
992	GridArea,
993	GridAutoColumns,
994	GridAutoFlow,
995	GridAutoRows,
996	GridColumn,
997	GridColumnEnd,
998	GridColumnStart,
999	GridColumns,
1000	GridOrder,
1001	GridRow,
1002	GridRowEnd,
1003	GridRowStart,
1004	GridRows,
1005	GridTemplate,
1006	GridTemplateAreas,
1007	GridTemplateColumns,
1008	GridTemplateRows,
1009	Groove,
1010	Grow,
1011	Gt,
1012	Gujarati,
1013	Gurmukhi,
1014	H,
1015	H1,
1016	H2,
1017	H3,
1018	H4,
1019	H5,
1020	H6,
1021	Hanging,
1022	HangingPunctuation,
1023	HardLight,
1024	Has,
1025	HasSlotted,
1026	Head,
1027	Header,
1028	Heading,
1029	Hebrew,
1030	Height,
1031	Help,
1032	Hgroup,
1033	Hidden,
1034	Hide,
1035	High,
1036	HighQuality,
1037	HighValue,
1038	Highlight,
1039	Highlighttext,
1040	Hiragana,
1041	HiraganaIroha,
1042	HistoricalForms,
1043	HistoricalLigatures,
1044	Hline,
1045	Honeydew,
1046	Horizontal,
1047	HorizontalTb,
1048	HorizontalViewportSegments,
1049	Host,
1050	HostContext,
1051	Hotpink,
1052	Hover,
1053	Hr,
1054	Hsl,
1055	Hsla,
1056	Html,
1057	Hue,
1058	HueRotate,
1059	Hwb,
1060	HyphenateCharacter,
1061	HyphenateLimitChars,
1062	HyphenateLimitLast,
1063	HyphenateLimitLines,
1064	HyphenateLimitZone,
1065	Hyphens,
1066	Hypot,
1067	I,
1068	IcHeight,
1069	IcWidth,
1070	Icon,
1071	Ident,
1072	IdeographAlpha,
1073	IdeographNumeric,
1074	Ideographic,
1075	IdeographicInk,
1076	IdeographicSpace,
1077	If,
1078	Iframe,
1079	Image,
1080	ImageAnimation,
1081	ImageOrientation,
1082	ImageRendering,
1083	ImageResolution,
1084	ImageSet,
1085	Imaginary,
1086	Img,
1087	Implies,
1088	Import,
1089	InRange,
1090	Increasing,
1091	Increment,
1092	Incremental,
1093	Indeterminate,
1094	Indianred,
1095	Indigo,
1096	Inert,
1097	Infinite,
1098	Infinity,
1099	Inherit,
1100	Inherits,
1101	Initial,
1102	InitialLetter,
1103	InitialLetterAlign,
1104	InitialLetterWrap,
1105	InitialOnly,
1106	InitialValue,
1107	Inline,
1108	InlineAxis,
1109	InlineBlock,
1110	InlineEnd,
1111	InlineFlex,
1112	InlineGrid,
1113	InlineSize,
1114	InlineSizing,
1115	InlineStart,
1116	InlineTable,
1117	Input,
1118	InputSecurity,
1119	Ins,
1120	Insert,
1121	Inset,
1122	InsetBlock,
1123	InsetBlockEnd,
1124	InsetBlockStart,
1125	InsetInline,
1126	InsetInlineEnd,
1127	InsetInlineStart,
1128	Inside,
1129	Int,
1130	Integer,
1131	InterCharacter,
1132	InterWord,
1133	Interactivity,
1134	InterestButton,
1135	InterestDelay,
1136	InterestDelayEnd,
1137	InterestDelayStart,
1138	InterestSource,
1139	InterestTarget,
1140	Interlace,
1141	InterpolateSize,
1142	Intersect,
1143	Intersection,
1144	Interval,
1145	Invalid,
1146	Inverse,
1147	Invert,
1148	Inverted,
1149	InvertedColors,
1150	Is,
1151	Isindex,
1152	Isolate,
1153	IsolateOverride,
1154	Isolation,
1155	Italic,
1156	ItemCross,
1157	ItemDirection,
1158	ItemFlow,
1159	ItemPack,
1160	ItemTrack,
1161	ItemWrap,
1162	Ivory,
1163	Jis04,
1164	Jis78,
1165	Jis83,
1166	Jis90,
1167	JumpBoth,
1168	JumpEnd,
1169	JumpNone,
1170	JumpStart,
1171	Justify,
1172	JustifyAll,
1173	JustifyContent,
1174	JustifyItems,
1175	JustifySelf,
1176	Kai,
1177	Kannada,
1178	Katakana,
1179	KatakanaIroha,
1180	Kbd,
1181	Keep,
1182	KeepAll,
1183	Keyframes,
1184	Keygen,
1185	Keypress,
1186	Khaki,
1187	Khmer,
1188	KhmerMul,
1189	L,
1190	Lab,
1191	Label,
1192	Lambda,
1193	Landscape,
1194	Lang,
1195	Lao,
1196	Laplacian,
1197	Large,
1198	Larger,
1199	Last,
1200	LastBaseline,
1201	LastChild,
1202	LastOfPage,
1203	LastOfType,
1204	Lavender,
1205	Lavenderblush,
1206	Lawngreen,
1207	Layer,
1208	Layout,
1209	Lch,
1210	Lcm,
1211	Leader,
1212	Leading,
1213	Left,
1214	LeftBottom,
1215	LeftMiddle,
1216	LeftToRight,
1217	LeftTop,
1218	Leftwards,
1219	Legacy,
1220	Legend,
1221	Lemonchiffon,
1222	Length,
1223	LengthPercentage,
1224	Leq,
1225	Less,
1226	LetterSpacing,
1227	Li,
1228	Light,
1229	LightDark,
1230	Lightblue,
1231	Lightcoral,
1232	Lightcyan,
1233	Lighten,
1234	Lighter,
1235	Lightgoldenrodyellow,
1236	Lightgray,
1237	Lightgreen,
1238	Lightgrey,
1239	LightingColor,
1240	Lightpink,
1241	Lightsalmon,
1242	Lightseagreen,
1243	Lightskyblue,
1244	Lightslategray,
1245	Lightslategrey,
1246	Lightsteelblue,
1247	Lightyellow,
1248	Lime,
1249	Limegreen,
1250	Limit,
1251	Line,
1252	LineBreak,
1253	LineClamp,
1254	LineFitEdge,
1255	LineGapOverride,
1256	LineGrid,
1257	LineHeight,
1258	LineHeightStep,
1259	LinePadding,
1260	LineSnap,
1261	LineThrough,
1262	LineWidth,
1263	Linear,
1264	LinearGradient,
1265	LinearRgb,
1266	Lineargradient,
1267	Linearrgb,
1268	Linen,
1269	LiningNums,
1270	Link,
1271	LinkParameters,
1272	Links,
1273	Linktext,
1274	List,
1275	ListItem,
1276	ListStyle,
1277	ListStyleImage,
1278	ListStylePosition,
1279	ListStyleType,
1280	Listbox,
1281	Listing,
1282	LiteralPunctuation,
1283	Ln,
1284	Local,
1285	LocalLink,
1286	Log,
1287	Logbase,
1288	Longer,
1289	Loose,
1290	Loud,
1291	Low,
1292	LowValue,
1293	LowerAlpha,
1294	LowerArmenian,
1295	LowerGreek,
1296	LowerRoman,
1297	Lowercase,
1298	Lowlimit,
1299	Lt,
1300	Ltr,
1301	Luminance,
1302	Luminosity,
1303	Maction,
1304	Magenta,
1305	Main,
1306	Malayalam,
1307	Male,
1308	Maligngroup,
1309	Malignmark,
1310	Mandatory,
1311	Manipulation,
1312	Manual,
1313	Map,
1314	Margin,
1315	MarginBlock,
1316	MarginBlockEnd,
1317	MarginBlockStart,
1318	MarginBottom,
1319	MarginBox,
1320	MarginBreak,
1321	MarginInline,
1322	MarginInlineEnd,
1323	MarginInlineStart,
1324	MarginLeft,
1325	MarginRight,
1326	MarginTop,
1327	MarginTrim,
1328	Mark,
1329	Marker,
1330	MarkerEnd,
1331	MarkerMid,
1332	MarkerSide,
1333	MarkerStart,
1334	Markers,
1335	Marks,
1336	Marktext,
1337	Maroon,
1338	Marquee,
1339	Mask,
1340	MaskBorder,
1341	MaskBorderMode,
1342	MaskBorderOutset,
1343	MaskBorderRepeat,
1344	MaskBorderSlice,
1345	MaskBorderSource,
1346	MaskBorderWidth,
1347	MaskClip,
1348	MaskComposite,
1349	MaskImage,
1350	MaskMode,
1351	MaskOrigin,
1352	MaskPosition,
1353	MaskRepeat,
1354	MaskSize,
1355	MaskType,
1356	MatchParent,
1357	MatchSelf,
1358	MatchSource,
1359	Math,
1360	MathAuto,
1361	Mathematical,
1362	Matrix,
1363	Matrix3d,
1364	Matrixrow,
1365	Max,
1366	MaxAspectRatio,
1367	MaxBlockSize,
1368	MaxColor,
1369	MaxColorIndex,
1370	MaxContent,
1371	MaxDeviceAspectRatio,
1372	MaxDeviceHeight,
1373	MaxDeviceWidth,
1374	MaxHeight,
1375	MaxHorizontalViewportSegments,
1376	MaxInlineSize,
1377	MaxLines,
1378	MaxMonochrome,
1379	MaxResolution,
1380	MaxSize,
1381	MaxVerticalViewportSegments,
1382	MaxWidth,
1383	Maximum,
1384	Mean,
1385	Media,
1386	MediaDocument,
1387	Median,
1388	Medium,
1389	Mediumaquamarine,
1390	Mediumblue,
1391	Mediumorchid,
1392	Mediumpurple,
1393	Mediumseagreen,
1394	Mediumslateblue,
1395	Mediumspringgreen,
1396	Mediumturquoise,
1397	Mediumvioletred,
1398	Menclose,
1399	Menu,
1400	Menuitem,
1401	Menulist,
1402	MenulistButton,
1403	Merge,
1404	Merror,
1405	MessageBox,
1406	Meta,
1407	Metadata,
1408	Meter,
1409	Mfenced,
1410	Mfrac,
1411	Mfraction,
1412	Mglyph,
1413	Mi,
1414	Middle,
1415	Midnightblue,
1416	Min,
1417	MinAspectRatio,
1418	MinBlockSize,
1419	MinColor,
1420	MinColorIndex,
1421	MinContent,
1422	MinDeviceAspectRatio,
1423	MinDeviceHeight,
1424	MinDeviceWidth,
1425	MinHeight,
1426	MinHorizontalViewportSegments,
1427	MinInlineSize,
1428	MinIntrinsicSizing,
1429	MinMonochrome,
1430	MinResolution,
1431	MinSize,
1432	MinVerticalViewportSegments,
1433	MinWidth,
1434	MinimalUi,
1435	Minimum,
1436	Minmax,
1437	Mintcream,
1438	Minus,
1439	MissingGlyph,
1440	Mistyrose,
1441	Miter,
1442	MixBlendMode,
1443	Mixed,
1444	Mlabeledtr,
1445	Mlongdiv,
1446	Mmultiscripts,
1447	Mn,
1448	Mo,
1449	Moccasin,
1450	Mod,
1451	Modal,
1452	Mode,
1453	Moderate,
1454	Modifications,
1455	Moment,
1456	Momentabout,
1457	Mongolian,
1458	Monochrome,
1459	Monospace,
1460	More,
1461	MostBlockSize,
1462	MostHeight,
1463	MostInlineSize,
1464	MostWidth,
1465	Move,
1466	Mover,
1467	Mpadded,
1468	Mpath,
1469	Mphantom,
1470	Mprescripts,
1471	Mroot,
1472	Mrow,
1473	Mscarries,
1474	Mscarry,
1475	Msgroup,
1476	Msline,
1477	Mspace,
1478	Msqrt,
1479	Msrow,
1480	Mstack,
1481	Mstyle,
1482	Msub,
1483	Msubsup,
1484	Msup,
1485	Mtable,
1486	Mtd,
1487	Mtext,
1488	Mtr,
1489	Multicol,
1490	Multiply,
1491	Munder,
1492	Munderover,
1493	Muted,
1494	Myanmar,
1495	NResize,
1496	Namespace,
1497	#[atom("NaN")]
1498	NaN,
1499	Narrow,
1500	Nastaliq,
1501	Nav,
1502	NavControls,
1503	NavDown,
1504	NavLeft,
1505	NavRight,
1506	NavSource,
1507	NavUp,
1508	Navajowhite,
1509	Navigation,
1510	Navy,
1511	NeResize,
1512	Near,
1513	Nearest,
1514	NearestNeighbor,
1515	Negative,
1516	Neq,
1517	NeswResize,
1518	Neutral,
1519	Never,
1520	Nextid,
1521	NoAutospace,
1522	NoButton,
1523	NoClip,
1524	NoCloseQuote,
1525	NoCommonLigatures,
1526	NoCompress,
1527	NoContextual,
1528	NoDiscretionaryLigatures,
1529	NoDrop,
1530	NoEllipsis,
1531	NoHistoricalLigatures,
1532	NoLimit,
1533	NoOpenQuote,
1534	NoOverflow,
1535	NoPreference,
1536	NoPunctuation,
1537	NoRepeat,
1538	NoSkip,
1539	Nobr,
1540	Noembed,
1541	Noframes,
1542	None,
1543	Nonzero,
1544	Normal,
1545	Noscript,
1546	Not,
1547	NotAllowed,
1548	Notch,
1549	Notin,
1550	Notprsubset,
1551	Notsubset,
1552	Nowrap,
1553	NsResize,
1554	NthChild,
1555	NthCol,
1556	NthLastChild,
1557	NthLastCol,
1558	NthLastOfType,
1559	NthOfType,
1560	Number,
1561	Numbers,
1562	Numeric,
1563	NumericOnly,
1564	NwResize,
1565	NwseResize,
1566	Object,
1567	ObjectFit,
1568	ObjectPosition,
1569	ObjectViewBox,
1570	Oblique,
1571	ObliqueOnly,
1572	Odd,
1573	Of,
1574	Off,
1575	Offset,
1576	OffsetAnchor,
1577	OffsetDistance,
1578	OffsetPath,
1579	OffsetPosition,
1580	OffsetRotate,
1581	Oklab,
1582	Oklch,
1583	Ol,
1584	Old,
1585	Oldlace,
1586	OldstyleNums,
1587	Olive,
1588	Olivedrab,
1589	On,
1590	Once,
1591	Only,
1592	OnlyChild,
1593	OnlyOfType,
1594	Opacity,
1595	Opaque,
1596	Open,
1597	OpenQuote,
1598	Opentype,
1599	Optgroup,
1600	OptimalValue,
1601	Optimizelegibility,
1602	Optimizespeed,
1603	Option,
1604	Optional,
1605	Or,
1606	Orange,
1607	Orangered,
1608	Orchid,
1609	Order,
1610	Ordinal,
1611	Orientation,
1612	Origin,
1613	Oriya,
1614	Ornaments,
1615	Orphans,
1616	Otherwise,
1617	OutOfRange,
1618	Outerproduct,
1619	Outline,
1620	OutlineColor,
1621	OutlineOffset,
1622	OutlineStyle,
1623	OutlineWidth,
1624	Output,
1625	Outset,
1626	Outside,
1627	OutsideShape,
1628	Over,
1629	Overflow,
1630	OverflowAnchor,
1631	OverflowBlock,
1632	OverflowClipMargin,
1633	OverflowClipMarginBlock,
1634	OverflowClipMarginBlockEnd,
1635	OverflowClipMarginBlockStart,
1636	OverflowClipMarginBottom,
1637	OverflowClipMarginInline,
1638	OverflowClipMarginInlineEnd,
1639	OverflowClipMarginInlineStart,
1640	OverflowClipMarginLeft,
1641	OverflowClipMarginRight,
1642	OverflowClipMarginTop,
1643	OverflowInline,
1644	OverflowWrap,
1645	OverflowX,
1646	OverflowY,
1647	OverlapJoin,
1648	Overlay,
1649	Overline,
1650	Override,
1651	OverrideColors,
1652	OverscrollBehavior,
1653	OverscrollBehaviorBlock,
1654	OverscrollBehaviorInline,
1655	OverscrollBehaviorX,
1656	OverscrollBehaviorY,
1657	OverscrollContainerType,
1658	P,
1659	P3,
1660	Pad,
1661	Padding,
1662	PaddingBlock,
1663	PaddingBlockEnd,
1664	PaddingBlockStart,
1665	PaddingBottom,
1666	PaddingBox,
1667	PaddingInline,
1668	PaddingInlineEnd,
1669	PaddingInlineStart,
1670	PaddingLeft,
1671	PaddingRight,
1672	PaddingTop,
1673	Page,
1674	PageOrientation,
1675	Paged,
1676	Paint,
1677	PaintOrder,
1678	Painted,
1679	Pair,
1680	Palegoldenrod,
1681	Palegreen,
1682	PaletteMix,
1683	Palettes,
1684	Paleturquoise,
1685	Palevioletred,
1686	PanDown,
1687	PanLeft,
1688	PanRight,
1689	PanUp,
1690	PanX,
1691	PanY,
1692	Papayawhip,
1693	Param,
1694	Parent,
1695	Part,
1696	Partialdiff,
1697	Past,
1698	Path,
1699	Pattern,
1700	Pause,
1701	PauseAfter,
1702	PauseBefore,
1703	Paused,
1704	Peachpuff,
1705	PerLine,
1706	PerLineAll,
1707	Percentage,
1708	Perceptual,
1709	Performance,
1710	Permission,
1711	Persian,
1712	Perspective,
1713	PerspectiveOrigin,
1714	Peru,
1715	PetiteCaps,
1716	Pi,
1717	Picker,
1718	PickerIcon,
1719	Picture,
1720	PictureInPicture,
1721	Piece,
1722	Piecewise,
1723	PinchZoom,
1724	Pink,
1725	Pixelated,
1726	PlaceContent,
1727	PlaceItems,
1728	PlaceSelf,
1729	Placeholder,
1730	PlaceholderShown,
1731	Plaintext,
1732	Play,
1733	PlayBackwards,
1734	PlayForwards,
1735	Playing,
1736	Plum,
1737	Plus,
1738	PlusLighter,
1739	Pointer,
1740	PointerEvents,
1741	PointerTimeline,
1742	PointerTimelineAxis,
1743	PointerTimelineName,
1744	Pointerdown,
1745	Pointerenter,
1746	Pointerleave,
1747	Pointerup,
1748	Polygon,
1749	Polyline,
1750	PopoverOpen,
1751	Portal,
1752	Portrait,
1753	Position,
1754	PositionAnchor,
1755	PositionArea,
1756	PositionTry,
1757	PositionTryFallbacks,
1758	PositionTryOrder,
1759	PositionVisibility,
1760	Pow,
1761	Powderblue,
1762	Power,
1763	Pre,
1764	PreLine,
1765	PreWrap,
1766	PrefersColorScheme,
1767	PrefersContrast,
1768	PrefersReducedData,
1769	PrefersReducedMotion,
1770	PrefersReducedTransparency,
1771	Prefix,
1772	Preserve,
1773	Preserve3d,
1774	PreserveBreaks,
1775	PreserveParentColor,
1776	PreserveSpaces,
1777	Pretty,
1778	Print,
1779	PrintColorAdjust,
1780	Product,
1781	Progress,
1782	ProgressBar,
1783	Progressive,
1784	Property,
1785	ProphotoRgb,
1786	ProportionalNums,
1787	ProportionalWidth,
1788	Proximity,
1789	Prsubset,
1790	Punctuation,
1791	Purple,
1792	Push,
1793	Quotes,
1794	Quotient,
1795	R,
1796	RadialGradient,
1797	Radialgradient,
1798	Radio,
1799	Raise,
1800	Range,
1801	RawString,
1802	Ray,
1803	Rb,
1804	ReadOnly,
1805	ReadWrite,
1806	ReadingFlow,
1807	ReadingOrder,
1808	Real,
1809	Rebeccapurple,
1810	Rec2020,
1811	Rect,
1812	Recto,
1813	Red,
1814	Reduce,
1815	Reduced,
1816	Regexp,
1817	Region,
1818	RegionFragment,
1819	Relative,
1820	RelativeColorimetric,
1821	Reln,
1822	RenderingIntent,
1823	Repeat,
1824	RepeatX,
1825	RepeatY,
1826	RepeatingConicGradient,
1827	RepeatingLinearGradient,
1828	RepeatingRadialGradient,
1829	Replace,
1830	Replay,
1831	Required,
1832	Reset,
1833	Resize,
1834	Resolution,
1835	Rest,
1836	RestAfter,
1837	RestBefore,
1838	Result,
1839	RevealIcon,
1840	Reverse,
1841	Reversed,
1842	Revert,
1843	RevertLayer,
1844	RevertRule,
1845	Rgb,
1846	Rgba,
1847	Ridge,
1848	Right,
1849	RightBottom,
1850	RightMiddle,
1851	RightToLeft,
1852	RightTop,
1853	Rightwards,
1854	Root,
1855	Rosybrown,
1856	Rotate,
1857	Rotate3d,
1858	RotateLeft,
1859	RotateRight,
1860	#[atom("rotateX")]
1861	Rotatex,
1862	#[atom("rotateY")]
1863	Rotatey,
1864	#[atom("rotateZ")]
1865	Rotatez,
1866	Round,
1867	Row,
1868	RowGap,
1869	RowOverColumn,
1870	RowResize,
1871	RowReverse,
1872	RowRule,
1873	RowRuleBreak,
1874	RowRuleColor,
1875	RowRuleEdgeInset,
1876	RowRuleEdgeInsetEnd,
1877	RowRuleEdgeInsetStart,
1878	RowRuleInset,
1879	RowRuleInsetCap,
1880	RowRuleInsetCapEnd,
1881	RowRuleInsetCapStart,
1882	RowRuleInsetEnd,
1883	RowRuleInsetJunction,
1884	RowRuleInsetJunctionEnd,
1885	RowRuleInsetJunctionStart,
1886	RowRuleInsetStart,
1887	RowRuleInteriorInset,
1888	RowRuleInteriorInsetEnd,
1889	RowRuleInteriorInsetStart,
1890	RowRuleOutset,
1891	RowRuleStyle,
1892	RowRuleVisibilityItems,
1893	RowRuleWidth,
1894	Royalblue,
1895	Rp,
1896	Rt,
1897	Rtc,
1898	Rtl,
1899	Ruby,
1900	RubyAlign,
1901	RubyBase,
1902	RubyBaseContainer,
1903	RubyMerge,
1904	RubyOverhang,
1905	RubyPosition,
1906	RubyText,
1907	RubyTextContainer,
1908	Rule,
1909	RuleBreak,
1910	RuleColor,
1911	RuleEdgeInset,
1912	RuleInset,
1913	RuleInsetCap,
1914	RuleInsetCapEnd,
1915	RuleInsetCapStart,
1916	RuleInsetEnd,
1917	RuleInsetJunction,
1918	RuleInsetJunctionEnd,
1919	RuleInsetJunctionStart,
1920	RuleInsetStart,
1921	RuleInteriorInset,
1922	RuleOutset,
1923	RuleOverlap,
1924	RuleStyle,
1925	RuleVisibilityItems,
1926	RuleWidth,
1927	RunIn,
1928	Running,
1929	SResize,
1930	Saddlebrown,
1931	Safe,
1932	Salmon,
1933	Samp,
1934	Sandybrown,
1935	SansSerif,
1936	Saturate,
1937	Saturation,
1938	Scalarproduct,
1939	Scale,
1940	Scale3d,
1941	ScaleDown,
1942	#[atom("scaleX")]
1943	Scalex,
1944	#[atom("scaleY")]
1945	Scaley,
1946	#[atom("scaleZ")]
1947	Scalez,
1948	Scan,
1949	Scoop,
1950	Scope,
1951	Screen,
1952	Script,
1953	Scripting,
1954	Scroll,
1955	ScrollAxisLock,
1956	ScrollBehavior,
1957	ScrollInitialTarget,
1958	ScrollMargin,
1959	ScrollMarginBlock,
1960	ScrollMarginBlockEnd,
1961	ScrollMarginBlockStart,
1962	ScrollMarginBottom,
1963	ScrollMarginInline,
1964	ScrollMarginInlineEnd,
1965	ScrollMarginInlineStart,
1966	ScrollMarginLeft,
1967	ScrollMarginRight,
1968	ScrollMarginTop,
1969	ScrollMarker,
1970	ScrollMarkerGroup,
1971	ScrollPadding,
1972	ScrollPaddingBlock,
1973	ScrollPaddingBlockEnd,
1974	ScrollPaddingBlockStart,
1975	ScrollPaddingBottom,
1976	ScrollPaddingInline,
1977	ScrollPaddingInlineEnd,
1978	ScrollPaddingInlineStart,
1979	ScrollPaddingLeft,
1980	ScrollPaddingRight,
1981	ScrollPaddingTop,
1982	ScrollPosition,
1983	ScrollSnapAlign,
1984	ScrollSnapStop,
1985	ScrollSnapType,
1986	ScrollState,
1987	ScrollTargetGroup,
1988	ScrollTimeline,
1989	ScrollTimelineAxis,
1990	ScrollTimelineName,
1991	Scrollable,
1992	Scrollbar,
1993	ScrollbarColor,
1994	ScrollbarGutter,
1995	ScrollbarWidth,
1996	Scrolled,
1997	Sdev,
1998	SeResize,
1999	Seagreen,
2000	Search,
2001	SearchText,
2002	Seashell,
2003	Section,
2004	Seeking,
2005	Select,
2006	Selectedcontent,
2007	Selecteditem,
2008	Selecteditemtext,
2009	Selection,
2010	Selector,
2011	SelfBlockEnd,
2012	SelfBlockStart,
2013	SelfEnd,
2014	SelfInlineEnd,
2015	SelfInlineStart,
2016	SelfStart,
2017	Semantics,
2018	SemiCondensed,
2019	SemiExpanded,
2020	Sep,
2021	Separate,
2022	Sepia,
2023	Serif,
2024	Sesame,
2025	Set,
2026	Setdiff,
2027	Shape,
2028	ShapeBox,
2029	ShapeImageThreshold,
2030	ShapeInside,
2031	ShapeMargin,
2032	ShapeOutside,
2033	ShapePadding,
2034	ShapeRendering,
2035	Share,
2036	Shorter,
2037	Show,
2038	Shrink,
2039	SiblingCount,
2040	SiblingIndex,
2041	Sides,
2042	Sideways,
2043	SidewaysLr,
2044	SidewaysRl,
2045	Sienna,
2046	Sign,
2047	Silent,
2048	Silver,
2049	Simplified,
2050	Sin,
2051	SingleButton,
2052	Size,
2053	SizeAdjust,
2054	Skew,
2055	Skewx,
2056	Skewy,
2057	SkipAll,
2058	SkipLineThrough,
2059	SkipOverline,
2060	SkipUnderline,
2061	Skyblue,
2062	SlashedZero,
2063	Slateblue,
2064	Slategray,
2065	Slategrey,
2066	Slice,
2067	SliderFill,
2068	SliderOrientation,
2069	SliderThumb,
2070	SliderTrack,
2071	Slot,
2072	Slotted,
2073	Slow,
2074	Small,
2075	SmallCaps,
2076	SmallCaption,
2077	Smaller,
2078	Smooth,
2079	Snap,
2080	SnapBlock,
2081	SnapInline,
2082	Snapped,
2083	SnappedBlock,
2084	SnappedInline,
2085	SnappedX,
2086	SnappedY,
2087	Snow,
2088	Soft,
2089	SoftLight,
2090	Solid,
2091	SomeProp,
2092	Source,
2093	SourceAtop,
2094	SourceIn,
2095	SourceOrder,
2096	SourceOut,
2097	SourceOver,
2098	Space,
2099	SpaceAll,
2100	SpaceAround,
2101	SpaceBetween,
2102	SpaceEvenly,
2103	SpaceFirst,
2104	Spacer,
2105	Spaces,
2106	Span,
2107	SpanAll,
2108	SpanBlockEnd,
2109	SpanBlockStart,
2110	SpanBottom,
2111	SpanEnd,
2112	SpanInlineEnd,
2113	SpanInlineStart,
2114	SpanLeft,
2115	SpanRight,
2116	SpanSelfBlockEnd,
2117	SpanSelfBlockStart,
2118	SpanSelfEnd,
2119	SpanSelfInlineEnd,
2120	SpanSelfInlineStart,
2121	SpanSelfStart,
2122	SpanStart,
2123	SpanTop,
2124	SpanXEnd,
2125	SpanXSelfEnd,
2126	SpanXSelfStart,
2127	SpanXStart,
2128	SpanYEnd,
2129	SpanYSelfEnd,
2130	SpanYSelfStart,
2131	SpanYStart,
2132	SpanningItem,
2133	SpatialNavigationAction,
2134	SpatialNavigationContain,
2135	SpatialNavigationFunction,
2136	Speak,
2137	SpeakAs,
2138	SpellOut,
2139	SpellingError,
2140	Spread,
2141	Springgreen,
2142	Sqrt,
2143	Square,
2144	Squircle,
2145	Src,
2146	Srgb,
2147	SrgbLinear,
2148	Stable,
2149	StackedFractions,
2150	Stalled,
2151	Standalone,
2152	Standard,
2153	Start,
2154	StartingStyle,
2155	State,
2156	Static,
2157	StatusBar,
2158	Steelblue,
2159	StepControl,
2160	StepDown,
2161	StepEnd,
2162	StepStart,
2163	StepUp,
2164	Steps,
2165	Sticky,
2166	Stop,
2167	Stopped,
2168	Stretch,
2169	Strict,
2170	Strike,
2171	String,
2172	StringSet,
2173	Stripes,
2174	Stroke,
2175	StrokeAlign,
2176	StrokeBox,
2177	StrokeBreak,
2178	StrokeColor,
2179	StrokeDashCorner,
2180	StrokeDashJustify,
2181	StrokeDasharray,
2182	StrokeDashoffset,
2183	StrokeImage,
2184	StrokeLinecap,
2185	StrokeLinejoin,
2186	StrokeMiterlimit,
2187	StrokeOpacity,
2188	StrokeOrigin,
2189	StrokePosition,
2190	StrokeRepeat,
2191	StrokeSize,
2192	StrokeWidth,
2193	Strong,
2194	Stuck,
2195	Style,
2196	Styleset,
2197	Stylistic,
2198	Sub,
2199	Subgrid,
2200	SubpixelAntialiased,
2201	Subset,
2202	Subtractive,
2203	Suffix,
2204	Sum,
2205	Summary,
2206	SubscriptPositionOverride,
2207	SubscriptSizeOverride,
2208	Sup,
2209	Super,
2210	Superellipse,
2211	SuperscriptPositionOverride,
2212	SuperscriptSizeOverride,
2213	Supports,
2214	Svg,
2215	SwResize,
2216	Swap,
2217	Swash,
2218	Switch,
2219	Symbol,
2220	Symbolic,
2221	Symbols,
2222	Syntax,
2223	System,
2224	SystemUi,
2225	TabSize,
2226	Table,
2227	TableCaption,
2228	TableCell,
2229	TableColumn,
2230	TableColumnGroup,
2231	TableFooterGroup,
2232	TableHeaderGroup,
2233	TableLayout,
2234	TableRow,
2235	TableRowGroup,
2236	Tabs,
2237	TabularNums,
2238	Tamil,
2239	Tan,
2240	Target,
2241	TargetAfter,
2242	TargetBefore,
2243	TargetCounter,
2244	TargetCounters,
2245	TargetCurrent,
2246	TargetText,
2247	TargetWithin,
2248	Tbody,
2249	Td,
2250	Teal,
2251	Telugu,
2252	Template,
2253	Tendsto,
2254	Text,
2255	TextAlign,
2256	TextAlignAll,
2257	TextAlignLast,
2258	TextAutospace,
2259	TextBottom,
2260	TextBox,
2261	TextBoxEdge,
2262	TextBoxTrim,
2263	TextCombineUpright,
2264	TextDecoration,
2265	TextDecorationColor,
2266	TextDecorationInset,
2267	TextDecorationLine,
2268	TextDecorationSkip,
2269	TextDecorationSkipBox,
2270	TextDecorationSkipInk,
2271	TextDecorationSkipSelf,
2272	TextDecorationSkipSpaces,
2273	TextDecorationStyle,
2274	TextDecorationThickness,
2275	TextEmphasis,
2276	TextEmphasisColor,
2277	TextEmphasisPosition,
2278	TextEmphasisSkip,
2279	TextEmphasisStyle,
2280	TextFit,
2281	TextGroupAlign,
2282	TextIndent,
2283	TextJustify,
2284	TextOrientation,
2285	TextOverflow,
2286	TextRendering,
2287	TextShadow,
2288	TextSizeAdjust,
2289	TextSpacing,
2290	TextSpacingTrim,
2291	TextTop,
2292	TextTransform,
2293	TextUnderlineOffset,
2294	TextUnderlinePosition,
2295	TextWrap,
2296	TextWrapMode,
2297	TextWrapStyle,
2298	Textarea,
2299	Textfield,
2300	Textpath,
2301	Tfoot,
2302	Th,
2303	Thai,
2304	Thead,
2305	Thick,
2306	Thin,
2307	Thistle,
2308	Tibetan,
2309	Time,
2310	TimelineScope,
2311	TimelineTrigger,
2312	TimelineTriggerActivationRange,
2313	TimelineTriggerActivationRangeEnd,
2314	TimelineTriggerActivationRangeStart,
2315	TimelineTriggerActiveRange,
2316	TimelineTriggerActiveRangeEnd,
2317	TimelineTriggerActiveRangeStart,
2318	TimelineTriggerName,
2319	TimelineTriggerRange,
2320	TimelineTriggerSource,
2321	Times,
2322	Title,
2323	TitlingCaps,
2324	Tech,
2325	To,
2326	ToZero,
2327	Tomato,
2328	Top,
2329	TopCenter,
2330	TopLeft,
2331	TopLeftCorner,
2332	TopRight,
2333	TopRightCorner,
2334	TopToBottom,
2335	Touch,
2336	TouchAction,
2337	Tr,
2338	Track,
2339	Traditional,
2340	Transform,
2341	TransformBox,
2342	TransformFunction,
2343	TransformList,
2344	TransformOrigin,
2345	TransformStyle,
2346	Transition,
2347	TransitionBehavior,
2348	TransitionDelay,
2349	TransitionDuration,
2350	TransitionProperty,
2351	TransitionTimingFunction,
2352	Translate,
2353	Translate3d,
2354	#[atom("translateX")]
2355	Translatex,
2356	#[atom("translateY")]
2357	Translatey,
2358	#[atom("translateZ")]
2359	Translatez,
2360	Transparent,
2361	Transpose,
2362	Triangle,
2363	TriggerScope,
2364	TrimAll,
2365	TrimBoth,
2366	TrimEnd,
2367	TrimStart,
2368	True,
2369	Truetype,
2370	Tspan,
2371	Tt,
2372	Turquoise,
2373	Type,
2374	Types,
2375	U,
2376	UiMonospace,
2377	UiRounded,
2378	UiSansSerif,
2379	UiSerif,
2380	Ul,
2381	UltraCondensed,
2382	UltraExpanded,
2383	Unchecked,
2384	Under,
2385	Underline,
2386	Underscore,
2387	Unicase,
2388	Unicode,
2389	UnicodeBidi,
2390	UnicodeRange,
2391	Union,
2392	Unsafe,
2393	Unset,
2394	Up,
2395	Update,
2396	Uplimit,
2397	UpperAlpha,
2398	UpperArmenian,
2399	UpperLatin,
2400	UpperRoman,
2401	Uppercase,
2402	Upright,
2403	Url,
2404	UrlPrefix,
2405	Use,
2406	UserInvalid,
2407	UserSelect,
2408	UserValid,
2409	Valid,
2410	Var,
2411	Variance,
2412	Variations,
2413	Vector,
2414	Vectorproduct,
2415	Verso,
2416	Vertical,
2417	VerticalAlign,
2418	VerticalLr,
2419	VerticalRl,
2420	VerticalText,
2421	VerticalViewportSegments,
2422	Video,
2423	VideoColorGamut,
2424	VideoDynamicRange,
2425	View,
2426	ViewBox,
2427	ViewTimeline,
2428	ViewTimelineAxis,
2429	ViewTimelineInset,
2430	ViewTimelineName,
2431	ViewTransition,
2432	ViewTransitionClass,
2433	ViewTransitionGroup,
2434	ViewTransitionImagePair,
2435	ViewTransitionName,
2436	ViewTransitionNew,
2437	ViewTransitionOld,
2438	ViewTransitionScope,
2439	Violet,
2440	Visibility,
2441	Visible,
2442	#[atom("visibleFill")]
2443	Visiblefill,
2444	#[atom("visiblePainted")]
2445	Visiblepainted,
2446	#[atom("visibleStroke")]
2447	Visiblestroke,
2448	Visited,
2449	Visitedtext,
2450	Vline,
2451	VoiceBalance,
2452	VoiceDuration,
2453	VoiceFamily,
2454	VoicePitch,
2455	VoiceRange,
2456	VoiceRate,
2457	VoiceStress,
2458	VoiceVolume,
2459	VolumeLocked,
2460	W,
2461	WResize,
2462	Wait,
2463	Wavy,
2464	Wbr,
2465	Weak,
2466	Weight,
2467	Wheat,
2468	Where,
2469	White,
2470	WhiteSpace,
2471	WhiteSpaceCollapse,
2472	WhiteSpaceTrim,
2473	Whitesmoke,
2474	Widows,
2475	Width,
2476	WillChange,
2477	WindowDrag,
2478	WindowInactive,
2479	WindowsVista,
2480	WindowsWin10,
2481	WindowsWin7,
2482	WindowsWin8,
2483	WindowsXp,
2484	With,
2485	Woff,
2486	Woff2,
2487	WordBreak,
2488	WordSpaceTransform,
2489	WordSpacing,
2490	WordWrap,
2491	Words,
2492	Wrap,
2493	WrapAfter,
2494	WrapBefore,
2495	WrapFlow,
2496	WrapInside,
2497	WrapReverse,
2498	WrapThrough,
2499	WritingMode,
2500	XEnd,
2501	XFast,
2502	XHigh,
2503	XLarge,
2504	XLoud,
2505	XLow,
2506	XSelfEnd,
2507	XSelfStart,
2508	XSlow,
2509	XSmall,
2510	XSoft,
2511	XStart,
2512	XStrong,
2513	XWeak,
2514	Xmp,
2515	Xo,
2516	Xor,
2517	XxLarge,
2518	XxSmall,
2519	Xywh,
2520	Xyz,
2521	XyzD50,
2522	XyzD65,
2523	Y,
2524	YEnd,
2525	YSelfEnd,
2526	YSelfStart,
2527	YStart,
2528	Yellow,
2529	Yellowgreen,
2530	Young,
2531	Z,
2532	ZIndex,
2533	ZeroIfExtrinsic,
2534	ZeroIfScroll,
2535	Zoom,
2536	ZoomIn,
2537	ZoomOut,
2538	#[atom("-infinity")]
2539	_NegInfinity,
2540
2541	// Bit 23: vendor flag (always 1)
2542	// Bits 21-22: vendor index (0-3) for direct array lookup
2543	// WebKit: 0b00000000_10000000_00000000_00000000 (index 0)
2544	// Moz:    0b00000000_10100000_00000000_00000000 (index 1)
2545	// Ms:     0b00000000_11000000_00000000_00000000 (index 2)
2546	// O:      0b00000000_11100000_00000000_00000000 (index 3)
2547	#[atom("-webkit-align-content")]
2548	_WebkitAlignContent = 0b00000000_10000000_00000000_00000000,
2549	#[atom("-webkit-align-items")]
2550	_WebkitAlignItems,
2551	#[atom("-webkit-align-self")]
2552	_WebkitAlignSelf,
2553	#[atom("-webkit-animating-full-screen-transition")]
2554	_WebkitAnimatingFullScreenTransition,
2555	#[atom("-webkit-animation")]
2556	_WebkitAnimation,
2557	#[atom("-webkit-animation-delay")]
2558	_WebkitAnimationDelay,
2559	#[atom("-webkit-animation-duration")]
2560	_WebkitAnimationDuration,
2561	#[atom("-webkit-animation-fill-mode")]
2562	_WebkitAnimationFillMode,
2563	#[atom("-webkit-animation-iteration-count")]
2564	_WebkitAnimationIterationCount,
2565	#[atom("-webkit-animation-name")]
2566	_WebkitAnimationName,
2567	#[atom("-webkit-animation-timing-function")]
2568	_WebkitAnimationTimingFunction,
2569	#[atom("-webkit-any")]
2570	_WebkitAny,
2571	#[atom("-webkit-any-link")]
2572	_WebkitAnyLink,
2573	#[atom("-webkit-appearance")]
2574	_WebkitAppearance,
2575	#[atom("-webkit-autofill")]
2576	_WebkitAutofill,
2577	#[atom("-webkit-autofill-and-obscured")]
2578	_WebkitAutofillAndObscured,
2579	#[atom("-webkit-autofill-strong-password")]
2580	_WebkitAutofillStrongPassword,
2581	#[atom("-webkit-autofill-strong-password-viewable")]
2582	_WebkitAutofillStrongPasswordViewable,
2583	#[atom("-webkit-backdrop")]
2584	_WebkitBackdrop,
2585	#[atom("-webkit-backdrop-filter")]
2586	_WebkitBackdropFilter,
2587	#[atom("-webkit-backface-visibility")]
2588	_WebkitBackfaceVisibility,
2589	#[atom("-webkit-background-clip")]
2590	_WebkitBackgroundClip,
2591	#[atom("-webkit-background-size")]
2592	_WebkitBackgroundSize,
2593	#[atom("-webkit-box")]
2594	_WebkitBox,
2595	#[atom("-webkit-box-align")]
2596	_WebkitBoxAlign,
2597	#[atom("-webkit-box-decoration-break")]
2598	_WebkitBoxDecorationBreak,
2599	#[atom("-webkit-box-direction")]
2600	_WebkitBoxDirection,
2601	#[atom("-webkit-box-flex")]
2602	_WebkitBoxFlex,
2603	#[atom("-webkit-box-ordinal-group")]
2604	_WebkitBoxOrdinalGroup,
2605	#[atom("-webkit-box-orient")]
2606	_WebkitBoxOrient,
2607	#[atom("-webkit-box-pack")]
2608	_WebkitBoxPack,
2609	#[atom("-webkit-box-reflect")]
2610	_WebkitBoxReflect,
2611	#[atom("-webkit-box-shadow")]
2612	_WebkitBoxShadow,
2613	#[atom("-webkit-box-sizing")]
2614	_WebkitBoxSizing,
2615	#[atom("-webkit-calendar-picker-indicator")]
2616	_WebkitCalendarPickerIndicator,
2617	#[atom("-webkit-caps-lock-indicator")]
2618	_WebkitCapsLockIndicator,
2619	#[atom("-webkit-clip-path")]
2620	_WebkitClipPath,
2621	#[atom("-webkit-color-swatch")]
2622	_WebkitColorSwatch,
2623	#[atom("-webkit-color-swatch-wrapper")]
2624	_WebkitColorSwatchWrapper,
2625	#[atom("-webkit-column-count")]
2626	_WebkitColumnCount,
2627	#[atom("-webkit-column-gap")]
2628	_WebkitColumnGap,
2629	#[atom("-webkit-contacts-auto-fill-button")]
2630	_WebkitContactsAutoFillButton,
2631	#[atom("-webkit-credentials-auto-fill-button")]
2632	_WebkitCredentialsAutoFillButton,
2633	#[atom("-webkit-credit-card-auto-fill-button")]
2634	_WebkitCreditCardAutoFillButton,
2635	#[atom("-webkit-date-and-time-value")]
2636	_WebkitDateAndTimeValue,
2637	#[atom("-webkit-datetime-edit")]
2638	_WebkitDatetimeEdit,
2639	#[atom("-webkit-datetime-edit-day-field")]
2640	_WebkitDatetimeEditDayField,
2641	#[atom("-webkit-datetime-edit-fields-wrapper")]
2642	_WebkitDatetimeEditFieldsWrapper,
2643	#[atom("-webkit-datetime-edit-hour-field")]
2644	_WebkitDatetimeEditHourField,
2645	#[atom("-webkit-datetime-edit-meridiem-field")]
2646	_WebkitDatetimeEditMeridiemField,
2647	#[atom("-webkit-datetime-edit-millisecond-field")]
2648	_WebkitDatetimeEditMillisecondField,
2649	#[atom("-webkit-datetime-edit-minute")]
2650	_WebkitDatetimeEditMinute,
2651	#[atom("-webkit-datetime-edit-minute-field")]
2652	_WebkitDatetimeEditMinuteField,
2653	#[atom("-webkit-datetime-edit-month-field")]
2654	_WebkitDatetimeEditMonthField,
2655	#[atom("-webkit-datetime-edit-second-field")]
2656	_WebkitDatetimeEditSecondField,
2657	#[atom("-webkit-datetime-edit-text")]
2658	_WebkitDatetimeEditText,
2659	#[atom("-webkit-datetime-edit-year-field")]
2660	_WebkitDatetimeEditYearField,
2661	#[atom("-webkit-details-marker")]
2662	_WebkitDetailsMarker,
2663	#[atom("-webkit-device-pixel-ratio")]
2664	_WebkitDevicePixelRatio,
2665	#[atom("-webkit-distributed")]
2666	_WebkitDistributed,
2667	#[atom("-webkit-drag")]
2668	_WebkitDrag,
2669	#[atom("-webkit-file-upload-button")]
2670	_WebkitFileUploadButton,
2671	#[atom("-webkit-filter")]
2672	_WebkitFilter,
2673	#[atom("-webkit-flex")]
2674	_WebkitFlex,
2675	#[atom("-webkit-flex-basis")]
2676	_WebkitFlexBasis,
2677	#[atom("-webkit-flex-direction")]
2678	_WebkitFlexDirection,
2679	#[atom("-webkit-flex-flow")]
2680	_WebkitFlexFlow,
2681	#[atom("-webkit-flex-grow")]
2682	_WebkitFlexGrow,
2683	#[atom("-webkit-flex-wrap")]
2684	_WebkitFlexWrap,
2685	#[atom("-webkit-font-smoothing")]
2686	_WebkitFontSmoothing,
2687	#[atom("-webkit-full-page-media")]
2688	_WebkitFullPageMedia,
2689	#[atom("-webkit-full-screen")]
2690	_WebkitFullScreen,
2691	#[atom("-webkit-full-screen-ancestor")]
2692	_WebkitFullScreenAncestor,
2693	#[atom("-webkit-full-screen-controls-hidden")]
2694	_WebkitFullScreenControlsHidden,
2695	#[atom("-webkit-full-screen-document")]
2696	_WebkitFullScreenDocument,
2697	#[atom("-webkit-generic-cue-root")]
2698	_WebkitGenericCueRoot,
2699	#[atom("-webkit-grab")]
2700	_WebkitGrab,
2701	#[atom("-webkit-grabbing")]
2702	_WebkitGrabbing,
2703	#[atom("-webkit-inline-box")]
2704	_WebkitInlineBox,
2705	#[atom("-webkit-inline-flex")]
2706	_WebkitInlineFlex,
2707	#[atom("-webkit-inner-spin-button")]
2708	_WebkitInnerSpinButton,
2709	#[atom("-webkit-input-placeholder")]
2710	_WebkitInputPlaceholder,
2711	#[atom("-webkit-justify-content")]
2712	_WebkitJustifyContent,
2713	#[atom("-webkit-keyframes")]
2714	_WebkitKeyframes,
2715	#[atom("-webkit-line-clamp")]
2716	_WebkitLineClamp,
2717	#[atom("-webkit-list-button")]
2718	_WebkitListButton,
2719	#[atom("-webkit-margin-end")]
2720	_WebkitMarginEnd,
2721	#[atom("-webkit-mask")]
2722	_WebkitMask,
2723	#[atom("-webkit-mask-box-image")]
2724	_WebkitMaskBoxImage,
2725	#[atom("-webkit-mask-position")]
2726	_WebkitMaskPosition,
2727	#[atom("-webkit-mask-size")]
2728	_WebkitMaskSize,
2729	#[atom("-webkit-match-parent")]
2730	_WebkitMatchParent,
2731	#[atom("-webkit-max-content")]
2732	_WebkitMaxContent,
2733	#[atom("-webkit-max-device-pixel-ratio")]
2734	_WebkitMaxDevicePixelRatio,
2735	#[atom("-webkit-media-controls")]
2736	_WebkitMediaControls,
2737	#[atom("-webkit-media-text-track-container")]
2738	_WebkitMediaTextTrackContainer,
2739	#[atom("-webkit-media-text-track-display")]
2740	_WebkitMediaTextTrackDisplay,
2741	#[atom("-webkit-media-text-track-display-backdrop")]
2742	_WebkitMediaTextTrackDisplayBackdrop,
2743	#[atom("-webkit-media-text-track-region")]
2744	_WebkitMediaTextTrackRegion,
2745	#[atom("-webkit-media-text-track-region-container")]
2746	_WebkitMediaTextTrackRegionContainer,
2747	#[atom("-webkit-meter-bar")]
2748	_WebkitMeterBar,
2749	#[atom("-webkit-meter-even-less-good-value")]
2750	_WebkitMeterEvenLessGoodValue,
2751	#[atom("-webkit-meter-inner-element")]
2752	_WebkitMeterInnerElement,
2753	#[atom("-webkit-meter-optimum-value")]
2754	_WebkitMeterOptimumValue,
2755	#[atom("-webkit-meter-suboptimum-value")]
2756	_WebkitMeterSuboptimumValue,
2757	#[atom("-webkit-min-content")]
2758	_WebkitMinContent,
2759	#[atom("-webkit-min-device-pixel-ratio")]
2760	_WebkitMinDevicePixelRatio,
2761	#[atom("-webkit-order")]
2762	_WebkitOrder,
2763	#[atom("-webkit-outer-spin-button")]
2764	_WebkitOuterSpinButton,
2765	#[atom("-webkit-overflow-scrolling")]
2766	_WebkitOverflowScrolling,
2767	#[atom("-webkit-password-auto-fill-button")]
2768	_WebkitPasswordAutoFillButton,
2769	#[atom("-webkit-perspective")]
2770	_WebkitPerspective,
2771	#[atom("-webkit-print-color-adjust")]
2772	_WebkitPrintColorAdjust,
2773	#[atom("-webkit-progress-bar")]
2774	_WebkitProgressBar,
2775	#[atom("-webkit-progress-inner-element")]
2776	_WebkitProgressInnerElement,
2777	#[atom("-webkit-progress-value")]
2778	_WebkitProgressValue,
2779	#[atom("-webkit-resizer")]
2780	_WebkitResizer,
2781	#[atom("-webkit-scrollbar")]
2782	_WebkitScrollbar,
2783	#[atom("-webkit-scrollbar-button")]
2784	_WebkitScrollbarButton,
2785	#[atom("-webkit-scrollbar-corner")]
2786	_WebkitScrollbarCorner,
2787	#[atom("-webkit-scrollbar-thumb")]
2788	_WebkitScrollbarThumb,
2789	#[atom("-webkit-scrollbar-track")]
2790	_WebkitScrollbarTrack,
2791	#[atom("-webkit-scrollbar-track-piece")]
2792	_WebkitScrollbarTrackPiece,
2793	#[atom("-webkit-search-cancel-button")]
2794	_WebkitSearchCancelButton,
2795	#[atom("-webkit-search-decoration")]
2796	_WebkitSearchDecoration,
2797	#[atom("-webkit-search-results-button")]
2798	_WebkitSearchResultsButton,
2799	#[atom("-webkit-search-results-decoration")]
2800	_WebkitSearchResultsDecoration,
2801	#[atom("-webkit-selection")]
2802	_WebkitSelection,
2803	#[atom("-webkit-slider-container")]
2804	_WebkitSliderContainer,
2805	#[atom("-webkit-slider-runnable-track")]
2806	_WebkitSliderRunnableTrack,
2807	#[atom("-webkit-slider-thumb")]
2808	_WebkitSliderThumb,
2809	#[atom("-webkit-sticky")]
2810	_WebkitSticky,
2811	#[atom("-webkit-strong-password-auto-fill-button")]
2812	_WebkitStrongPasswordAutoFillButton,
2813	#[atom("-webkit-tap-highlight-color")]
2814	_WebkitTapHighlightColor,
2815	#[atom("-webkit-text-decoration")]
2816	_WebkitTextDecoration,
2817	#[atom("-webkit-text-decoration-color")]
2818	_WebkitTextDecorationColor,
2819	#[atom("-webkit-text-decoration-skip-ink")]
2820	_WebkitTextDecorationSkipInk,
2821	#[atom("-webkit-text-fill-color")]
2822	_WebkitTextFillColor,
2823	#[atom("-webkit-text-size-adjust")]
2824	_WebkitTextSizeAdjust,
2825	#[atom("-webkit-text-stroke")]
2826	_WebkitTextStroke,
2827	#[atom("-webkit-text-stroke-color")]
2828	_WebkitTextStrokeColor,
2829	#[atom("-webkit-text-stroke-width")]
2830	_WebkitTextStrokeWidth,
2831	#[atom("-webkit-textfield-decoration-container")]
2832	_WebkitTextfieldDecorationContainer,
2833	#[atom("-webkit-touch-callout")]
2834	_WebkitTouchCallout,
2835	#[atom("-webkit-transform")]
2836	_WebkitTransform,
2837	#[atom("-webkit-transform-2d")]
2838	_WebkitTransform2d,
2839	#[atom("-webkit-transform-3d")]
2840	_WebkitTransform3d,
2841	#[atom("-webkit-transform-origin")]
2842	_WebkitTransformOrigin,
2843	#[atom("-webkit-transition")]
2844	_WebkitTransition,
2845	#[atom("-webkit-transition-delay")]
2846	_WebkitTransitionDelay,
2847	#[atom("-webkit-transition-duration")]
2848	_WebkitTransitionDuration,
2849	#[atom("-webkit-transition-property")]
2850	_WebkitTransitionProperty,
2851	#[atom("-webkit-transition-timing-function")]
2852	_WebkitTransitionTimingFunction,
2853	#[atom("-webkit-user-drag")]
2854	_WebkitUserDrag,
2855	#[atom("-webkit-user-select")]
2856	_WebkitUserSelect,
2857	#[atom("-webkit-validation-bubble")]
2858	_WebkitValidationBubble,
2859	#[atom("-webkit-validation-bubble-arrow")]
2860	_WebkitValidationBubbleArrow,
2861	#[atom("-webkit-validation-bubble-arrow-clipper")]
2862	_WebkitValidationBubbleArrowClipper,
2863	#[atom("-webkit-validation-bubble-body")]
2864	_WebkitValidationBubbleBody,
2865	#[atom("-webkit-validation-bubble-heading")]
2866	_WebkitValidationBubbleHeading,
2867	#[atom("-webkit-validation-bubble-icon")]
2868	_WebkitValidationBubbleIcon,
2869	#[atom("-webkit-validation-bubble-message")]
2870	_WebkitValidationBubbleMessage,
2871	#[atom("-webkit-validation-bubble-text-block")]
2872	_WebkitValidationBubbleTextBlock,
2873	#[atom("-webkit-video-playable-inline")]
2874	_WebkitVideoPlayableInline,
2875
2876	#[atom("-moz-anonymous-block")]
2877	_MozAnonymousBlock = 0b00000000_10100000_00000000_00000000,
2878	#[atom("-moz-anonymous-item")]
2879	_MozAnonymousItem,
2880	#[atom("-moz-anonymous-positioned-block")]
2881	_MozAnonymousPositionedBlock,
2882	#[atom("-moz-any")]
2883	_MozAny,
2884	#[atom("-moz-any-link")]
2885	_MozAnyLink,
2886	#[atom("-moz-appearance")]
2887	_MozAppearance,
2888	#[atom("-moz-autofill-preview")]
2889	_MozAutofillPreview,
2890	#[atom("-moz-block-inside-inline-wrapper")]
2891	_MozBlockInsideInlineWrapper,
2892	#[atom("-moz-block-ruby-content")]
2893	_MozBlockRubyContent,
2894	#[atom("-moz-box")]
2895	_MozBox,
2896	#[atom("-moz-box-sizing")]
2897	_MozBoxSizing,
2898	#[atom("-moz-broken")]
2899	_MozBroken,
2900	#[atom("-moz-button-content")]
2901	_MozButtonContent,
2902	#[atom("-moz-canvas")]
2903	_MozCanvas,
2904	#[atom("-moz-cell-content")]
2905	_MozCellContent,
2906	#[atom("-moz-color-swatch")]
2907	_MozColorSwatch,
2908	#[atom("-moz-column-content")]
2909	_MozColumnContent,
2910	#[atom("-moz-column-count")]
2911	_MozColumnCount,
2912	#[atom("-moz-column-gap")]
2913	_MozColumnGap,
2914	#[atom("-moz-column-set")]
2915	_MozColumnSet,
2916	#[atom("-moz-column-span-wrapper")]
2917	_MozColumnSpanWrapper,
2918	#[atom("-moz-device-orientation")]
2919	_MozDeviceOrientation,
2920	#[atom("-moz-device-pixel-ratio")]
2921	_MozDevicePixelRatio,
2922	#[atom("-moz-devtools-highlighted")]
2923	_MozDevtoolsHighlighted,
2924	#[atom("-moz-dir-attr-like-auto")]
2925	_MozDirAttrLikeAuto,
2926	#[atom("-moz-dir-attr-ltr")]
2927	_MozDirAttrLtr,
2928	#[atom("-moz-dir-attr-rtl")]
2929	_MozDirAttrRtl,
2930	#[atom("-moz-document")]
2931	_MozDocument,
2932	#[atom("-moz-drag-over")]
2933	_MozDragOver,
2934	#[atom("-moz-dropdown-list")]
2935	_MozDropdownList,
2936	#[atom("-moz-fieldset-content")]
2937	_MozFieldsetContent,
2938	#[atom("-moz-file-content")]
2939	_MozFileContent,
2940	#[atom("-moz-filter")]
2941	_MozFilter,
2942	#[atom("-moz-first-letter-continuation")]
2943	_MozFirstLetterContinuation,
2944	#[atom("-moz-first-node")]
2945	_MozFirstNode,
2946	#[atom("-moz-flex")]
2947	_MozFlex,
2948	#[atom("-moz-flexbox")]
2949	_MozFlexbox,
2950	#[atom("-moz-focus-inner")]
2951	_MozFocusInner,
2952	#[atom("-moz-focus-outer")]
2953	_MozFocusOuter,
2954	#[atom("-moz-focusring")]
2955	_MozFocusring,
2956	#[atom("-moz-frameset-blank")]
2957	_MozFramesetBlank,
2958	#[atom("-moz-full-screen")]
2959	_MozFullScreen,
2960	#[atom("-moz-full-screen-ancestor")]
2961	_MozFullScreenAncestor,
2962	#[atom("-moz-handler-blocked")]
2963	_MozHandlerBlocked,
2964	#[atom("-moz-handler-crashed")]
2965	_MozHandlerCrashed,
2966	#[atom("-moz-handler-disabled")]
2967	_MozHandlerDisabled,
2968	#[atom("-moz-has-dir-attr")]
2969	_MozHasDirAttr,
2970	#[atom("-moz-hframeset-border")]
2971	_MozHframesetBorder,
2972	#[atom("-moz-html-canvas-content")]
2973	_MozHtmlCanvasContent,
2974	#[atom("-moz-images-in-menus")]
2975	_MozImagesInMenus,
2976	#[atom("-moz-inline-box")]
2977	_MozInlineBox,
2978	#[atom("-moz-inline-stack")]
2979	_MozInlineStack,
2980	#[atom("-moz-inline-table")]
2981	_MozInlineTable,
2982	#[atom("-moz-inert")]
2983	_MozInert,
2984	#[atom("-moz-is-html")]
2985	_MozIsHtml,
2986	#[atom("-moz-last-node")]
2987	_MozLastNode,
2988	#[atom("-moz-line-frame")]
2989	_MozLineFrame,
2990	#[atom("-moz-list-bullet")]
2991	_MozListBullet,
2992	#[atom("-moz-list-number")]
2993	_MozListNumber,
2994	#[atom("-moz-loading")]
2995	_MozLoading,
2996	#[atom("-moz-locale-dir")]
2997	_MozLocaleDir,
2998	#[atom("-moz-lwtheme")]
2999	_MozLwtheme,
3000	#[atom("-moz-lwtheme-brighttext")]
3001	_MozLwthemeBrighttext,
3002	#[atom("-moz-lwtheme-darktext")]
3003	_MozLwthemeDarktext,
3004	#[atom("-moz-mac-grapite-theme")]
3005	_MozMacGraphiteTheme,
3006	#[atom("-moz-maemo-classic-theme")]
3007	_MozMaemoClassicTheme,
3008	#[atom("-moz-mathml-anonymous-block")]
3009	_MozMathmlAnonymousBlock,
3010	#[atom("-moz-math-increment-script-level")]
3011	_MozMathIncrementScriptLevel,
3012	#[atom("-moz-max-content")]
3013	_MozMaxContent,
3014	#[atom("-moz-max-device-pixel-ratio")]
3015	_MozMaxDevicePixelRatio,
3016	#[atom("-moz-meter-bar")]
3017	_MozMeterBar,
3018	#[atom("-moz-meter-optimum")]
3019	_MozMeterOptimum,
3020	#[atom("-moz-meter-sub-optimum")]
3021	_MozMeterSubOptimum,
3022	#[atom("-moz-meter-sub-sub-optimum")]
3023	_MozMeterSubSubOptimum,
3024	#[atom("-moz-min-content")]
3025	_MozMinContent,
3026	#[atom("-moz-min-device-pixel-ratio")]
3027	_MozMinDevicePixelRatio,
3028	#[atom("-moz-native-anonymous")]
3029	_MozNativeAnonymous,
3030	#[atom("-moz-number-spin-box")]
3031	_MozNumberSpinBox,
3032	#[atom("-moz-number-spin-down")]
3033	_MozNumberSpinDown,
3034	#[atom("-moz-number-spin-up")]
3035	_MozNumberSpinUp,
3036	#[atom("-moz-only-whitespace")]
3037	_MozOnlyWhitespace,
3038	#[atom("-moz-oof-placeholder")]
3039	_MozOofPlaceholder,
3040	#[atom("-moz-os-version")]
3041	_MozOsVersion,
3042	#[atom("-moz-osx-font-smoothing")]
3043	_MozOsxFontSmoothing,
3044	#[atom("-moz-page")]
3045	_MozPage,
3046	#[atom("-moz-page-break")]
3047	_MozPageBreak,
3048	#[atom("-moz-page-content")]
3049	_MozPageContent,
3050	#[atom("-moz-page-sequence")]
3051	_MozPageSequence,
3052	#[atom("-moz-pagebreak")]
3053	_MozPagebreak,
3054	#[atom("-moz-pagecontent")]
3055	_MozPagecontent,
3056	#[atom("-moz-placeholder")]
3057	_MozPlaceholder,
3058	#[atom("-moz-placeholder-shown")]
3059	_MozPlaceholderShown,
3060	#[atom("-moz-printed-sheet")]
3061	_MozPrintedSheet,
3062	#[atom("-moz-progress-bar")]
3063	_MozProgressBar,
3064	#[atom("-moz-range-progress")]
3065	_MozRangeProgress,
3066	#[atom("-moz-range-thumb")]
3067	_MozRangeThumb,
3068	#[atom("-moz-range-track")]
3069	_MozRangeTrack,
3070	#[atom("-moz-read-only")]
3071	_MozReadOnly,
3072	#[atom("-moz-read-write")]
3073	_MozReadWrite,
3074	#[atom("-moz-reveal")]
3075	_MozReveal,
3076	#[atom("-moz-revealed")]
3077	_MozRevealed,
3078	#[atom("-moz-ruby")]
3079	_MozRuby,
3080	#[atom("-moz-ruby-base")]
3081	_MozRubyBase,
3082	#[atom("-moz-ruby-base-container")]
3083	_MozRubyBaseContainer,
3084	#[atom("-moz-ruby-text")]
3085	_MozRubyText,
3086	#[atom("-moz-ruby-text-container")]
3087	_MozRubyTextContainer,
3088	#[atom("-moz-scrolled-canvas")]
3089	_MozScrolledCanvas,
3090	#[atom("-moz-scrolled-content")]
3091	_MozScrolledContent,
3092	#[atom("-moz-scrolled-page-sequence")]
3093	_MozScrolledPageSequence,
3094	#[atom("-moz-search-clear-button")]
3095	_MozSearchClearButton,
3096	#[atom("-moz-select-content")]
3097	_MozSelectContent,
3098	#[atom("-moz-select-list-box")]
3099	_MozSelectListBox,
3100	#[atom("-moz-selection")]
3101	_MozSelection,
3102	#[atom("-moz-snapshot-containing-block")]
3103	_MozSnapshotContainingBlock,
3104	#[atom("-moz-submit-invalid")]
3105	_MozSubmitInvalid,
3106	#[atom("-moz-styleeditor-transitioning")]
3107	_MozStyleeditorTransitioning,
3108	#[atom("-moz-suppressed")]
3109	_MozSuppressed,
3110	#[atom("-moz-suppress-for-print-selection")]
3111	_MozSuppressForPrintSelection,
3112	#[atom("-moz-svg-foreign-content")]
3113	_MozSvgForeignContent,
3114	#[atom("-moz-svg-marker-anon-child")]
3115	_MozSvgMarkerAnonChild,
3116	#[atom("-moz-svg-outer-svg-anon-child")]
3117	_MozSvgOuterSvgAnonChild,
3118	#[atom("-moz-svg-text")]
3119	_MozSvgText,
3120	#[atom("-moz-table")]
3121	_MozTable,
3122	#[atom("-moz-table-border-nonzero")]
3123	_MozTableBorderNonzero,
3124	#[atom("-moz-table-cell")]
3125	_MozTableCell,
3126	#[atom("-moz-table-column")]
3127	_MozTableColumn,
3128	#[atom("-moz-table-column-group")]
3129	_MozTableColumnGroup,
3130	#[atom("-moz-table-outer")]
3131	_MozTableOuter,
3132	#[atom("-moz-table-row")]
3133	_MozTableRow,
3134	#[atom("-moz-table-row-group")]
3135	_MozTableRowGroup,
3136	#[atom("-moz-table-wrapper")]
3137	_MozTableWrapper,
3138	#[atom("-moz-text-control-editing-root")]
3139	_MozTextControlEditingRoot,
3140	#[atom("-moz-text-control-preview")]
3141	_MozTextControlPreview,
3142	#[atom("-moz-text")]
3143	_MozText,
3144	#[atom("-moz-touch-enabled")]
3145	_MozTouchEnabled,
3146	#[atom("-moz-topmost-modal")]
3147	_MozTopmostModal,
3148	#[atom("-moz-transition")]
3149	_MozTransition,
3150	#[atom("-moz-tree-cell")]
3151	_MozTreeCell,
3152	#[atom("-moz-tree-cell-text")]
3153	_MozTreeCellText,
3154	#[atom("-moz-tree-checkbox")]
3155	_MozTreeCheckbox,
3156	#[atom("-moz-tree-column")]
3157	_MozTreeColumn,
3158	#[atom("-moz-tree-drop-feedback")]
3159	_MozTreeDropFeedback,
3160	#[atom("-moz-tree-image")]
3161	_MozTreeImage,
3162	#[atom("-moz-tree-indentation")]
3163	_MozTreeIndentation,
3164	#[atom("-moz-tree-line")]
3165	_MozTreeLine,
3166	#[atom("-moz-tree-row")]
3167	_MozTreeRow,
3168	#[atom("-moz-tree-separator")]
3169	_MozTreeSeparator,
3170	#[atom("-moz-tree-twisty")]
3171	_MozTreeTwisty,
3172	#[atom("-moz-ui-invalid")]
3173	_MozUiInvalid,
3174	#[atom("-moz-ui-valid")]
3175	_MozUiValid,
3176	#[atom("-moz-user-disabled")]
3177	_MozUserDisabled,
3178	#[atom("-moz-user-select")]
3179	_MozUserSelect,
3180	#[atom("-moz-vframeset-border")]
3181	_MozVframesetBorder,
3182	#[atom("-moz-viewport")]
3183	_MozViewport,
3184	#[atom("-moz-viewport-scroll")]
3185	_MozViewportScroll,
3186	#[atom("-moz-value-empty")]
3187	_MozValueEmpty,
3188	#[atom("-moz-window-inactive")]
3189	_MozWindowInactive,
3190
3191	#[atom("-ms-autohiding-scrollbar")]
3192	_MsAutohidingScrollbar = 0b00000000_11000000_00000000_00000000,
3193	#[atom("-ms-backdrop")]
3194	_MsBackdrop,
3195	#[atom("-ms-box-sizing")]
3196	_MsBoxSizing,
3197	#[atom("-ms-browse")]
3198	_MsBrowse,
3199	#[atom("-ms-check")]
3200	_MsCheck,
3201	#[atom("-ms-clear")]
3202	_MsClear,
3203	#[atom("-ms-column-count")]
3204	_MsColumnCount,
3205	#[atom("-ms-device-pixel-ratio")]
3206	_MsDevicePixelRatio,
3207	#[atom("-ms-expand")]
3208	_MsExpand,
3209	#[atom("-ms-fill")]
3210	_MsFill,
3211	#[atom("-ms-fill-lower")]
3212	_MsFillLower,
3213	#[atom("-ms-fill-upper")]
3214	_MsFillUpper,
3215	#[atom("-ms-filter")]
3216	_MsFilter,
3217	#[atom("-ms-flex")]
3218	_MsFlex,
3219	#[atom("-ms-flex-align")]
3220	_MsFlexAlign,
3221	#[atom("-ms-flex-direction")]
3222	_MsFlexDirection,
3223	#[atom("-ms-flex-flow")]
3224	_MsFlexFlow,
3225	#[atom("-ms-flex-item-align")]
3226	_MsFlexItemAlign,
3227	#[atom("-ms-flex-line-pack")]
3228	_MsFlexLinePack,
3229	#[atom("-ms-flex-negative")]
3230	_MsFlexNegative,
3231	#[atom("-ms-flex-order")]
3232	_MsFlexOrder,
3233	#[atom("-ms-flex-pack")]
3234	_MsFlexPack,
3235	#[atom("-ms-flex-positive")]
3236	_MsFlexPositive,
3237	#[atom("-ms-flex-preferred-size")]
3238	_MsFlexPreferredSize,
3239	#[atom("-ms-flex-wrap")]
3240	_MsFlexWrap,
3241	#[atom("-ms-flexbox")]
3242	_MsFlexbox,
3243	#[atom("-ms-fullscreen")]
3244	_MsFullscreen,
3245	#[atom("-ms-grid")]
3246	_MsGrid,
3247	#[atom("-ms-high-contrast")]
3248	_MsHighContrast,
3249	#[atom("-ms-interpolation-mode")]
3250	_MsInterpolationMode,
3251	#[atom("-ms-ime-align")]
3252	_MsImeAlign,
3253	#[atom("-ms-inline-flex")]
3254	_MsInlineFlex,
3255	#[atom("-ms-inline-flexbox")]
3256	_MsInlineFlexbox,
3257	#[atom("-ms-input-placeholder")]
3258	_MsInputPlaceholder,
3259	#[atom("-ms-max-column-count")]
3260	_MsMaxColumnCount,
3261	#[atom("-ms-max-device-pixel-ratio")]
3262	_MsMaxDevicepixelRatio,
3263	#[atom("-ms-min-column-count")]
3264	_MsMinColumnCount,
3265	#[atom("-ms-min-device-pixel-ratio")]
3266	_MsMinDevicePixelRatio,
3267	#[atom("-ms-overflow-style")]
3268	_MsOverflowStyle,
3269	#[atom("-ms-placeholder")]
3270	_MsPlaceholder,
3271	#[atom("-ms-reveal")]
3272	_MsReveal,
3273	#[atom("-ms-selection")]
3274	_MsSelection,
3275	#[atom("-ms-text-size-adjust")]
3276	_MsTextSizeAdjust,
3277	#[atom("-ms-thumb")]
3278	_MsThumb,
3279	#[atom("-ms-ticks-after")]
3280	_MsTicksAfter,
3281	#[atom("-ms-ticks-before")]
3282	_MsTicksBefore,
3283	#[atom("-ms-tooltip")]
3284	_MsTooltip,
3285	#[atom("-ms-touch-action")]
3286	_MsTouchAction,
3287	#[atom("-ms-track")]
3288	_MsTrack,
3289	#[atom("-ms-transform")]
3290	_MsTransform,
3291	#[atom("-ms-transform-origin")]
3292	_MsTransformOrigin,
3293	#[atom("-ms-transition")]
3294	_MsTransition,
3295	#[atom("-ms-user-select")]
3296	_MsUserSelect,
3297	#[atom("-ms-value")]
3298	_MsValue,
3299	#[atom("-ms-view-state")]
3300	_MsViewState,
3301	#[atom("-ms-word-break")]
3302	_MsWordBreak,
3303
3304	#[atom("-o-box-sizing")]
3305	_OBoxSizing = 0b00000000_11100000_00000000_00000000,
3306	#[atom("-o-device-pixel-ratio")]
3307	_ODevicePixelRatio,
3308	#[atom("-o-filter")]
3309	_OFilter,
3310	#[atom("-o-flex")]
3311	_OFlex,
3312	#[atom("-o-inner-spin-button")]
3313	_OInnerSpinButton,
3314	#[atom("-o-max-device-pixel-ratio")]
3315	_OMaxDevicePixelRatio,
3316	#[atom("-o-min-device-pixel-ratio")]
3317	_OMinDevicePixelRatio,
3318	#[atom("-o-object-fit")]
3319	_OObjectFit,
3320	#[atom("-o-outer-spin-button")]
3321	_OOuterSpinButton,
3322	#[atom("-o-placeholder")]
3323	_OPlaceholder,
3324	#[atom("-o-prefocus")]
3325	_OPrefocus,
3326	#[atom("-o-scrollbar")]
3327	_OScrollbar,
3328	#[atom("-o-scrollbar-thumb")]
3329	_OScrollbarThumb,
3330	#[atom("-o-scrollbar-track")]
3331	_OScrollbarTrack,
3332	#[atom("-o-scrollbar-track-piece")]
3333	_OScrollbarTrackPiece,
3334	#[atom("-o-selection")]
3335	_OSelection,
3336}
3337
3338impl CssAtomSet {
3339	pub const ATOMS: CssAtomSet = CssAtomSet::_None;
3340}
3341
3342#[test]
3343fn test_css_atom_set() {
3344	assert_eq!(CssAtomSet::from_str("px"), CssAtomSet::Px);
3345	assert_eq!(CssAtomSet::from_str("PX"), CssAtomSet::Px);
3346	assert_eq!(CssAtomSet::from_str("pX"), CssAtomSet::Px);
3347	assert_eq!(CssAtomSet::from_str("em"), CssAtomSet::Em);
3348	assert_eq!(CssAtomSet::from_str("url"), CssAtomSet::Url);
3349	assert_eq!(CssAtomSet::from_str("uRl"), CssAtomSet::Url);
3350	assert_eq!(CssAtomSet::from_str("URL"), CssAtomSet::Url);
3351	assert_eq!(CssAtomSet::from_str("%"), CssAtomSet::Percent);
3352	assert_eq!(CssAtomSet::from_str("q"), CssAtomSet::Q);
3353	assert_eq!(CssAtomSet::from_str("Q"), CssAtomSet::Q);
3354	assert_eq!(CssAtomSet::from_str("s"), CssAtomSet::S);
3355	assert_eq!(CssAtomSet::from_str("S"), CssAtomSet::S);
3356	assert_eq!(CssAtomSet::from_str("x"), CssAtomSet::X);
3357	assert_eq!(CssAtomSet::from_str("X"), CssAtomSet::X);
3358	assert_eq!(CssAtomSet::from_str("notfound"), CssAtomSet::_None);
3359
3360	assert_eq!(CssAtomSet::from_str("dpcm"), CssAtomSet::Dpcm);
3361	assert_eq!(CssAtomSet::from_str("dppx"), CssAtomSet::Dppx);
3362	assert_eq!(CssAtomSet::from_str("rcap"), CssAtomSet::Rcap);
3363
3364	assert_eq!(CssAtomSet::from_str("cqmax"), CssAtomSet::Cqmax);
3365	assert_eq!(CssAtomSet::from_str("CQMAX"), CssAtomSet::Cqmax);
3366	assert_eq!(CssAtomSet::from_str("dvmin"), CssAtomSet::Dvmin);
3367	assert_eq!(CssAtomSet::from_str("turn"), CssAtomSet::Turn);
3368	assert_eq!(CssAtomSet::from_str("grad"), CssAtomSet::Grad);
3369
3370	assert_eq!(CssAtomSet::_None.len(), 0);
3371	assert_eq!(CssAtomSet::Percent.len(), 1);
3372	assert_eq!(CssAtomSet::Q.len(), 1);
3373	assert_eq!(CssAtomSet::S.len(), 1);
3374	assert_eq!(CssAtomSet::X.len(), 1);
3375	assert_eq!(CssAtomSet::Px.len(), 2);
3376	assert_eq!(CssAtomSet::Em.len(), 2);
3377	assert_eq!(CssAtomSet::Hz.len(), 2);
3378	assert_eq!(CssAtomSet::Url.len(), 3);
3379	assert_eq!(CssAtomSet::Cap.len(), 3);
3380	assert_eq!(CssAtomSet::Deg.len(), 3);
3381	assert_eq!(CssAtomSet::Turn.len(), 4);
3382	assert_eq!(CssAtomSet::Grad.len(), 4);
3383	assert_eq!(CssAtomSet::Cqmax.len(), 5);
3384	assert_eq!(CssAtomSet::Dvmin.len(), 5);
3385
3386	assert!(CssAtomSet::_None.is_empty());
3387	assert!(!CssAtomSet::Px.is_empty());
3388	assert!(!CssAtomSet::Url.is_empty());
3389
3390	let test_variants = [
3391		CssAtomSet::Px,
3392		CssAtomSet::Em,
3393		CssAtomSet::Rem,
3394		CssAtomSet::Percent,
3395		CssAtomSet::Url,
3396		CssAtomSet::Turn,
3397		CssAtomSet::Grad,
3398		CssAtomSet::Cqmax,
3399		CssAtomSet::Q,
3400		CssAtomSet::S,
3401		CssAtomSet::X,
3402	];
3403
3404	for variant in test_variants {
3405		let bits = variant.as_bits();
3406		let restored = CssAtomSet::from_bits(bits);
3407		assert_eq!(variant, restored, "Round-trip failed for {variant:?} with bits {bits}");
3408	}
3409
3410	assert_eq!(CssAtomSet::from_bits(0), CssAtomSet::_None);
3411	assert_eq!(CssAtomSet::from_bits(9999), CssAtomSet::_None);
3412
3413	assert_eq!(CssAtomSet::Percent.len(), 1);
3414
3415	assert_eq!(CssAtomSet::Px.to_str(), "px");
3416	assert_eq!(CssAtomSet::Em.to_str(), "em");
3417	assert_eq!(CssAtomSet::Percent.to_str(), "%");
3418	assert_eq!(CssAtomSet::Url.to_str(), "url");
3419	assert_eq!(CssAtomSet::_None.to_str(), "");
3420	assert_eq!(CssAtomSet::Cqmax.to_str(), "cqmax");
3421	assert_eq!(CssAtomSet::Dvmin.to_str(), "dvmin");
3422	assert_eq!(CssAtomSet::Dpcm.to_str(), "dpcm");
3423	assert_eq!(CssAtomSet::Dppx.to_str(), "dppx");
3424
3425	let test_cases = ["px", "em", "%", "url", "cqmax", "dvmin", "turn", "grad"];
3426	for case in test_cases {
3427		let atom = CssAtomSet::from_str(case);
3428		assert_eq!(atom.to_str(), case, "Round-trip failed for '{case}'");
3429	}
3430
3431	assert_eq!(CssAtomSet::from_str("nonexistent").to_str(), "");
3432}
3433
3434#[test]
3435fn test_all_vendor_atoms_have_correct_prefix() {
3436	const VENDOR_FLAG: u32 = 0b00000000_10000000_00000000_00000000;
3437	for i in 0..3000isize {
3438		let atom = CssAtomSet::from_bits(i as u32);
3439		let str = atom.to_str();
3440		let bits = i as i32 as u32;
3441		let has_vendor_flag = (bits & VENDOR_FLAG) != 0;
3442
3443		// Determine expected vendor prefix from string
3444		let expected_vendor = if str.starts_with("-webkit-") {
3445			Some("webkit")
3446		} else if str.starts_with("-moz-") {
3447			Some("moz")
3448		} else if str.starts_with("-ms-") {
3449			Some("ms")
3450		} else if str.starts_with("-o-") {
3451			Some("o")
3452		} else {
3453			None
3454		};
3455
3456		match expected_vendor {
3457			Some(vendor) => {
3458				assert!(
3459					has_vendor_flag,
3460					"Atom {atom:?} (i {i}) has {vendor} prefix in string '{str}' but vendor flag bit 23 is not set"
3461				);
3462				let index = (bits >> 21) & 0b11;
3463				let expected_index = match vendor {
3464					"webkit" => 0,
3465					"moz" => 1,
3466					"ms" => 2,
3467					"o" => 3,
3468					_ => unreachable!(),
3469				};
3470				assert_eq!(
3471					index, expected_index,
3472					"Atom {atom:?} has {vendor} prefix but wrong vendor index: expected {expected_index}, got {index}"
3473				);
3474			}
3475			None => {
3476				// Atom string has no vendor prefix - must NOT have vendor flag set
3477				assert!(
3478					!has_vendor_flag,
3479					"Atom {atom:?} (i {i}) has no vendor prefix in string '{str}' but vendor flag bit 23 is set (bits: {bits:024b})"
3480				);
3481			}
3482		}
3483	}
3484}
3485
3486#[cfg(feature = "dynamic-atoms")]
3487css_lexer::register_atom_set!(CssAtomSet);