From 76cb9c2a39d477a64824a985ade40507e3bbade1 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 21:34:48 -0800 Subject: feat(vanilla): add testing infrastructure and tests (NK-wjnczv) --- vanilla/node_modules/mdn-data/css/syntaxes.json | 899 ++++++++++++++++++++++++ 1 file changed, 899 insertions(+) create mode 100644 vanilla/node_modules/mdn-data/css/syntaxes.json (limited to 'vanilla/node_modules/mdn-data/css/syntaxes.json') diff --git a/vanilla/node_modules/mdn-data/css/syntaxes.json b/vanilla/node_modules/mdn-data/css/syntaxes.json new file mode 100644 index 0000000..08b197e --- /dev/null +++ b/vanilla/node_modules/mdn-data/css/syntaxes.json @@ -0,0 +1,899 @@ +{ + "abs()": { + "syntax": "abs( )" + }, + "absolute-size": { + "syntax": "xx-small | x-small | small | medium | large | x-large | xx-large | xxx-large" + }, + "acos()": { + "syntax": "acos( )" + }, + "alpha-value": { + "syntax": " | " + }, + "angle-percentage": { + "syntax": " | " + }, + "angular-color-hint": { + "syntax": "" + }, + "angular-color-stop": { + "syntax": " && ?" + }, + "angular-color-stop-list": { + "syntax": "[ [, ]? ]# , " + }, + "animateable-feature": { + "syntax": "scroll-position | contents | " + }, + "asin()": { + "syntax": "asin( )" + }, + "atan()": { + "syntax": "atan( )" + }, + "atan2()": { + "syntax": "atan2( , )" + }, + "attachment": { + "syntax": "scroll | fixed | local" + }, + "attr()": { + "syntax": "attr( ? [, ]? )" + }, + "attr-matcher": { + "syntax": "[ '~' | '|' | '^' | '$' | '*' ]? '='" + }, + "attr-modifier": { + "syntax": "i | s" + }, + "attribute-selector": { + "syntax": "'[' ']' | '[' [ | ] ? ']'" + }, + "auto-repeat": { + "syntax": "repeat( [ auto-fill | auto-fit ] , [ ? ]+ ? )" + }, + "auto-track-list": { + "syntax": "[ ? [ | ] ]* ? \n[ ? [ | ] ]* ?" + }, + "axis": { + "syntax": "block | inline | x | y" + }, + "baseline-position": { + "syntax": "[ first | last ]? baseline" + }, + "basic-shape": { + "syntax": " | | | | " + }, + "bg-image": { + "syntax": "none | " + }, + "bg-layer": { + "syntax": " || [ / ]? || || || || " + }, + "bg-position": { + "syntax": "[ [ left | center | right | top | bottom | ] | [ left | center | right | ] [ top | center | bottom | ] | [ center | [ left | right ] ? ] && [ center | [ top | bottom ] ? ] ]" + }, + "bg-size": { + "syntax": "[ | auto ]{1,2} | cover | contain" + }, + "blur()": { + "syntax": "blur( )" + }, + "blend-mode": { + "syntax": "normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity" + }, + "box": { + "syntax": "border-box | padding-box | content-box" + }, + "brightness()": { + "syntax": "brightness( )" + }, + "calc()": { + "syntax": "calc( )" + }, + "calc-sum": { + "syntax": " [ [ '+' | '-' ] ]*" + }, + "calc-product": { + "syntax": " [ '*' | '/' ]*" + }, + "calc-value": { + "syntax": " | | | | ( )" + }, + "calc-constant": { + "syntax": "e | pi | infinity | -infinity | NaN" + }, + "cf-final-image": { + "syntax": " | " + }, + "cf-mixing-image": { + "syntax": "? && " + }, + "circle()": { + "syntax": "circle( [ ]? [ at ]? )" + }, + "clamp()": { + "syntax": "clamp( #{3} )" + }, + "class-selector": { + "syntax": "'.' " + }, + "clip-source": { + "syntax": "" + }, + "color": { + "syntax": " | | | | | | | | | | | | | | currentcolor | transparent" + }, + "color-stop": { + "syntax": " | " + }, + "color-stop-angle": { + "syntax": "{1,2}" + }, + "color-stop-length": { + "syntax": "{1,2}" + }, + "color-stop-list": { + "syntax": "[ [, ]? ]# , " + }, + "color-interpolation-method": { + "syntax": "in [ | ? ]" + }, + "combinator": { + "syntax": "'>' | '+' | '~' | [ '||' ]" + }, + "common-lig-values": { + "syntax": "[ common-ligatures | no-common-ligatures ]" + }, + "compat-auto": { + "syntax": "searchfield | textarea | push-button | slider-horizontal | checkbox | radio | square-button | menulist | listbox | meter | progress-bar | button" + }, + "composite-style": { + "syntax": "clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor" + }, + "compositing-operator": { + "syntax": "add | subtract | intersect | exclude" + }, + "compound-selector": { + "syntax": "[ ? * [ * ]* ]!" + }, + "compound-selector-list": { + "syntax": "#" + }, + "complex-selector": { + "syntax": " [ ? ]*" + }, + "complex-selector-list": { + "syntax": "#" + }, + "conic-gradient()": { + "syntax": "conic-gradient( [ from ]? [ at ]?, )" + }, + "contextual-alt-values": { + "syntax": "[ contextual | no-contextual ]" + }, + "content-distribution": { + "syntax": "space-between | space-around | space-evenly | stretch" + }, + "content-list": { + "syntax": "[ | contents | | | | | ]+" + }, + "content-position": { + "syntax": "center | start | end | flex-start | flex-end" + }, + "content-replacement": { + "syntax": "" + }, + "contrast()": { + "syntax": "contrast( [ ] )" + }, + "cos()": { + "syntax": "cos( )" + }, + "counter": { + "syntax": " | " + }, + "counter()": { + "syntax": "counter( , ? )" + }, + "counter-name": { + "syntax": "" + }, + "counter-style": { + "syntax": " | symbols()" + }, + "counter-style-name": { + "syntax": "" + }, + "counters()": { + "syntax": "counters( , , ? )" + }, + "cross-fade()": { + "syntax": "cross-fade( , ? )" + }, + "cubic-bezier-timing-function": { + "syntax": "ease | ease-in | ease-out | ease-in-out | cubic-bezier(, , , )" + }, + "deprecated-system-color": { + "syntax": "ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText" + }, + "discretionary-lig-values": { + "syntax": "[ discretionary-ligatures | no-discretionary-ligatures ]" + }, + "display-box": { + "syntax": "contents | none" + }, + "display-inside": { + "syntax": "flow | flow-root | table | flex | grid | ruby" + }, + "display-internal": { + "syntax": "table-row-group | table-header-group | table-footer-group | table-row | table-cell | table-column-group | table-column | table-caption | ruby-base | ruby-text | ruby-base-container | ruby-text-container" + }, + "display-legacy": { + "syntax": "inline-block | inline-list-item | inline-table | inline-flex | inline-grid" + }, + "display-listitem": { + "syntax": "? && [ flow | flow-root ]? && list-item" + }, + "display-outside": { + "syntax": "block | inline | run-in" + }, + "drop-shadow()": { + "syntax": "drop-shadow( {2,3} ? )" + }, + "east-asian-variant-values": { + "syntax": "[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]" + }, + "east-asian-width-values": { + "syntax": "[ full-width | proportional-width ]" + }, + "element()": { + "syntax": "element( )" + }, + "ellipse()": { + "syntax": "ellipse( [ {2} ]? [ at ]? )" + }, + "ending-shape": { + "syntax": "circle | ellipse" + }, + "env()": { + "syntax": "env( , ? )" + }, + "exp()": { + "syntax": "exp( )" + }, + "explicit-track-list": { + "syntax": "[ ? ]+ ?" + }, + "family-name": { + "syntax": " | +" + }, + "feature-tag-value": { + "syntax": " [ | on | off ]?" + }, + "feature-type": { + "syntax": "@stylistic | @historical-forms | @styleset | @character-variant | @swash | @ornaments | @annotation" + }, + "feature-value-block": { + "syntax": " '{' '}'" + }, + "feature-value-block-list": { + "syntax": "+" + }, + "feature-value-declaration": { + "syntax": ": +;" + }, + "feature-value-declaration-list": { + "syntax": "" + }, + "feature-value-name": { + "syntax": "" + }, + "fill-rule": { + "syntax": "nonzero | evenodd" + }, + "filter-function": { + "syntax": " | | | | | | | | | " + }, + "filter-function-list": { + "syntax": "[ | ]+" + }, + "final-bg-layer": { + "syntax": "<'background-color'> || || [ / ]? || || || || " + }, + "fixed-breadth": { + "syntax": "" + }, + "fixed-repeat": { + "syntax": "repeat( [ ] , [ ? ]+ ? )" + }, + "fixed-size": { + "syntax": " | minmax( , ) | minmax( , )" + }, + "font-stretch-absolute": { + "syntax": "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | " + }, + "font-variant-css21": { + "syntax": "[ normal | small-caps ]" + }, + "font-weight-absolute": { + "syntax": "normal | bold | " + }, + "frequency-percentage": { + "syntax": " | " + }, + "general-enclosed": { + "syntax": "[ ) ] | ( )" + }, + "generic-family": { + "syntax": "serif | sans-serif | cursive | fantasy | monospace" + }, + "generic-name": { + "syntax": "serif | sans-serif | cursive | fantasy | monospace" + }, + "geometry-box": { + "syntax": " | fill-box | stroke-box | view-box" + }, + "gradient": { + "syntax": " | | | | | " + }, + "grayscale()": { + "syntax": "grayscale( )" + }, + "grid-line": { + "syntax": "auto | | [ && ? ] | [ span && [ || ] ]" + }, + "historical-lig-values": { + "syntax": "[ historical-ligatures | no-historical-ligatures ]" + }, + "hsl()": { + "syntax": "hsl( [ / ]? ) | hsl( , , , ? )" + }, + "hsla()": { + "syntax": "hsla( [ / ]? ) | hsla( , , , ? )" + }, + "hue": { + "syntax": " | " + }, + "hue-rotate()": { + "syntax": "hue-rotate( )" + }, + "hue-interpolation-method": { + "syntax": "[ shorter | longer | increasing | decreasing ] hue" + }, + "hwb()": { + "syntax": "hwb( [ | none] [ | none] [ | none] [ / [ | none] ]? )" + }, + "hypot()": { + "syntax": "hypot( # )" + }, + "id-selector": { + "syntax": "" + }, + "image": { + "syntax": " | | | | | | " + }, + "image()": { + "syntax": "image( ? [ ? , ? ]! )" + }, + "image-set()": { + "syntax": "image-set( # )" + }, + "image-set-option": { + "syntax": "[ | ] [ || type() ]" + }, + "image-src": { + "syntax": " | " + }, + "image-tags": { + "syntax": "ltr | rtl" + }, + "inflexible-breadth": { + "syntax": " | min-content | max-content | auto" + }, + "inset()": { + "syntax": "inset( {1,4} [ round <'border-radius'> ]? )" + }, + "invert()": { + "syntax": "invert( )" + }, + "keyframes-name": { + "syntax": " | " + }, + "keyframe-block": { + "syntax": "# {\n \n}" + }, + "keyframe-block-list": { + "syntax": "+" + }, + "keyframe-selector": { + "syntax": "from | to | | " + }, + "lab()": { + "syntax": "lab( [ | | none] [ | | none] [ | | none] [ / [ | none] ]? )" + }, + "layer()": { + "syntax": "layer( )" + }, + "layer-name": { + "syntax": " [ '.' ]*" + }, + "lch()": { + "syntax": "lch( [ | | none] [ | | none] [ | none] [ / [ | none] ]? )" + }, + "leader()": { + "syntax": "leader( )" + }, + "leader-type": { + "syntax": "dotted | solid | space | " + }, + "length-percentage": { + "syntax": " | " + }, + "light-dark()": { + "syntax": "light-dark( , )" + }, + "line-names": { + "syntax": "'[' * ']'" + }, + "line-name-list": { + "syntax": "[ | ]+" + }, + "line-style": { + "syntax": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset" + }, + "line-width": { + "syntax": " | thin | medium | thick" + }, + "linear-color-hint": { + "syntax": "" + }, + "linear-color-stop": { + "syntax": " ?" + }, + "linear-gradient()": { + "syntax": "linear-gradient( [ [ | to ] || ]? , )" + }, + "log()": { + "syntax": "log( , ? )" + }, + "mask-layer": { + "syntax": " || [ / ]? || || || [ | no-clip ] || || " + }, + "mask-position": { + "syntax": "[ | left | center | right ] [ | top | center | bottom ]?" + }, + "mask-reference": { + "syntax": "none | | " + }, + "mask-source": { + "syntax": "" + }, + "masking-mode": { + "syntax": "alpha | luminance | match-source" + }, + "matrix()": { + "syntax": "matrix( #{6} )" + }, + "matrix3d()": { + "syntax": "matrix3d( #{16} )" + }, + "max()": { + "syntax": "max( # )" + }, + "media-and": { + "syntax": " [ and ]+" + }, + "media-condition": { + "syntax": " | | | " + }, + "media-condition-without-or": { + "syntax": " | | " + }, + "media-feature": { + "syntax": "( [ | | ] )" + }, + "media-in-parens": { + "syntax": "( ) | | " + }, + "media-not": { + "syntax": "not " + }, + "media-or": { + "syntax": " [ or ]+" + }, + "media-query": { + "syntax": " | [ not | only ]? [ and ]?" + }, + "media-query-list": { + "syntax": "#" + }, + "media-type": { + "syntax": "" + }, + "mf-boolean": { + "syntax": "" + }, + "mf-name": { + "syntax": "" + }, + "mf-plain": { + "syntax": " : " + }, + "mf-range": { + "syntax": " [ '<' | '>' ]? '='? \n| [ '<' | '>' ]? '='? \n| '<' '='? '<' '='? \n| '>' '='? '>' '='? " + }, + "mf-value": { + "syntax": " | | | " + }, + "min()": { + "syntax": "min( # )" + }, + "minmax()": { + "syntax": "minmax( [ | min-content | max-content | auto ] , [ | | min-content | max-content | auto ] )" + }, + "mod()": { + "syntax": "mod( , )" + }, + "name-repeat": { + "syntax": "repeat( [ | auto-fill ], + )" + }, + "named-color": { + "syntax": "transparent | aliceblue | antiquewhite | aqua | aquamarine | azure | beige | bisque | black | blanchedalmond | blue | blueviolet | brown | burlywood | cadetblue | chartreuse | chocolate | coral | cornflowerblue | cornsilk | crimson | cyan | darkblue | darkcyan | darkgoldenrod | darkgray | darkgreen | darkgrey | darkkhaki | darkmagenta | darkolivegreen | darkorange | darkorchid | darkred | darksalmon | darkseagreen | darkslateblue | darkslategray | darkslategrey | darkturquoise | darkviolet | deeppink | deepskyblue | dimgray | dimgrey | dodgerblue | firebrick | floralwhite | forestgreen | fuchsia | gainsboro | ghostwhite | gold | goldenrod | gray | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | lightpink | lightsalmon | lightseagreen | lightskyblue | lightslategray | lightslategrey | lightsteelblue | lightyellow | lime | limegreen | linen | magenta | maroon | mediumaquamarine | mediumblue | mediumorchid | mediumpurple | mediumseagreen | mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | midnightblue | mintcream | mistyrose | moccasin | navajowhite | navy | oldlace | olive | olivedrab | orange | orangered | orchid | palegoldenrod | palegreen | paleturquoise | palevioletred | papayawhip | peachpuff | peru | pink | plum | powderblue | purple | rebeccapurple | red | rosybrown | royalblue | saddlebrown | salmon | sandybrown | seagreen | seashell | sienna | silver | skyblue | slateblue | slategray | slategrey | snow | springgreen | steelblue | tan | teal | thistle | tomato | turquoise | violet | wheat | white | whitesmoke | yellow | yellowgreen" + }, + "namespace-prefix": { + "syntax": "" + }, + "ns-prefix": { + "syntax": "[ | '*' ]? '|'" + }, + "number-percentage": { + "syntax": " | " + }, + "numeric-figure-values": { + "syntax": "[ lining-nums | oldstyle-nums ]" + }, + "numeric-fraction-values": { + "syntax": "[ diagonal-fractions | stacked-fractions ]" + }, + "numeric-spacing-values": { + "syntax": "[ proportional-nums | tabular-nums ]" + }, + "nth": { + "syntax": " | even | odd" + }, + "opacity()": { + "syntax": "opacity( [ ] )" + }, + "overflow-position": { + "syntax": "unsafe | safe" + }, + "outline-radius": { + "syntax": " | " + }, + "page-body": { + "syntax": "? [ ; ]? | " + }, + "page-margin-box": { + "syntax": " '{' '}'" + }, + "page-margin-box-type": { + "syntax": "@top-left-corner | @top-left | @top-center | @top-right | @top-right-corner | @bottom-left-corner | @bottom-left | @bottom-center | @bottom-right | @bottom-right-corner | @left-top | @left-middle | @left-bottom | @right-top | @right-middle | @right-bottom" + }, + "page-selector-list": { + "syntax": "[ # ]?" + }, + "page-selector": { + "syntax": "+ | *" + }, + "page-size": { + "syntax": "A5 | A4 | A3 | B5 | B4 | JIS-B5 | JIS-B4 | letter | legal | ledger" + }, + "path()": { + "syntax": "path( [ , ]? )" + }, + "paint()": { + "syntax": "paint( , ? )" + }, + "perspective()": { + "syntax": "perspective( [ | none ] )" + }, + "polygon()": { + "syntax": "polygon( ? , [ ]# )" + }, + "polar-color-space": { + "syntax": "hsl | hwb | lch | oklch" + }, + "position": { + "syntax": "[ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | ] [ top | center | bottom | ]? | [ [ left | right ] ] && [ [ top | bottom ] ] ]" + }, + "pow()": { + "syntax": "pow( , )" + }, + "pseudo-class-selector": { + "syntax": "':' | ':' ')'" + }, + "pseudo-element-selector": { + "syntax": "':' " + }, + "pseudo-page": { + "syntax": ": [ left | right | first | blank ]" + }, + "quote": { + "syntax": "open-quote | close-quote | no-open-quote | no-close-quote" + }, + "radial-gradient()": { + "syntax": "radial-gradient( [ || ]? [ at ]? , )" + }, + "ratio": { + "syntax": " [ / ]?" + }, + "ray()": { + "syntax": "ray( && ? && contain? && [at ]? )" + }, + "ray-size": { + "syntax": "closest-side | closest-corner | farthest-side | farthest-corner | sides" + }, + "rectangular-color-space": { + "syntax": "srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65" + }, + "relative-selector": { + "syntax": "? " + }, + "relative-selector-list": { + "syntax": "#" + }, + "relative-size": { + "syntax": "larger | smaller" + }, + "rem()": { + "syntax": "rem( , )" + }, + "repeat-style": { + "syntax": "repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}" + }, + "repeating-conic-gradient()": { + "syntax": "repeating-conic-gradient( [ from ]? [ at ]?, )" + }, + "repeating-linear-gradient()": { + "syntax": "repeating-linear-gradient( [ | to ]? , )" + }, + "repeating-radial-gradient()": { + "syntax": "repeating-radial-gradient( [ || ]? [ at ]? , )" + }, + "reversed-counter-name": { + "syntax": "reversed( )" + }, + "rgb()": { + "syntax": "rgb( {3} [ / ]? ) | rgb( {3} [ / ]? ) | rgb( #{3} , ? ) | rgb( #{3} , ? )" + }, + "rgba()": { + "syntax": "rgba( {3} [ / ]? ) | rgba( {3} [ / ]? ) | rgba( #{3} , ? ) | rgba( #{3} , ? )" + }, + "rotate()": { + "syntax": "rotate( [ | ] )" + }, + "rotate3d()": { + "syntax": "rotate3d( , , , [ | ] )" + }, + "rotateX()": { + "syntax": "rotateX( [ | ] )" + }, + "rotateY()": { + "syntax": "rotateY( [ | ] )" + }, + "rotateZ()": { + "syntax": "rotateZ( [ | ] )" + }, + "round()": { + "syntax": "round( ?, , )" + }, + "rounding-strategy": { + "syntax": "nearest | up | down | to-zero" + }, + "saturate()": { + "syntax": "saturate( )" + }, + "scale()": { + "syntax": "scale( [ | ]#{1,2} )" + }, + "scale3d()": { + "syntax": "scale3d( [ | ]#{3} )" + }, + "scaleX()": { + "syntax": "scaleX( [ | ] )" + }, + "scaleY()": { + "syntax": "scaleY( [ | ] )" + }, + "scaleZ()": { + "syntax": "scaleZ( [ | ] )" + }, + "scroll()": { + "syntax": "scroll( [ || ]? )" + }, + "scroller": { + "syntax": "root | nearest | self" + }, + "self-position": { + "syntax": "center | start | end | self-start | self-end | flex-start | flex-end" + }, + "shape-radius": { + "syntax": " | closest-side | farthest-side" + }, + "sign()": { + "syntax": "sign( )" + }, + "skew()": { + "syntax": "skew( [ | ] , [ | ]? )" + }, + "skewX()": { + "syntax": "skewX( [ | ] )" + }, + "skewY()": { + "syntax": "skewY( [ | ] )" + }, + "sepia()": { + "syntax": "sepia( )" + }, + "shadow": { + "syntax": "inset? && {2,4} && ?" + }, + "shadow-t": { + "syntax": "[ {2,3} && ? ]" + }, + "shape": { + "syntax": "rect(, , , )" + }, + "shape-box": { + "syntax": " | margin-box" + }, + "side-or-corner": { + "syntax": "[ left | right ] || [ top | bottom ]" + }, + "sin()": { + "syntax": "sin( )" + }, + "single-animation": { + "syntax": "<'animation-duration'> || || <'animation-delay'> || || || || || [ none | ] || " + }, + "single-animation-direction": { + "syntax": "normal | reverse | alternate | alternate-reverse" + }, + "single-animation-fill-mode": { + "syntax": "none | forwards | backwards | both" + }, + "single-animation-iteration-count": { + "syntax": "infinite | " + }, + "single-animation-play-state": { + "syntax": "running | paused" + }, + "single-animation-timeline": { + "syntax": "auto | none | | | " + }, + "single-transition": { + "syntax": "[ none | ] ||