pub use css_lexer::AtomSet;
use derive_atom_set::AtomSet;
#[derive(AtomSet, Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum CssAtomSet {
#[default]
_None,
Cap,
Ch,
Cm,
Cqb,
Cqh,
Cqi,
Cqmax,
Cqmin,
Cqw,
Db,
Deg,
Dpcm,
Dpi,
Dppx,
Dvb,
Dvh,
Dvi,
Dvmax,
Dvmin,
Dvw,
Em,
Ex,
Fr,
Grad,
Hz,
Ic,
In,
Khz,
Lh,
Lvb,
Lvh,
Lvi,
Lvmax,
Lvmin,
Lvw,
Mm,
Ms,
Pc,
#[atom("%")]
Percentage,
Pt,
Px,
Q,
Rad,
Rcap,
Rch,
Rem,
Rex,
Ric,
Rlh,
S,
Svb,
Svh,
Svi,
Svmax,
Svmin,
Svw,
Turn,
Vb,
Vh,
Vi,
Vmax,
Vmin,
Vw,
X,
#[atom("n-")]
_NDash = 127,
A,
A98Rgb,
Abbr,
Abs,
Absolute,
AbsoluteColorimetric,
AccentColor,
Accentcolor,
Accentcolortext,
Accumulate,
Acronym,
Activate,
Active,
Activetext,
Add,
Additive,
AdditiveSymbols,
Address,
After,
Alias,
Aliceblue,
AlignContent,
AlignItems,
AlignSelf,
AlignmentBaseline,
All,
AllPetiteCaps,
AllScroll,
AllSmallCaps,
AllowDiscrete,
AllowEnd,
AllowKeywords,
Alpha,
Alphabetic,
Alternate,
AlternateReverse,
Always,
AnchorName,
AnchorScope,
AnchorValid,
AnchorVisible,
And,
Animate,
Animatemotion,
Animatetransform,
Animation,
AnimationComposition,
AnimationDelay,
AnimationDirection,
AnimationDuration,
AnimationFillMode,
AnimationIterationCount,
AnimationName,
AnimationPlayState,
AnimationRange,
AnimationRangeCenter,
AnimationRangeEnd,
AnimationRangeStart,
AnimationTimeline,
AnimationTimingFunction,
AnimationTrigger,
AnimationTriggerBehavior,
AnimationTriggerExitRange,
AnimationTriggerExitRangeEnd,
AnimationTriggerExitRangeStart,
AnimationTriggerRange,
AnimationTriggerRangeEnd,
AnimationTriggerRangeStart,
AnimationTriggerTimeline,
Annotation,
AnnotationXml,
Antialiased,
Antiquewhite,
AnyHover,
AnyLink,
AnyPointer,
Anywhere,
Appearance,
Applet,
Apply,
Approx,
Aqua,
Aquamarine,
ArabicIndic,
Arcs,
Area,
Arg,
Armenian,
Around,
Article,
AscentOverride,
Aside,
Asin,
AspectRatio,
Atan,
Atan2,
Attr,
Audio,
Auto,
AutoPhrase,
Autofill,
Avoid,
AvoidColumn,
AvoidFlex,
AvoidLine,
AvoidOrphans,
AvoidPage,
AvoidRegion,
Azure,
B,
Back,
Backdrop,
BackdropFilter,
BackfaceVisibility,
Background,
BackgroundAttachment,
BackgroundBlendMode,
BackgroundClip,
BackgroundColor,
BackgroundImage,
BackgroundOrigin,
BackgroundPosition,
BackgroundPositionBlock,
BackgroundPositionInline,
BackgroundPositionX,
BackgroundPositionY,
BackgroundRepeat,
BackgroundRepeatBlock,
BackgroundRepeatInline,
BackgroundRepeatX,
BackgroundRepeatY,
BackgroundSize,
Backwards,
Balance,
BalanceAll,
Bar,
Base,
BasePalette,
BaseSelect,
Basefont,
Baseline,
BaselineShift,
BaselineSource,
Bdi,
Bdo,
Before,
Beige,
Bengali,
Between,
Bevel,
Bgsound,
BidiOverride,
Big,
Bind,
Bisque,
Black,
Blanchedalmond,
Blank,
Bleed,
Bicubic,
Blink,
Block,
BlockAxis,
BlockEllipsis,
BlockEnd,
BlockSize,
BlockStart,
BlockStep,
BlockStepAlign,
BlockStepInsert,
BlockStepRound,
BlockStepSize,
Blockquote,
Blue,
Blueviolet,
Blur,
Body,
Bold,
Bolder,
BookmarkLabel,
BookmarkLevel,
BookmarkState,
Border,
BorderArea,
BorderBlock,
BorderBlockClip,
BorderBlockColor,
BorderBlockEnd,
BorderBlockEndClip,
BorderBlockEndColor,
BorderBlockEndRadius,
BorderBlockEndStyle,
BorderBlockEndWidth,
BorderBlockStart,
BorderBlockStartClip,
BorderBlockStartColor,
BorderBlockStartRadius,
BorderBlockStartStyle,
BorderBlockStartWidth,
BorderBlockStyle,
BorderBlockWidth,
BorderBottom,
BorderBottomClip,
BorderBottomColor,
BorderBottomLeftRadius,
BorderBottomRadius,
BorderBottomRightRadius,
BorderBottomStyle,
BorderBottomWidth,
BorderBoundary,
BorderBox,
BorderClip,
BorderClipBottom,
BorderClipLeft,
BorderClipRight,
BorderClipTop,
BorderCollapse,
BorderColor,
BorderEndEndRadius,
BorderEndStartRadius,
BorderImage,
BorderImageOutset,
BorderImageRepeat,
BorderImageSlice,
BorderImageSource,
BorderImageWidth,
BorderInline,
BorderInlineClip,
BorderInlineColor,
BorderInlineEnd,
BorderInlineEndClip,
BorderInlineEndColor,
BorderInlineEndRadius,
BorderInlineEndStyle,
BorderInlineEndWidth,
BorderInlineStart,
BorderInlineStartClip,
BorderInlineStartColor,
BorderInlineStartRadius,
BorderInlineStartStyle,
BorderInlineStartWidth,
BorderInlineStyle,
BorderInlineWidth,
BorderLeft,
BorderLeftClip,
BorderLeftColor,
BorderLeftRadius,
BorderLeftStyle,
BorderLeftWidth,
BorderLimit,
BorderRadius,
BorderRight,
BorderRightClip,
BorderRightColor,
BorderRightRadius,
BorderRightStyle,
BorderRightWidth,
BorderShape,
BorderSpacing,
BorderStartEndRadius,
BorderStartStartRadius,
BorderStyle,
BorderTop,
BorderTopClip,
BorderTopColor,
BorderTopLeftRadius,
BorderTopRadius,
BorderTopRightRadius,
BorderTopStyle,
BorderTopWidth,
BorderWidth,
Both,
BothBlock,
BothEdges,
BothInline,
Bottom,
BottomCenter,
BottomLeft,
BottomLeftCorner,
BottomRight,
BottomRightCorner,
BottomToTop,
BoundingBox,
Box,
BoxDecorationBreak,
BoxShadow,
BoxShadowBlur,
BoxShadowColor,
BoxShadowOffset,
BoxShadowPosition,
BoxShadowSpread,
BoxSizing,
BoxSnap,
Br,
Break,
BreakAfter,
BreakAll,
BreakBefore,
BreakInside,
BreakSpaces,
BreakWord,
Brightness,
Brown,
Browser,
Buffering,
Bullets,
Burlywood,
Butt,
Button,
Buttonborder,
Buttonface,
Buttontext,
Bvar,
C,
Cadetblue,
Calc,
CalcSize,
Cambodian,
Canvas,
Canvastext,
CapHeight,
Capitalize,
Caption,
CaptionSide,
Card,
Caret,
CaretAnimation,
CaretColor,
CaretShape,
Cartesianproduct,
Cbytes,
Ceiling,
Cell,
Center,
Central,
Cerror,
ChWidth,
Chain,
Charset,
Chartreuse,
Checkbox,
Checked,
Checkmark,
Child,
Chocolate,
Ci,
Circle,
Cite,
CjkDecimal,
CjkEarthlyBranch,
CjkHeavenlyStem,
Clamp,
Clear,
Click,
Clip,
ClipPath,
ClipRule,
Clippath,
Clone,
CloseQuote,
Closed,
ClosestCorner,
ClosestSide,
Cn,
Coarse,
Code,
Codomain,
Col,
ColResize,
Colgroup,
Collapse,
Color,
ColorAdjust,
ColorBurn,
ColorDodge,
ColorGamut,
ColorIndex,
ColorInterpolation,
ColorInterpolationFilters,
ColorMix,
ColorProfile,
ColorScheme,
Column,
ColumnCount,
ColumnFill,
ColumnGap,
ColumnHeight,
ColumnOverRow,
ColumnReverse,
ColumnRule,
ColumnRuleBreak,
ColumnRuleColor,
ColumnRuleEdgeInset,
ColumnRuleEdgeInsetEnd,
ColumnRuleEdgeInsetStart,
ColumnRuleInset,
ColumnRuleInsetCap,
ColumnRuleInsetCapEnd,
ColumnRuleInsetCapStart,
ColumnRuleInsetEnd,
ColumnRuleInsetJunction,
ColumnRuleInsetJunctionEnd,
ColumnRuleInsetJunctionStart,
ColumnRuleInsetStart,
ColumnRuleInteriorInset,
ColumnRuleInteriorInsetEnd,
ColumnRuleInteriorInsetStart,
ColumnRuleOutset,
ColumnRuleStyle,
ColumnRuleVisibilityItems,
ColumnRuleWidth,
ColumnSpan,
ColumnWidth,
ColumnWrap,
Columns,
CommonLigatures,
Compact,
Components,
Compose,
Compress,
Condensed,
Condition,
Conjugate,
Consistent,
Constrained,
Contain,
ContainIntrinsicBlockSize,
ContainIntrinsicHeight,
ContainIntrinsicInlineSize,
ContainIntrinsicSize,
ContainIntrinsicWidth,
Container,
ContainerName,
ContainerType,
Content,
ContentBlockSize,
ContentBox,
ContentHeight,
ContentInlineSize,
ContentVisibility,
ContentWidth,
Contents,
ContextMenu,
Contextual,
Continue,
Contrast,
Copy,
CopyInto,
Coral,
Corner,
CornerBlockEnd,
CornerBlockEndShape,
CornerBlockStart,
CornerBlockStartShape,
CornerBottom,
CornerBottomLeft,
CornerBottomLeftShape,
CornerBottomRight,
CornerBottomRightShape,
CornerBottomShape,
CornerEndEnd,
CornerEndEndShape,
CornerEndStart,
CornerEndStartShape,
CornerInlineEnd,
CornerInlineEndShape,
CornerInlineStart,
CornerInlineStartShape,
CornerLeft,
CornerLeftShape,
CornerRight,
CornerRightShape,
CornerShape,
CornerStartEnd,
CornerStartEndShape,
CornerStartStart,
CornerStartStartShape,
CornerTop,
CornerTopLeft,
CornerTopLeftShape,
CornerTopRight,
CornerTopRightShape,
CornerTopShape,
Corners,
Cornflowerblue,
Cornsilk,
Cos,
Counter,
CounterIncrement,
CounterReset,
CounterSet,
CounterStyle,
Counters,
Cover,
Create,
Crimson,
CrispEdges,
Crispedges,
Crop,
Crosshair,
Cs,
Csymbol,
CubicBezier,
Cue,
CueAfter,
CueBefore,
Curl,
Current,
Currentcolor,
Cursive,
Cursor,
Custom,
Cyan,
Cyclic,
D50,
D65,
Dark,
Darkblue,
Darkcyan,
Darken,
Darkgoldenrod,
Darkgray,
Darkgreen,
Darkgrey,
Darkkhaki,
Darkmagenta,
Darkolivegreen,
Darkorange,
Darkorchid,
Darkred,
Darksalmon,
Darkseagreen,
Darkslateblue,
Darkslategray,
Darkslategrey,
Darkturquoise,
Darkviolet,
Dashed,
Dashes,
Data,
Datalist,
Dblclick,
Dd,
Decimal,
DecimalLeadingZero,
Declare,
Decreasing,
Deeppink,
Deepskyblue,
Default,
Defined,
Defs,
Degree,
Del,
Dense,
Desc,
DescentOverride,
DestinationAtop,
DestinationIn,
DestinationOut,
DestinationOver,
Details,
DetailsContent,
Determinant,
Devanagari,
DeviceAspectRatio,
DeviceHeight,
DeviceWidth,
Dfn,
DiagonalFractions,
Dialog,
Diff,
Difference,
Digits,
Dimgray,
Dimgrey,
Dir,
Direction,
Disabled,
Disc,
Discard,
DiscardAfter,
DiscardBefore,
DiscardInner,
DisclousureClosed,
DisclousureOpen,
Discrete,
DiscretionaryLigatures,
Display,
DisplayMode,
DisplayP3,
Distribute,
Div,
Divergence,
Divide,
Dl,
Document,
Dodgerblue,
Domain,
Domainofapplication,
DominantBaseline,
Dot,
Dotted,
Double,
DoubleCircle,
Down,
Drop,
DropShadow,
Dt,
DynamicRange,
DynamicRangeLimit,
DynamicRangeLimitMix,
EResize,
EachLine,
Ease,
EaseIn,
EaseInOut,
EaseOut,
Economy,
Element,
Ellipse,
Ellipsis,
Embed,
Emoji,
Empty,
EmptyCells,
Emptyset,
Enabled,
End,
Entry,
EntryCrossing,
EnvironmentBlending,
Eq,
Equivalent,
Even,
Evenodd,
EventTrigger,
EventTriggerName,
EventTriggerSource,
EwResize,
ExHeight,
Exact,
Exclusion,
Exists,
Exit,
ExitCrossing,
Exp,
Expanded,
Extends,
ExtraCondensed,
ExtraExpanded,
Fade,
Factorial,
Factorof,
Fallback,
False,
Fangsong,
Fantasy,
FarthestCorner,
FarthestSide,
Fast,
Feblend,
Fecolormatrix,
Fecomponenttransfer,
Fecomposite,
Feconvolvematrix,
Fediffuselighting,
Fedisplacementmap,
Fedistantlight,
Fedropshadow,
Feflood,
Fefunca,
Fefuncb,
Fefuncg,
Fefuncr,
Fegaussianblur,
Feimage,
Female,
Femerge,
Femergenode,
Femorphology,
Fencedframe,
Feoffset,
Fepointlight,
Fespecularlighting,
Fespotlight,
Fetile,
Feturbulence,
Field,
FieldSizing,
Fieldset,
Fieldtext,
Figcaption,
Figure,
FileSelectorButton,
Fill,
FillBox,
FillBreak,
FillColor,
FillImage,
FillOpacity,
FillOrigin,
FillPosition,
FillRepeat,
FillRule,
FillSize,
Filled,
Filter,
FilterMarginBottom,
FilterMarginLeft,
FilterMarginRight,
FilterMarginTop,
Fine,
Firebrick,
First,
FirstChild,
FirstExcept,
FirstLetter,
FirstLine,
FirstOfType,
FitContent,
Fixed,
Flat,
Flex,
FlexBasis,
FlexDirection,
FlexEnd,
FlexFlow,
FlexGrow,
FlexLineCount,
FlexShrink,
FlexStart,
FlexVisual,
FlexWrap,
Flip,
FlipBlock,
FlipInline,
FlipStart,
FlipX,
FlipY,
Float,
FloatDefer,
FloatOffset,
FloatReference,
FloodColor,
FloodOpacity,
Floor,
Floralwhite,
Flow,
FlowFrom,
FlowInto,
FlowRoot,
FlowTolerance,
Fn,
Focus,
FocusVisible,
FocusWithin,
Font,
FontDisplay,
FontFace,
FontFaceFormat,
FontFaceName,
FontFaceRule,
FontFaceSrc,
FontFaceUri,
FontFamily,
FontFeatureSettings,
FontFeatureValues,
FontFormat,
FontKerning,
FontLanguageOverride,
FontNamedInstance,
FontOpticalSizing,
FontPalette,
FontPaletteValues,
FontSize,
FontSizeAdjust,
FontStyle,
FontSynthesis,
FontSynthesisPosition,
FontSynthesisSmallCaps,
FontSynthesisStyle,
FontSynthesisWeight,
FontTech,
FontVariant,
FontVariantAlternates,
FontVariantCaps,
FontVariantEastAsian,
FontVariantEmoji,
FontVariantLigatures,
FontVariantNumeric,
FontVariantPosition,
FontVariationSettings,
FontWeight,
FontWidth,
Footer,
FootnoteDisplay,
FootnotePolicy,
Forall,
ForceEnd,
ForceHidden,
ForcedColorAdjust,
ForcedColors,
Foreignobject,
Forestgreen,
Form,
Forwards,
Frame,
FrameSizing,
Frameset,
From,
FromFont,
FromImage,
Fuchsia,
FullSizeKana,
FullWidth,
Fullscreen,
FullscreenLandscape,
FullscreenPortait,
Future,
G,
Gainsboro,
Gap,
Gaps,
Gcd,
Generic,
Geometricprecision,
Georgian,
Geq,
Ghostwhite,
GlyphOrientationVertical,
Gold,
Goldenrod,
Grab,
Grabbing,
GrammarError,
Gray,
Grayscale,
Graytext,
Green,
Greenyellow,
Grey,
Grid,
GridArea,
GridAutoColumns,
GridAutoFlow,
GridAutoRows,
GridColumn,
GridColumnEnd,
GridColumnStart,
GridColumns,
GridOrder,
GridRow,
GridRowEnd,
GridRowStart,
GridRows,
GridTemplate,
GridTemplateAreas,
GridTemplateColumns,
GridTemplateRows,
Groove,
Grow,
Gt,
Gujarati,
Gurmukhi,
H,
H1,
H2,
H3,
H4,
H5,
H6,
Hanging,
HangingPunctuation,
HardLight,
Has,
HasSlotted,
Head,
Header,
Heading,
Hebrew,
Height,
Help,
Hgroup,
Hidden,
Hide,
High,
HighQuality,
Highlight,
Highlighttext,
Hiragana,
HiraganaIroha,
HistoricalForms,
HistoricalLigatures,
Honeydew,
Horizontal,
HorizontalTb,
HorizontalViewportSegments,
Host,
HostContext,
Hotpink,
Hover,
Hr,
Hsl,
Hsla,
Html,
Hue,
HueRotate,
Hwb,
HyphenateCharacter,
HyphenateLimitChars,
HyphenateLimitLast,
HyphenateLimitLines,
HyphenateLimitZone,
Hyphens,
Hypot,
I,
IcHeight,
IcWidth,
Ident,
Ideographic,
IdeographicSpace,
Iframe,
Image,
ImageAnimation,
ImageOrientation,
ImageRendering,
ImageResolution,
ImageSet,
Imaginary,
Img,
Implies,
Import,
InRange,
Increasing,
Indeterminate,
Indianred,
Indigo,
Inert,
Infinite,
Infinity,
Inherit,
Inherits,
Initial,
InitialLetter,
InitialLetterAlign,
InitialLetterWrap,
InitialOnly,
InitialValue,
Inline,
InlineAxis,
InlineBlock,
InlineEnd,
InlineFlex,
InlineGrid,
InlineSize,
InlineSizing,
InlineStart,
InlineTable,
Input,
InputSecurity,
Ins,
Inset,
InsetBlock,
InsetBlockEnd,
InsetBlockStart,
InsetInline,
InsetInlineEnd,
InsetInlineStart,
Inside,
Int,
InterCharacter,
InterWord,
Interactivity,
InterestDelay,
InterestDelayEnd,
InterestDelayStart,
Interlace,
InterpolateSize,
Intersect,
Intersection,
Interval,
Invalid,
Inverse,
Invert,
Inverted,
InvertedColors,
Is,
Isindex,
Isolate,
IsolateOverride,
Isolation,
Italic,
ItemCross,
ItemDirection,
ItemFlow,
ItemPack,
ItemTrack,
ItemWrap,
Ivory,
Jis04,
Jis78,
Jis83,
Jis90,
JumpBoth,
JumpEnd,
JumpNone,
JumpStart,
Justify,
JustifyAll,
JustifyContent,
JustifyItems,
JustifySelf,
Kai,
Kannada,
Katakana,
KatakanaIroha,
Kbd,
Keep,
KeepAll,
Keyframes,
Keygen,
Keypress,
Khaki,
Khmer,
KhmerMul,
L,
Lab,
Label,
Lambda,
Landscape,
Lang,
Lao,
Laplacian,
Large,
Larger,
Last,
LastBaseline,
LastChild,
LastOfType,
Lavender,
Lavenderblush,
Lawngreen,
Layer,
Layout,
Lch,
Lcm,
Leader,
Leading,
Left,
LeftBottom,
LeftMiddle,
LeftToRight,
LeftTop,
Leftwards,
Legacy,
Legend,
Lemonchiffon,
Leq,
Less,
LetterSpacing,
Li,
Light,
Lightblue,
Lightcoral,
Lightcyan,
LightDark,
Lighten,
Lighter,
Lightgoldenrodyellow,
Lightgray,
Lightgreen,
Lightgrey,
LightingColor,
Lightpink,
Lightsalmon,
Lightseagreen,
Lightskyblue,
Lightslategray,
Lightslategrey,
Lightsteelblue,
Lightyellow,
Lime,
Limegreen,
Limit,
Line,
LineBreak,
LineClamp,
LineFitEdge,
LineGapOverride,
LineGrid,
LineHeight,
LineHeightStep,
LinePadding,
LineSnap,
LineThrough,
Linear,
LinearGradient,
LinearRgb,
Lineargradient,
Linearrgb,
Linen,
LiningNums,
Link,
LinkParameters,
Links,
Linktext,
List,
ListItem,
ListStyle,
ListStyleImage,
ListStylePosition,
ListStyleType,
Listbox,
Listing,
LiteralPunctuation,
Ln,
Local,
LocalLink,
Log,
Logbase,
Longer,
Loose,
Loud,
LowerAlpha,
LowerArmenian,
LowerGreek,
LowerRoman,
Lowercase,
Lowlimit,
Lt,
Ltr,
Luminance,
Luminosity,
Maction,
Magenta,
Main,
Malayalam,
Male,
Maligngroup,
Malignmark,
Mandatory,
Manipulation,
Manual,
Map,
Margin,
MarginBlock,
MarginBlockEnd,
MarginBlockStart,
MarginBottom,
MarginBox,
MarginBreak,
MarginInline,
MarginInlineEnd,
MarginInlineStart,
MarginLeft,
MarginRight,
MarginTop,
MarginTrim,
Mark,
Marker,
MarkerEnd,
MarkerMid,
MarkerSide,
MarkerStart,
Markers,
Marks,
Marktext,
Maroon,
Marquee,
Mask,
MaskBorder,
MaskBorderMode,
MaskBorderOutset,
MaskBorderRepeat,
MaskBorderSlice,
MaskBorderSource,
MaskBorderWidth,
MaskClip,
MaskComposite,
MaskImage,
MaskMode,
MaskOrigin,
MaskPosition,
MaskRepeat,
MaskSize,
MaskType,
MatchParent,
MatchSelf,
MatchSource,
Math,
MathAuto,
Mathematical,
Matrix,
Matrix3d,
Matrixrow,
Max,
MaxAspectRatio,
MaxBlockSize,
MaxColor,
MaxColorIndex,
MaxContent,
MaxDeviceAspectRatio,
MaxDeviceHeight,
MaxDeviceWidth,
MaxHeight,
MaxHorizontalViewportSegments,
MaxInlineSize,
MaxLines,
MaxMonochrome,
MaxResolution,
MaxSize,
MaxVerticalViewportSegments,
MaxWidth,
Maximum,
Mean,
Media,
MediaDocument,
Median,
Medium,
Mediumaquamarine,
Mediumblue,
Mediumorchid,
Mediumpurple,
Mediumseagreen,
Mediumslateblue,
Mediumspringgreen,
Mediumturquoise,
Mediumvioletred,
Menclose,
Menu,
Menuitem,
Menulist,
MenulistButton,
Merge,
Merror,
Meta,
Metadata,
Meter,
Mfenced,
Mfrac,
Mfraction,
Mglyph,
Mi,
Middle,
Midnightblue,
Min,
MinAspectRatio,
MinBlockSize,
MinColor,
MinColorIndex,
MinContent,
MinDeviceAspectRatio,
MinDeviceHeight,
MinDeviceWidth,
MinHeight,
MinHorizontalViewportSegments,
MinInlineSize,
MinIntrinsicSizing,
MinMonochrome,
MinResolution,
MinSize,
MinVerticalViewportSegments,
MinWidth,
MinimalUi,
Minimum,
Mintcream,
Minus,
MissingGlyph,
Mistyrose,
Miter,
MixBlendMode,
Mixed,
Mlabeledtr,
Mlongdiv,
Mmultiscripts,
Mn,
Mo,
Moccasin,
Mod,
Modal,
Mode,
Moderate,
Modifications,
Moment,
Momentabout,
Mongolian,
Monochrome,
Monospace,
More,
MostBlockSize,
MostHeight,
MostInlineSize,
MostWidth,
Move,
Mover,
Mpadded,
Mpath,
Mphantom,
Mprescripts,
Mroot,
Mrow,
Mscarries,
Mscarry,
Msgroup,
Msline,
Mspace,
Msqrt,
Msrow,
Mstack,
Mstyle,
Msub,
Msubsup,
Msup,
Mtable,
Mtd,
Mtext,
Mtr,
Multicol,
Multiply,
Munder,
Munderover,
Muted,
Myanmar,
NResize,
Namespace,
Narrow,
Nastaliq,
Nav,
NavControls,
NavDown,
NavLeft,
NavRight,
NavUp,
Navajowhite,
Navigation,
Navy,
NeResize,
Near,
Nearest,
NearestNeighbor,
Negative,
Neq,
NeswResize,
Neutral,
Never,
Nextid,
NoClip,
NoCloseQuote,
NoCommonLigatures,
NoCompress,
NoContextual,
NoDiscretionaryLigatures,
NoDrop,
NoEllipsis,
NoHistoricalLigatures,
NoLimit,
NoOpenQuote,
NoOverflow,
NoPreference,
NoPunctuation,
NoRepeat,
NoSkip,
Nobr,
Noembed,
Noframes,
None,
Nonzero,
Normal,
Noscript,
Not,
NotAllowed,
Notch,
Notin,
Notprsubset,
Notsubset,
Nowrap,
NsResize,
NthChild,
NthCol,
NthLastChild,
NthLastCol,
NthLastOfType,
NthOfType,
Numbers,
Numeric,
NumericOnly,
NwResize,
NwseResize,
Object,
ObjectFit,
ObjectPosition,
ObjectViewBox,
Oblique,
ObliqueOnly,
Odd,
Off,
Offset,
OffsetAnchor,
OffsetDistance,
OffsetPath,
OffsetPosition,
OffsetRotate,
Oklab,
Oklch,
Ol,
Old,
Oldlace,
OldstyleNums,
Olive,
Olivedrab,
On,
Once,
Only,
OnlyChild,
OnlyOfType,
Opacity,
Opaque,
Open,
OpenQuote,
Optgroup,
Optimizelegibility,
Optimizespeed,
Option,
Optional,
Or,
Orange,
Orangered,
Orchid,
Order,
Ordinal,
Orientation,
Oriya,
Orphans,
Otherwise,
OutOfRange,
Outerproduct,
Outline,
OutlineColor,
OutlineOffset,
OutlineStyle,
OutlineWidth,
Output,
Outset,
Outside,
OutsideShape,
Over,
Overflow,
OverflowAnchor,
OverflowBlock,
OverflowClipMargin,
OverflowClipMarginBlock,
OverflowClipMarginBlockEnd,
OverflowClipMarginBlockStart,
OverflowClipMarginBottom,
OverflowClipMarginInline,
OverflowClipMarginInlineEnd,
OverflowClipMarginInlineStart,
OverflowClipMarginLeft,
OverflowClipMarginRight,
OverflowClipMarginTop,
OverflowInline,
OverflowWrap,
OverflowX,
OverflowY,
OverlapJoin,
Overlay,
Overline,
Override,
OverrideColors,
OverscrollBehavior,
OverscrollBehaviorBlock,
OverscrollBehaviorInline,
OverscrollBehaviorX,
OverscrollBehaviorY,
P,
P3,
Pad,
Padding,
PaddingBlock,
PaddingBlockEnd,
PaddingBlockStart,
PaddingBottom,
PaddingBox,
PaddingInline,
PaddingInlineEnd,
PaddingInlineStart,
PaddingLeft,
PaddingRight,
PaddingTop,
Page,
PageOrientation,
Paged,
Paint,
Painted,
PaintOrder,
Palegoldenrod,
Palegreen,
Paleturquoise,
Palevioletred,
PanDown,
PanLeft,
PanRight,
PanUp,
PanX,
PanY,
Papayawhip,
Param,
Parent,
Part,
Partialdiff,
Past,
Path,
Pattern,
Pause,
PauseAfter,
PauseBefore,
Paused,
Peachpuff,
PerLine,
PerLineAll,
Perceptual,
Performance,
Permission,
Persian,
Perspective,
PerspectiveOrigin,
Peru,
PetiteCaps,
Picker,
PickerIcon,
Picture,
PictureInPicture,
Piece,
Piecewise,
PinchZoom,
Pink,
Pixelated,
PlaceContent,
PlaceItems,
PlaceSelf,
Placeholder,
PlaceholderShown,
Plaintext,
Play,
PlayBackwards,
PlayForwards,
Playing,
Plum,
Plus,
PlusLighter,
Pointer,
PointerEvents,
PointerTimeline,
PointerTimelineAxis,
PointerTimelineName,
Polygon,
Polyline,
PopoverOpen,
Portal,
Portrait,
Position,
PositionAnchor,
PositionArea,
PositionTry,
PositionTryFallbacks,
PositionTryOrder,
PositionVisibility,
Pow,
Powderblue,
Power,
Pre,
PreLine,
PreWrap,
PrefersColorScheme,
PrefersContrast,
PrefersReducedData,
PrefersReducedMotion,
PrefersReducedTransparency,
Prefix,
Preserve,
Preserve3d,
PreserveBreaks,
PreserveParentColor,
PreserveSpaces,
Pretty,
Print,
PrintColorAdjust,
Product,
Progress,
ProgressBar,
Progressive,
Property,
ProphotoRgb,
ProportionalNums,
ProportionalWidth,
Proximity,
Prsubset,
Punctuation,
Purple,
Quotes,
Quotient,
R,
RadialGradient,
Radialgradient,
Radio,
Raise,
Range,
RawString,
Rb,
ReadOnly,
ReadWrite,
ReadingFlow,
ReadingOrder,
Real,
Rebeccapurple,
Rec2020,
Rect,
Recto,
Red,
Reduce,
Reduced,
Regexp,
Region,
RegionFragment,
Relative,
RelativeColorimetric,
Reln,
RenderingIntent,
Repeat,
RepeatX,
RepeatY,
RepeatingLinearGradient,
RepeatingRadialGradient,
Replace,
Replay,
Required,
Reset,
Resize,
Resolution,
Rest,
RestAfter,
RestBefore,
Result,
Reverse,
Reversed,
Revert,
RevertLayer,
RevertRule,
Rgb,
Rgba,
Ridge,
Right,
RightBottom,
RightMiddle,
RightToLeft,
RightTop,
Rightwards,
Root,
Rosybrown,
Rotate,
Rotate3d,
RotateLeft,
RotateRight,
#[atom("rotateX")]
Rotatex,
#[atom("rotateY")]
Rotatey,
#[atom("rotateZ")]
Rotatez,
Round,
Row,
RowGap,
RowOverColumn,
RowResize,
RowReverse,
RowRule,
RowRuleBreak,
RowRuleColor,
RowRuleEdgeInset,
RowRuleEdgeInsetEnd,
RowRuleEdgeInsetStart,
RowRuleInset,
RowRuleInsetCap,
RowRuleInsetCapEnd,
RowRuleInsetCapStart,
RowRuleInsetEnd,
RowRuleInsetJunction,
RowRuleInsetJunctionEnd,
RowRuleInsetJunctionStart,
RowRuleInsetStart,
RowRuleInteriorInset,
RowRuleInteriorInsetEnd,
RowRuleInteriorInsetStart,
RowRuleOutset,
RowRuleStyle,
RowRuleVisibilityItems,
RowRuleWidth,
Royalblue,
Rp,
Rt,
Rtc,
Rtl,
Ruby,
RubyAlign,
RubyBase,
RubyBaseContainer,
RubyMerge,
RubyOverhang,
RubyPosition,
RubyText,
RubyTextContainer,
Rule,
RuleBreak,
RuleColor,
RuleEdgeInset,
RuleInset,
RuleInsetCap,
RuleInsetCapEnd,
RuleInsetCapStart,
RuleInsetEnd,
RuleInsetJunction,
RuleInsetJunctionEnd,
RuleInsetJunctionStart,
RuleInsetStart,
RuleInteriorInset,
RuleOutset,
RuleOverlap,
RuleStyle,
RuleVisibilityItems,
RuleWidth,
RunIn,
Running,
SResize,
Saddlebrown,
Safe,
Salmon,
Samp,
Sandybrown,
SansSerif,
Saturate,
Saturation,
Scalarproduct,
Scale,
Scale3d,
ScaleDown,
#[atom("scaleX")]
Scalex,
#[atom("scaleY")]
Scaley,
#[atom("scaleZ")]
Scalez,
Scan,
Scoop,
Scope,
Screen,
Script,
Scripting,
Scroll,
ScrollBehavior,
ScrollInitialTarget,
ScrollMargin,
ScrollMarginBlock,
ScrollMarginBlockEnd,
ScrollMarginBlockStart,
ScrollMarginBottom,
ScrollMarginInline,
ScrollMarginInlineEnd,
ScrollMarginInlineStart,
ScrollMarginLeft,
ScrollMarginRight,
ScrollMarginTop,
ScrollMarker,
ScrollMarkerGroup,
ScrollPadding,
ScrollPaddingBlock,
ScrollPaddingBlockEnd,
ScrollPaddingBlockStart,
ScrollPaddingBottom,
ScrollPaddingInline,
ScrollPaddingInlineEnd,
ScrollPaddingInlineStart,
ScrollPaddingLeft,
ScrollPaddingRight,
ScrollPaddingTop,
ScrollPosition,
ScrollSnapAlign,
ScrollSnapStop,
ScrollSnapType,
ScrollState,
ScrollTargetGroup,
ScrollTimeline,
ScrollTimelineAxis,
ScrollTimelineName,
Scrollable,
Scrollbar,
ScrollbarColor,
ScrollbarGutter,
ScrollbarWidth,
Scrolled,
Sdev,
SeResize,
Seagreen,
Search,
Seashell,
Section,
Seeking,
Select,
Selectedcontent,
Selecteditem,
Selecteditemtext,
Selection,
Selector,
SelfBlockEnd,
SelfBlockStart,
SelfEnd,
SelfInlineEnd,
SelfInlineStart,
SelfStart,
Semantics,
SemiCondensed,
SemiExpanded,
Sep,
Separate,
Sepia,
Serif,
Sesame,
Set,
Setdiff,
Shape,
ShapeBox,
ShapeImageThreshold,
ShapeInside,
ShapeMargin,
ShapeOutside,
ShapePadding,
ShapeRendering,
Share,
Shorter,
Show,
Shrink,
Sides,
Sideways,
SidewaysLr,
SidewaysRl,
Sienna,
Sign,
Silent,
Silver,
Simplified,
Sin,
Size,
SizeAdjust,
Skew,
Skewx,
Skewy,
SkipAll,
SkipLineThrough,
SkipOverline,
SkipUnderline,
Skyblue,
SlashedZero,
Slateblue,
Slategray,
Slategrey,
Slice,
SliderOrientation,
Slot,
Slotted,
Slow,
Small,
SmallCaps,
Smaller,
Smooth,
Snap,
SnapBlock,
SnapInline,
Snapped,
Snow,
Soft,
SoftLight,
Solid,
SomeProp,
Source,
SourceAtop,
SourceIn,
SourceOrder,
SourceOut,
SourceOver,
Space,
SpaceAll,
SpaceAround,
SpaceBetween,
SpaceEvenly,
SpaceFirst,
Spacer,
Spaces,
Span,
SpanAll,
SpanBlockEnd,
SpanBlockStart,
SpanBottom,
SpanEnd,
SpanInlineEnd,
SpanInlineStart,
SpanLeft,
SpanRight,
SpanSelfBlockEnd,
SpanSelfBlockStart,
SpanSelfEnd,
SpanSelfInlineEnd,
SpanSelfInlineStart,
SpanSelfStart,
SpanStart,
SpanTop,
SpanXEnd,
SpanXSelfEnd,
SpanXSelfStart,
SpanXStart,
SpanYEnd,
SpanYSelfEnd,
SpanYSelfStart,
SpanYStart,
SpanningItem,
SpatialNavigationAction,
SpatialNavigationContain,
SpatialNavigationFunction,
Speak,
SpeakAs,
SpellOut,
SpellingError,
Spread,
Springgreen,
Sqrt,
Square,
Squircle,
Src,
Srgb,
SrgbLinear,
Stable,
StackedFractions,
Stalled,
Standalone,
Standard,
Start,
StartingStyle,
State,
Static,
Steelblue,
StepEnd,
StepStart,
Steps,
Sticky,
Stop,
Stopped,
Stretch,
Strict,
Strike,
String,
StringSet,
Stripes,
Stroke,
StrokeAlign,
StrokeBox,
StrokeBreak,
StrokeColor,
StrokeDashCorner,
StrokeDashJustify,
StrokeDasharray,
StrokeDashoffset,
StrokeImage,
StrokeLinecap,
StrokeLinejoin,
StrokeMiterlimit,
StrokeOpacity,
StrokeOrigin,
StrokePosition,
StrokeRepeat,
StrokeSize,
StrokeWidth,
Strong,
Stuck,
Style,
Sub,
Subgrid,
SubpixelAntialiased,
Subset,
Subtractive,
Suffix,
Sum,
Summary,
Sup,
Super,
Superellipse,
Supports,
Svg,
SwResize,
Swap,
Switch,
Symbol,
Symbolic,
Symbols,
Syntax,
System,
SystemUi,
TabSize,
Table,
TableCaption,
TableCell,
TableColumn,
TableColumnGroup,
TableFooterGroup,
TableHeaderGroup,
TableLayout,
TableRow,
TableRowGroup,
Tabs,
TabularNums,
Tamil,
Tan,
Target,
TargetCounter,
TargetCounters,
TargetCurrent,
TargetText,
TargetWithin,
Tbody,
Td,
Teal,
Telugu,
Template,
Tendsto,
Text,
TextAlign,
TextAlignAll,
TextAlignLast,
TextAutospace,
TextBottom,
TextBox,
TextBoxEdge,
TextBoxTrim,
TextCombineUpright,
TextDecoration,
TextDecorationColor,
TextDecorationInset,
TextDecorationLine,
TextDecorationSkip,
TextDecorationSkipBox,
TextDecorationSkipInk,
TextDecorationSkipSelf,
TextDecorationSkipSpaces,
TextDecorationStyle,
TextDecorationThickness,
TextEmphasis,
TextEmphasisColor,
TextEmphasisPosition,
TextEmphasisSkip,
TextEmphasisStyle,
TextFit,
TextGroupAlign,
TextIndent,
TextJustify,
TextOrientation,
TextOverflow,
TextRendering,
TextShadow,
TextSizeAdjust,
TextSpacing,
TextSpacingTrim,
TextTop,
TextTransform,
TextUnderlineOffset,
TextUnderlinePosition,
TextWrap,
TextWrapMode,
TextWrapStyle,
Textarea,
Textfield,
Textpath,
Tfoot,
Th,
Thai,
Thead,
Thick,
Thin,
Thistle,
Tibetan,
Time,
TimelineScope,
TimelineTrigger,
TimelineTriggerActivationRange,
TimelineTriggerActivationRangeEnd,
TimelineTriggerActivationRangeStart,
TimelineTriggerActiveRange,
TimelineTriggerActiveRangeEnd,
TimelineTriggerActiveRangeStart,
TimelineTriggerName,
TimelineTriggerSource,
Times,
Title,
TitlingCaps,
To,
Tomato,
Top,
TopCenter,
TopLeft,
TopLeftCorner,
TopRight,
TopRightCorner,
TopToBottom,
Touch,
TouchAction,
Tr,
Track,
Traditional,
Transform,
TransformBox,
TransformOrigin,
TransformStyle,
Transition,
TransitionBehavior,
TransitionDelay,
TransitionDuration,
TransitionProperty,
TransitionTimingFunction,
Translate,
Translate3d,
#[atom("translateX")]
Translatex,
#[atom("translateY")]
Translatey,
#[atom("translateZ")]
Translatez,
Transparent,
Transpose,
Triangle,
TriggerScope,
TrimAll,
TrimBoth,
TrimEnd,
TrimStart,
True,
Tspan,
Tt,
Turquoise,
Type,
Types,
U,
UiMonospace,
UiRounded,
UiSansSerif,
UiSerif,
Ul,
UltraCondensed,
UltraExpanded,
Under,
Underline,
Underscore,
Unicase,
Unicode,
UnicodeBidi,
UnicodeRange,
Union,
Unsafe,
Unset,
Up,
Update,
Uplimit,
UpperAlpha,
UpperArmenian,
UpperLatin,
UpperRoman,
Uppercase,
Upright,
Url,
UrlPrefix,
Use,
UserInvalid,
UserSelect,
Valid,
Var,
Variance,
Vector,
Vectorproduct,
Verso,
Vertical,
VerticalAlign,
VerticalLr,
VerticalRl,
VerticalText,
VerticalViewportSegments,
Video,
VideoColorGamut,
VideoDynamicRange,
View,
ViewBox,
ViewTimeline,
ViewTimelineAxis,
ViewTimelineInset,
ViewTimelineName,
ViewTransition,
ViewTransitionClass,
ViewTransitionGroup,
ViewTransitionImagePair,
ViewTransitionName,
ViewTransitionNew,
ViewTransitionOld,
ViewTransitionScope,
Violet,
Visibility,
Visible,
#[atom("visibleFill")]
Visiblefill,
#[atom("visiblePainted")]
Visiblepainted,
#[atom("visibleStroke")]
Visiblestroke,
Visited,
Visitedtext,
VoiceBalance,
VoiceDuration,
VoiceFamily,
VoicePitch,
VoiceRange,
VoiceRate,
VoiceStress,
VoiceVolume,
VolumeLocked,
W,
WResize,
Wait,
Wavy,
Wbr,
Weak,
Weight,
Wheat,
Where,
White,
WhiteSpace,
WhiteSpaceCollapse,
WhiteSpaceTrim,
Whitesmoke,
Widows,
Width,
WillChange,
WindowDrag,
WindowsVista,
WindowsWin10,
WindowsWin7,
WindowsWin8,
WindowsXp,
With,
WordBreak,
WordSpaceTransform,
WordSpacing,
WordWrap,
Words,
Wrap,
WrapAfter,
WrapBefore,
WrapFlow,
WrapInside,
WrapReverse,
WrapThrough,
WritingMode,
XEnd,
XFast,
XLarge,
XLoud,
XSelfEnd,
XSelfStart,
XSlow,
XSmall,
XSoft,
XStart,
XStrong,
XWeak,
Xmp,
Xo,
Xor,
XxLarge,
XxSmall,
Xyz,
XyzD50,
XyzD65,
Y,
YEnd,
YSelfEnd,
YSelfStart,
YStart,
Yellow,
Yellowgreen,
Young,
Z,
ZIndex,
ZeroIfExtrinsic,
ZeroIfScroll,
Zoom,
ZoomIn,
ZoomOut,
#[atom("-infinity")]
_NegInfinity,
#[atom("-webkit-align-content")]
_WebkitAlignContent = 0b00000000_10000000_00000000_00000000,
#[atom("-webkit-align-items")]
_WebkitAlignItems,
#[atom("-webkit-align-self")]
_WebkitAlignSelf,
#[atom("-webkit-animating-full-screen-transition")]
_WebkitAnimatingFullScreenTransition,
#[atom("-webkit-animation")]
_WebkitAnimation,
#[atom("-webkit-animation-delay")]
_WebkitAnimationDelay,
#[atom("-webkit-animation-duration")]
_WebkitAnimationDuration,
#[atom("-webkit-animation-fill-mode")]
_WebkitAnimationFillMode,
#[atom("-webkit-animation-iteration-count")]
_WebkitAnimationIterationCount,
#[atom("-webkit-animation-name")]
_WebkitAnimationName,
#[atom("-webkit-animation-timing-function")]
_WebkitAnimationTimingFunction,
#[atom("-webkit-any")]
_WebkitAny,
#[atom("-webkit-any-link")]
_WebkitAnyLink,
#[atom("-webkit-appearance")]
_WebkitAppearance,
#[atom("-webkit-autofill")]
_WebkitAutofill,
#[atom("-webkit-autofill-and-obscured")]
_WebkitAutofillAndObscured,
#[atom("-webkit-autofill-strong-password")]
_WebkitAutofillStrongPassword,
#[atom("-webkit-autofill-strong-password-viewable")]
_WebkitAutofillStrongPasswordViewable,
#[atom("-webkit-backdrop-filter")]
_WebkitBackdropFilter,
#[atom("-webkit-backface-visibility")]
_WebkitBackfaceVisibility,
#[atom("-webkit-background-clip")]
_WebkitBackgroundClip,
#[atom("-webkit-background-size")]
_WebkitBackgroundSize,
#[atom("-webkit-box")]
_WebkitBox,
#[atom("-webkit-box-align")]
_WebkitBoxAlign,
#[atom("-webkit-box-decoration-break")]
_WebkitBoxDecorationBreak,
#[atom("-webkit-box-direction")]
_WebkitBoxDirection,
#[atom("-webkit-box-flex")]
_WebkitBoxFlex,
#[atom("-webkit-box-ordinal-group")]
_WebkitBoxOrdinalGroup,
#[atom("-webkit-box-orient")]
_WebkitBoxOrient,
#[atom("-webkit-box-pack")]
_WebkitBoxPack,
#[atom("-webkit-box-reflect")]
_WebkitBoxReflect,
#[atom("-webkit-box-shadow")]
_WebkitBoxShadow,
#[atom("-webkit-box-sizing")]
_WebkitBoxSizing,
#[atom("-webkit-calendar-picker-indicator")]
_WebkitCalendarPickerIndicator,
#[atom("-webkit-caps-lock-indicator")]
_WebkitCapsLockIndicator,
#[atom("-webkit-clip-path")]
_WebkitClipPath,
#[atom("-webkit-color-swatch")]
_WebkitColorSwatch,
#[atom("-webkit-color-swatch-wrapper")]
_WebkitColorSwatchWrapper,
#[atom("-webkit-column-count")]
_WebkitColumnCount,
#[atom("-webkit-column-gap")]
_WebkitColumnGap,
#[atom("-webkit-contacts-auto-fill-button")]
_WebkitContactsAutoFillButton,
#[atom("-webkit-credentials-auto-fill-button")]
_WebkitCredentialsAutoFillButton,
#[atom("-webkit-credit-card-auto-fill-button")]
_WebkitCreditCardAutoFillButton,
#[atom("-webkit-date-and-time-value")]
_WebkitDateAndTimeValue,
#[atom("-webkit-datetime-edit")]
_WebkitDatetimeEdit,
#[atom("-webkit-datetime-edit-day-field")]
_WebkitDatetimeEditDayField,
#[atom("-webkit-datetime-edit-fields-wrapper")]
_WebkitDatetimeEditFieldsWrapper,
#[atom("-webkit-datetime-edit-hour-field")]
_WebkitDatetimeEditHourField,
#[atom("-webkit-datetime-edit-meridiem-field")]
_WebkitDatetimeEditMeridiemField,
#[atom("-webkit-datetime-edit-millisecond-field")]
_WebkitDatetimeEditMillisecondField,
#[atom("-webkit-datetime-edit-minute")]
_WebkitDatetimeEditMinute,
#[atom("-webkit-datetime-edit-minute-field")]
_WebkitDatetimeEditMinuteField,
#[atom("-webkit-datetime-edit-month-field")]
_WebkitDatetimeEditMonthField,
#[atom("-webkit-datetime-edit-second-field")]
_WebkitDatetimeEditSecondField,
#[atom("-webkit-datetime-edit-text")]
_WebkitDatetimeEditText,
#[atom("-webkit-datetime-edit-year-field")]
_WebkitDatetimeEditYearField,
#[atom("-webkit-details-marker")]
_WebkitDetailsMarker,
#[atom("-webkit-device-pixel-ratio")]
_WebkitDevicePixelRatio,
#[atom("-webkit-distributed")]
_WebkitDistributed,
#[atom("-webkit-drag")]
_WebkitDrag,
#[atom("-webkit-file-upload-button")]
_WebkitFileUploadButton,
#[atom("-webkit-filter")]
_WebkitFilter,
#[atom("-webkit-flex")]
_WebkitFlex,
#[atom("-webkit-flex-basis")]
_WebkitFlexBasis,
#[atom("-webkit-flex-direction")]
_WebkitFlexDirection,
#[atom("-webkit-flex-flow")]
_WebkitFlexFlow,
#[atom("-webkit-flex-grow")]
_WebkitFlexGrow,
#[atom("-webkit-flex-wrap")]
_WebkitFlexWrap,
#[atom("-webkit-font-smoothing")]
_WebkitFontSmoothing,
#[atom("-webkit-full-page-media")]
_WebkitFullPageMedia,
#[atom("-webkit-full-screen")]
_WebkitFullScreen,
#[atom("-webkit-full-screen-ancestor")]
_WebkitFullScreenAncestor,
#[atom("-webkit-full-screen-controls-hidden")]
_WebkitFullScreenControlsHidden,
#[atom("-webkit-full-screen-document")]
_WebkitFullScreenDocument,
#[atom("-webkit-generic-cue-root")]
_WebkitGenericCueRoot,
#[atom("-webkit-grab")]
_WebkitGrab,
#[atom("-webkit-grabbing")]
_WebkitGrabbing,
#[atom("-webkit-inline-box")]
_WebkitInlineBox,
#[atom("-webkit-inline-flex")]
_WebkitInlineFlex,
#[atom("-webkit-inner-spin-button")]
_WebkitInnerSpinButton,
#[atom("-webkit-input-placeholder")]
_WebkitInputPlaceholder,
#[atom("-webkit-justify-content")]
_WebkitJustifyContent,
#[atom("-webkit-keyframes")]
_WebkitKeyframes,
#[atom("-webkit-line-clamp")]
_WebkitLineClamp,
#[atom("-webkit-list-button")]
_WebkitListButton,
#[atom("-webkit-margin-end")]
_WebkitMarginEnd,
#[atom("-webkit-mask")]
_WebkitMask,
#[atom("-webkit-mask-box-image")]
_WebkitMaskBoxImage,
#[atom("-webkit-mask-position")]
_WebkitMaskPosition,
#[atom("-webkit-mask-size")]
_WebkitMaskSize,
#[atom("-webkit-match-parent")]
_WebkitMatchParent,
#[atom("-webkit-max-content")]
_WebkitMaxContent,
#[atom("-webkit-max-device-pixel-ratio")]
_WebkitMaxDevicePixelRatio,
#[atom("-webkit-media-text-track-container")]
_WebkitMediaTextTrackContainer,
#[atom("-webkit-media-text-track-display")]
_WebkitMediaTextTrackDisplay,
#[atom("-webkit-media-text-track-display-backdrop")]
_WebkitMediaTextTrackDisplayBackdrop,
#[atom("-webkit-media-text-track-region")]
_WebkitMediaTextTrackRegion,
#[atom("-webkit-media-text-track-region-container")]
_WebkitMediaTextTrackRegionContainer,
#[atom("-webkit-meter-bar")]
_WebkitMeterBar,
#[atom("-webkit-meter-even-less-good-value")]
_WebkitMeterEvenLessGoodValue,
#[atom("-webkit-meter-inner-element")]
_WebkitMeterInnerElement,
#[atom("-webkit-meter-optimum-value")]
_WebkitMeterOptimumValue,
#[atom("-webkit-meter-suboptimum-value")]
_WebkitMeterSuboptimumValue,
#[atom("-webkit-min-content")]
_WebkitMinContent,
#[atom("-webkit-min-device-pixel-ratio")]
_WebkitMinDevicePixelRatio,
#[atom("-webkit-order")]
_WebkitOrder,
#[atom("-webkit-outer-spin-button")]
_WebkitOuterSpinButton,
#[atom("-webkit-overflow-scrolling")]
_WebkitOverflowScrolling,
#[atom("-webkit-password-auto-fill-button")]
_WebkitPasswordAutoFillButton,
#[atom("-webkit-perspective")]
_WebkitPerspective,
#[atom("-webkit-print-color-adjust")]
_WebkitPrintColorAdjust,
#[atom("-webkit-progress-bar")]
_WebkitProgressBar,
#[atom("-webkit-progress-inner-element")]
_WebkitProgressInnerElement,
#[atom("-webkit-progress-value")]
_WebkitProgressValue,
#[atom("-webkit-resizer")]
_WebkitResizer,
#[atom("-webkit-scrollbar")]
_WebkitScrollbar,
#[atom("-webkit-scrollbar-button")]
_WebkitScrollbarButton,
#[atom("-webkit-scrollbar-corner")]
_WebkitScrollbarCorner,
#[atom("-webkit-scrollbar-thumb")]
_WebkitScrollbarThumb,
#[atom("-webkit-scrollbar-track")]
_WebkitScrollbarTrack,
#[atom("-webkit-scrollbar-track-piece")]
_WebkitScrollbarTrackPiece,
#[atom("-webkit-search-cancel-button")]
_WebkitSearchCancelButton,
#[atom("-webkit-search-decoration")]
_WebkitSearchDecoration,
#[atom("-webkit-search-results-button")]
_WebkitSearchResultsButton,
#[atom("-webkit-slider-container")]
_WebkitSliderContainer,
#[atom("-webkit-slider-runnable-track")]
_WebkitSliderRunnableTrack,
#[atom("-webkit-slider-thumb")]
_WebkitSliderThumb,
#[atom("-webkit-sticky")]
_WebkitSticky,
#[atom("-webkit-tap-highlight-color")]
_WebkitTapHighlightColor,
#[atom("-webkit-text-decoration")]
_WebkitTextDecoration,
#[atom("-webkit-text-decoration-color")]
_WebkitTextDecorationColor,
#[atom("-webkit-text-decoration-skip-ink")]
_WebkitTextDecorationSkipInk,
#[atom("-webkit-text-fill-color")]
_WebkitTextFillColor,
#[atom("-webkit-text-size-adjust")]
_WebkitTextSizeAdjust,
#[atom("-webkit-text-stroke-color")]
_WebkitTextStrokeColor,
#[atom("-webkit-text-stroke-width")]
_WebkitTextStrokeWidth,
#[atom("-webkit-textfield-decoration-container")]
_WebkitTextfieldDecorationContainer,
#[atom("-webkit-touch-callout")]
_WebkitTouchCallout,
#[atom("-webkit-transform")]
_WebkitTransform,
#[atom("-webkit-transform-2d")]
_WebkitTransform2d,
#[atom("-webkit-transform-3d")]
_WebkitTransform3d,
#[atom("-webkit-transform-origin")]
_WebkitTransformOrigin,
#[atom("-webkit-transition")]
_WebkitTransition,
#[atom("-webkit-transition-delay")]
_WebkitTransitionDelay,
#[atom("-webkit-transition-duration")]
_WebkitTransitionDuration,
#[atom("-webkit-transition-property")]
_WebkitTransitionProperty,
#[atom("-webkit-transition-timing-function")]
_WebkitTransitionTimingFunction,
#[atom("-webkit-user-drag")]
_WebkitUserDrag,
#[atom("-webkit-user-select")]
_WebkitUserSelect,
#[atom("-webkit-validation-bubble")]
_WebkitValidationBubble,
#[atom("-webkit-validation-bubble-arrow")]
_WebkitValidationBubbleArrow,
#[atom("-webkit-validation-bubble-arrow-clipper")]
_WebkitValidationBubbleArrowClipper,
#[atom("-webkit-validation-bubble-body")]
_WebkitValidationBubbleBody,
#[atom("-webkit-validation-bubble-heading")]
_WebkitValidationBubbleHeading,
#[atom("-webkit-validation-bubble-icon")]
_WebkitValidationBubbleIcon,
#[atom("-webkit-validation-bubble-message")]
_WebkitValidationBubbleMessage,
#[atom("-webkit-validation-bubble-text-block")]
_WebkitValidationBubbleTextBlock,
#[atom("-webkit-video-playable-inline")]
_WebkitVideoPlayableInline,
#[atom("-moz-anonymous-block")]
_MozAnonymousBlock = 0b00000000_10100000_00000000_00000000,
#[atom("-moz-anonymous-item")]
_MozAnonymousItem,
#[atom("-moz-anonymous-positioned-block")]
_MozAnonymousPositionedBlock,
#[atom("-moz-any")]
_MozAny,
#[atom("-moz-any-link")]
_MozAnyLink,
#[atom("-moz-appearance")]
_MozAppearance,
#[atom("-moz-block-inside-inline-wrapper")]
_MozBlockInsideInlineWrapper,
#[atom("-moz-block-ruby-content")]
_MozBlockRubyContent,
#[atom("-moz-box")]
_MozBox,
#[atom("-moz-box-sizing")]
_MozBoxSizing,
#[atom("-moz-broken")]
_MozBroken,
#[atom("-moz-button-content")]
_MozButtonContent,
#[atom("-moz-canvas")]
_MozCanvas,
#[atom("-moz-cell-content")]
_MozCellContent,
#[atom("-moz-color-swatch")]
_MozColorSwatch,
#[atom("-moz-column-content")]
_MozColumnContent,
#[atom("-moz-column-count")]
_MozColumnCount,
#[atom("-moz-column-gap")]
_MozColumnGap,
#[atom("-moz-column-set")]
_MozColumnSet,
#[atom("-moz-column-span-wrapper")]
_MozColumnSpanWrapper,
#[atom("-moz-device-orientation")]
_MozDeviceOrientation,
#[atom("-moz-device-pixel-ratio")]
_MozDevicePixelRatio,
#[atom("-moz-document")]
_MozDocument,
#[atom("-moz-drag-over")]
_MozDragOver,
#[atom("-moz-dropdown-list")]
_MozDropdownList,
#[atom("-moz-fieldset-content")]
_MozFieldsetContent,
#[atom("-moz-filter")]
_MozFilter,
#[atom("-moz-first-letter-continuation")]
_MozFirstLetterContinuation,
#[atom("-moz-first-node")]
_MozFirstNode,
#[atom("-moz-flex")]
_MozFlex,
#[atom("-moz-flexbox")]
_MozFlexbox,
#[atom("-moz-focus-inner")]
_MozFocusInner,
#[atom("-moz-focus-outer")]
_MozFocusOuter,
#[atom("-moz-focusring")]
_MozFocusring,
#[atom("-moz-frameset-blank")]
_MozFramesetBlank,
#[atom("-moz-full-screen")]
_MozFullScreen,
#[atom("-moz-full-screen-ancestor")]
_MozFullScreenAncestor,
#[atom("-moz-handler-blocked")]
_MozHandlerBlocked,
#[atom("-moz-handler-crashed")]
_MozHandlerCrashed,
#[atom("-moz-handler-disabled")]
_MozHandlerDisabled,
#[atom("-moz-hframeset-border")]
_MozHframesetBorder,
#[atom("-moz-html-canvas-content")]
_MozHtmlCanvasContent,
#[atom("-moz-images-in-menus")]
_MozImagesInMenus,
#[atom("-moz-inline-box")]
_MozInlineBox,
#[atom("-moz-inline-stack")]
_MozInlineStack,
#[atom("-moz-inline-table")]
_MozInlineTable,
#[atom("-moz-last-node")]
_MozLastNode,
#[atom("-moz-line-frame")]
_MozLineFrame,
#[atom("-moz-list-bullet")]
_MozListBullet,
#[atom("-moz-list-number")]
_MozListNumber,
#[atom("-moz-loading")]
_MozLoading,
#[atom("-moz-locale-dir")]
_MozLocaleDir,
#[atom("-moz-lwtheme")]
_MozLwtheme,
#[atom("-moz-lwtheme-brighttext")]
_MozLwthemeBrighttext,
#[atom("-moz-lwtheme-darktext")]
_MozLwthemeDarktext,
#[atom("-moz-mac-grapite-theme")]
_MozMacGraphiteTheme,
#[atom("-moz-maemo-classic-theme")]
_MozMaemoClassicTheme,
#[atom("-moz-mathml-anonymous-block")]
_MozMathmlAnonymousBlock,
#[atom("-moz-max-content")]
_MozMaxContent,
#[atom("-moz-max-device-pixel-ratio")]
_MozMaxDevicePixelRatio,
#[atom("-moz-min-content")]
_MozMinContent,
#[atom("-moz-min-device-pixel-ratio")]
_MozMinDevicePixelRatio,
#[atom("-moz-native-anonymous")]
_MozNativeAnonymous,
#[atom("-moz-number-spin-box")]
_MozNumberSpinBox,
#[atom("-moz-number-spin-down")]
_MozNumberSpinDown,
#[atom("-moz-number-spin-up")]
_MozNumberSpinUp,
#[atom("-moz-only-whitespace")]
_MozOnlyWhitespace,
#[atom("-moz-oof-placeholder")]
_MozOofPlaceholder,
#[atom("-moz-os-version")]
_MozOsVersion,
#[atom("-moz-osx-font-smoothing")]
_MozOsxFontSmoothing,
#[atom("-moz-page")]
_MozPage,
#[atom("-moz-page-break")]
_MozPageBreak,
#[atom("-moz-page-content")]
_MozPageContent,
#[atom("-moz-page-sequence")]
_MozPageSequence,
#[atom("-moz-pagebreak")]
_MozPagebreak,
#[atom("-moz-pagecontent")]
_MozPagecontent,
#[atom("-moz-placeholder")]
_MozPlaceholder,
#[atom("-moz-placeholder-shown")]
_MozPlaceholderShown,
#[atom("-moz-printed-sheet")]
_MozPrintedSheet,
#[atom("-moz-progress-bar")]
_MozProgressBar,
#[atom("-moz-range-progress")]
_MozRangeProgress,
#[atom("-moz-range-thumb")]
_MozRangeThumb,
#[atom("-moz-range-track")]
_MozRangeTrack,
#[atom("-moz-read-only")]
_MozReadOnly,
#[atom("-moz-read-write")]
_MozReadWrite,
#[atom("-moz-reveal")]
_MozReveal,
#[atom("-moz-ruby")]
_MozRuby,
#[atom("-moz-ruby-base")]
_MozRubyBase,
#[atom("-moz-ruby-base-container")]
_MozRubyBaseContainer,
#[atom("-moz-ruby-text")]
_MozRubyText,
#[atom("-moz-ruby-text-container")]
_MozRubyTextContainer,
#[atom("-moz-scrolled-canvas")]
_MozScrolledCanvas,
#[atom("-moz-scrolled-content")]
_MozScrolledContent,
#[atom("-moz-scrolled-page-sequence")]
_MozScrolledPageSequence,
#[atom("-moz-search-clear-button")]
_MozSearchClearButton,
#[atom("-moz-selection")]
_MozSelection,
#[atom("-moz-submit-invalid")]
_MozSubmitInvalid,
#[atom("-moz-suppressed")]
_MozSuppressed,
#[atom("-moz-svg-foreign-content")]
_MozSvgForeignContent,
#[atom("-moz-svg-marker-anon-child")]
_MozSvgMarkerAnonChild,
#[atom("-moz-svg-marker-outer-svg-anon-child")]
_MozSvgMarkerOuterSvgAnonChild,
#[atom("-moz-svg-text")]
_MozSvgText,
#[atom("-moz-table")]
_MozTable,
#[atom("-moz-table-cell")]
_MozTableCell,
#[atom("-moz-table-column")]
_MozTableColumn,
#[atom("-moz-table-column-group")]
_MozTableColumnGroup,
#[atom("-moz-table-outer")]
_MozTableOuter,
#[atom("-moz-table-row")]
_MozTableRow,
#[atom("-moz-table-row-group")]
_MozTableRowGroup,
#[atom("-moz-table-wrapper")]
_MozTableWrapper,
#[atom("-moz-text-control-editing-root")]
_MozTextControlEditingRoot,
#[atom("-moz-text-control-preview")]
_MozTextControlPreview,
#[atom("-moz-touch-enabled")]
_MozTouchEnabled,
#[atom("-moz-transition")]
_MozTransition,
#[atom("-moz-tree-cell")]
_MozTreeCell,
#[atom("-moz-tree-cell-text")]
_MozTreeCellText,
#[atom("-moz-tree-checkbox")]
_MozTreeCheckbox,
#[atom("-moz-tree-column")]
_MozTreeColumn,
#[atom("-moz-tree-drop-feedback")]
_MozTreeDropFeedback,
#[atom("-moz-tree-image")]
_MozTreeImage,
#[atom("-moz-tree-indentation")]
_MozTreeIndentation,
#[atom("-moz-tree-line")]
_MozTreeLine,
#[atom("-moz-tree-row")]
_MozTreeRow,
#[atom("-moz-tree-separator")]
_MozTreeSeparator,
#[atom("-moz-tree-twisty")]
_MozTreeTwisty,
#[atom("-moz-ui-invalid")]
_MozUiInvalid,
#[atom("-moz-ui-valid")]
_MozUiValid,
#[atom("-moz-user-disabled")]
_MozUserDisabled,
#[atom("-moz-user-select")]
_MozUserSelect,
#[atom("-moz-vframeset-border")]
_MozVframesetBorder,
#[atom("-moz-viewport")]
_MozViewport,
#[atom("-moz-viewport-scroll")]
_MozViewportScroll,
#[atom("-moz-window-inactive")]
_MozWindowInactive,
#[atom("-ms-autohiding-scrollbar")]
_MsAutohidingScrollbar = 0b00000000_11000000_00000000_00000000,
#[atom("-ms-backdrop")]
_MsBackdrop,
#[atom("-ms-box-sizing")]
_MsBoxSizing,
#[atom("-ms-browse")]
_MsBrowse,
#[atom("-ms-check")]
_MsCheck,
#[atom("-ms-clear")]
_MsClear,
#[atom("-ms-column-count")]
_MsColumnCount,
#[atom("-ms-device-pixel-ratio")]
_MsDevicePixelRatio,
#[atom("-ms-expand")]
_MsExpand,
#[atom("-ms-fill")]
_MsFill,
#[atom("-ms-fill-lower")]
_MsFillLower,
#[atom("-ms-fill-upper")]
_MsFillUpper,
#[atom("-ms-filter")]
_MsFilter,
#[atom("-ms-flex")]
_MsFlex,
#[atom("-ms-flex-align")]
_MsFlexAlign,
#[atom("-ms-flex-direction")]
_MsFlexDirection,
#[atom("-ms-flex-flow")]
_MsFlexFlow,
#[atom("-ms-flex-item-align")]
_MsFlexItemAlign,
#[atom("-ms-flex-line-pack")]
_MsFlexLinePack,
#[atom("-ms-flex-negative")]
_MsFlexNegative,
#[atom("-ms-flex-order")]
_MsFlexOrder,
#[atom("-ms-flex-pack")]
_MsFlexPack,
#[atom("-ms-flex-positive")]
_MsFlexPositive,
#[atom("-ms-flex-preferred-size")]
_MsFlexPreferredSize,
#[atom("-ms-flex-wrap")]
_MsFlexWrap,
#[atom("-ms-flexbox")]
_MsFlexbox,
#[atom("-ms-fullscreen")]
_MsFullscreen,
#[atom("-ms-grid")]
_MsGrid,
#[atom("-ms-high-contrast")]
_MsHighContrast,
#[atom("-ms-interpolation-mode")]
_MsInterpolationMode,
#[atom("-ms-ime-align")]
_MsImeAlign,
#[atom("-ms-inline-flex")]
_MsInlineFlex,
#[atom("-ms-inline-flexbox")]
_MsInlineFlexbox,
#[atom("-ms-input-placeholder")]
_MsInputPlaceholder,
#[atom("-ms-max-column-count")]
_MsMaxColumnCount,
#[atom("-ms-max-device-pixel-ratio")]
_MsMaxDevicepixelRatio,
#[atom("-ms-min-column-count")]
_MsMinColumnCount,
#[atom("-ms-min-device-pixel-ratio")]
_MsMinDevicePixelRatio,
#[atom("-ms-overflow-style")]
_MsOverflowStyle,
#[atom("-ms-placeholder")]
_MsPlaceholder,
#[atom("-ms-reveal")]
_MsReveal,
#[atom("-ms-selection")]
_MsSelection,
#[atom("-ms-text-size-adjust")]
_MsTextSizeAdjust,
#[atom("-ms-thumb")]
_MsThumb,
#[atom("-ms-ticks-after")]
_MsTicksAfter,
#[atom("-ms-ticks-before")]
_MsTicksBefore,
#[atom("-ms-tooltip")]
_MsTooltip,
#[atom("-ms-touch-action")]
_MsTouchAction,
#[atom("-ms-track")]
_MsTrack,
#[atom("-ms-transform")]
_MsTransform,
#[atom("-ms-transform-origin")]
_MsTransformOrigin,
#[atom("-ms-transition")]
_MsTransition,
#[atom("-ms-user-select")]
_MsUserSelect,
#[atom("-ms-value")]
_MsValue,
#[atom("-ms-view-state")]
_MsViewState,
#[atom("-ms-word-break")]
_MsWordBreak,
#[atom("-o-box-sizing")]
_OBoxSizing = 0b00000000_11100000_00000000_00000000,
#[atom("-o-device-pixel-ratio")]
_ODevicePixelRatio,
#[atom("-o-filter")]
_OFilter,
#[atom("-o-flex")]
_OFlex,
#[atom("-o-inner-spin-button")]
_OInnerSpinButton,
#[atom("-o-max-device-pixel-ratio")]
_OMaxDevicePixelRatio,
#[atom("-o-min-device-pixel-ratio")]
_OMinDevicePixelRatio,
#[atom("-o-object-fit")]
_OObjectFit,
#[atom("-o-outer-spin-button")]
_OOuterSpinButton,
#[atom("-o-placeholder")]
_OPlaceholder,
#[atom("-o-prefocus")]
_OPrefocus,
#[atom("-o-scrollbar")]
_OScrollbar,
#[atom("-o-scrollbar-thumb")]
_OScrollbarThumb,
#[atom("-o-scrollbar-track")]
_OScrollbarTrack,
#[atom("-o-scrollbar-track-piece")]
_OScrollbarTrackPiece,
#[atom("-o-selection")]
_OSelection,
}
impl CssAtomSet {
pub const ATOMS: CssAtomSet = CssAtomSet::_None;
}
#[test]
fn test_css_atom_set() {
assert_eq!(CssAtomSet::from_str("px"), CssAtomSet::Px);
assert_eq!(CssAtomSet::from_str("PX"), CssAtomSet::Px);
assert_eq!(CssAtomSet::from_str("pX"), CssAtomSet::Px);
assert_eq!(CssAtomSet::from_str("em"), CssAtomSet::Em);
assert_eq!(CssAtomSet::from_str("url"), CssAtomSet::Url);
assert_eq!(CssAtomSet::from_str("uRl"), CssAtomSet::Url);
assert_eq!(CssAtomSet::from_str("URL"), CssAtomSet::Url);
assert_eq!(CssAtomSet::from_str("%"), CssAtomSet::Percentage);
assert_eq!(CssAtomSet::from_str("q"), CssAtomSet::Q);
assert_eq!(CssAtomSet::from_str("Q"), CssAtomSet::Q);
assert_eq!(CssAtomSet::from_str("s"), CssAtomSet::S);
assert_eq!(CssAtomSet::from_str("S"), CssAtomSet::S);
assert_eq!(CssAtomSet::from_str("x"), CssAtomSet::X);
assert_eq!(CssAtomSet::from_str("X"), CssAtomSet::X);
assert_eq!(CssAtomSet::from_str("notfound"), CssAtomSet::_None);
assert_eq!(CssAtomSet::from_str("dpcm"), CssAtomSet::Dpcm);
assert_eq!(CssAtomSet::from_str("dppx"), CssAtomSet::Dppx);
assert_eq!(CssAtomSet::from_str("rcap"), CssAtomSet::Rcap);
assert_eq!(CssAtomSet::from_str("cqmax"), CssAtomSet::Cqmax);
assert_eq!(CssAtomSet::from_str("CQMAX"), CssAtomSet::Cqmax);
assert_eq!(CssAtomSet::from_str("dvmin"), CssAtomSet::Dvmin);
assert_eq!(CssAtomSet::from_str("turn"), CssAtomSet::Turn);
assert_eq!(CssAtomSet::from_str("grad"), CssAtomSet::Grad);
assert_eq!(CssAtomSet::_None.len(), 0);
assert_eq!(CssAtomSet::Percentage.len(), 1);
assert_eq!(CssAtomSet::Q.len(), 1);
assert_eq!(CssAtomSet::S.len(), 1);
assert_eq!(CssAtomSet::X.len(), 1);
assert_eq!(CssAtomSet::Px.len(), 2);
assert_eq!(CssAtomSet::Em.len(), 2);
assert_eq!(CssAtomSet::Hz.len(), 2);
assert_eq!(CssAtomSet::Url.len(), 3);
assert_eq!(CssAtomSet::Cap.len(), 3);
assert_eq!(CssAtomSet::Deg.len(), 3);
assert_eq!(CssAtomSet::Turn.len(), 4);
assert_eq!(CssAtomSet::Grad.len(), 4);
assert_eq!(CssAtomSet::Cqmax.len(), 5);
assert_eq!(CssAtomSet::Dvmin.len(), 5);
assert!(CssAtomSet::_None.is_empty());
assert!(!CssAtomSet::Px.is_empty());
assert!(!CssAtomSet::Url.is_empty());
let test_variants = [
CssAtomSet::Px,
CssAtomSet::Em,
CssAtomSet::Rem,
CssAtomSet::Percentage,
CssAtomSet::Url,
CssAtomSet::Turn,
CssAtomSet::Grad,
CssAtomSet::Cqmax,
CssAtomSet::Q,
CssAtomSet::S,
CssAtomSet::X,
];
for variant in test_variants {
let bits = variant.as_bits();
let restored = CssAtomSet::from_bits(bits);
assert_eq!(variant, restored, "Round-trip failed for {variant:?} with bits {bits}");
}
assert_eq!(CssAtomSet::from_bits(0), CssAtomSet::_None);
assert_eq!(CssAtomSet::from_bits(9999), CssAtomSet::_None);
assert_eq!(CssAtomSet::Percentage.len(), 1);
assert_eq!(CssAtomSet::Px.to_str(), "px");
assert_eq!(CssAtomSet::Em.to_str(), "em");
assert_eq!(CssAtomSet::Percentage.to_str(), "%");
assert_eq!(CssAtomSet::Url.to_str(), "url");
assert_eq!(CssAtomSet::_None.to_str(), "");
assert_eq!(CssAtomSet::Cqmax.to_str(), "cqmax");
assert_eq!(CssAtomSet::Dvmin.to_str(), "dvmin");
assert_eq!(CssAtomSet::Dpcm.to_str(), "dpcm");
assert_eq!(CssAtomSet::Dppx.to_str(), "dppx");
let test_cases = ["px", "em", "%", "url", "cqmax", "dvmin", "turn", "grad"];
for case in test_cases {
let atom = CssAtomSet::from_str(case);
assert_eq!(atom.to_str(), case, "Round-trip failed for '{case}'");
}
assert_eq!(CssAtomSet::from_str("nonexistent").to_str(), "");
}
#[test]
fn test_all_vendor_atoms_have_correct_prefix() {
const VENDOR_FLAG: u32 = 0b00000000_10000000_00000000_00000000;
for i in 0..3000isize {
let atom = CssAtomSet::from_bits(i as u32);
let str = atom.to_str();
let bits = i as i32 as u32;
let has_vendor_flag = (bits & VENDOR_FLAG) != 0;
let expected_vendor = if str.starts_with("-webkit-") {
Some("webkit")
} else if str.starts_with("-moz-") {
Some("moz")
} else if str.starts_with("-ms-") {
Some("ms")
} else if str.starts_with("-o-") {
Some("o")
} else {
None
};
match expected_vendor {
Some(vendor) => {
assert!(
has_vendor_flag,
"Atom {atom:?} (i {i}) has {vendor} prefix in string '{str}' but vendor flag bit 23 is not set"
);
let index = (bits >> 21) & 0b11;
let expected_index = match vendor {
"webkit" => 0,
"moz" => 1,
"ms" => 2,
"o" => 3,
_ => unreachable!(),
};
assert_eq!(
index, expected_index,
"Atom {atom:?} has {vendor} prefix but wrong vendor index: expected {expected_index}, got {index}"
);
}
None => {
assert!(
!has_vendor_flag,
"Atom {atom:?} (i {i}) has no vendor prefix in string '{str}' but vendor flag bit 23 is set (bits: {bits:024b})"
);
}
}
}
}
#[cfg(feature = "dynamic-atoms")]
css_lexer::register_atom_set!(CssAtomSet);