Skip to main content

css_ast/
css_atom_set.rs

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