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