{
  "note": "What a style rule may contain. Read by src/Css/Rules.php and packages/core/src/rules.js — one file, so the two cannot drift.\n\nProperty names are judged by a pattern and a short deny list rather than an allow list. A property name cannot execute anything; everything that can is in the value, and values are held to the function list below with url() refused outright. An allow list of names would add nothing to that, while every name missing from it would silently drop a legitimate declaration from someone's design.\n\nThe denied names are the legacy binding properties, whose payload is a URL, and @font-face's src. They are listed for the avoidance of doubt: url() is already refused, so none of them has a usable payload.\n\noutsideProperties is what a rule may set on the document element itself — the two things a design legitimately needs to do outside its own root: define custom properties, and make room for a part of itself that is pinned to the viewport. Everything else aimed outside the design is contained by its root, where it is inert.",
  "propertyPattern": "^(?:-(?:webkit|moz|ms|o)-)?[a-z][a-z0-9-]*$",
  "customPropertyPattern": "^--[A-Za-z0-9_-]+$",
  "deniedProperties": [
    "behavior",
    "-moz-binding",
    "-ms-behavior",
    "-o-link",
    "-o-link-source",
    "src"
  ],
  "functions": [
    "blur",
    "brightness",
    "calc",
    "circle",
    "clamp",
    "color",
    "color-mix",
    "conic-gradient",
    "contrast",
    "counter",
    "counters",
    "cubic-bezier",
    "drop-shadow",
    "ellipse",
    "env",
    "fit-content",
    "grayscale",
    "hsl",
    "hsla",
    "hue-rotate",
    "hwb",
    "inset",
    "invert",
    "lab",
    "lch",
    "light-dark",
    "linear",
    "linear-gradient",
    "matrix",
    "matrix3d",
    "max",
    "min",
    "minmax",
    "oklab",
    "oklch",
    "opacity",
    "path",
    "perspective",
    "polygon",
    "radial-gradient",
    "repeat",
    "repeating-conic-gradient",
    "repeating-linear-gradient",
    "repeating-radial-gradient",
    "rgb",
    "rgba",
    "rotate",
    "rotate3d",
    "rotatex",
    "rotatey",
    "rotatez",
    "saturate",
    "scale",
    "scale3d",
    "scalex",
    "scaley",
    "scalez",
    "sepia",
    "skew",
    "skewx",
    "skewy",
    "steps",
    "translate",
    "translate3d",
    "translatex",
    "translatey",
    "translatez",
    "var"
  ],
  "selectorFunctions": [
    "dir",
    "has",
    "host",
    "is",
    "lang",
    "not",
    "nth-child",
    "nth-last-child",
    "nth-last-of-type",
    "nth-of-type",
    "slotted",
    "where"
  ],
  "outsideProperties": [
    "box-sizing",
    "margin",
    "margin-block",
    "margin-block-end",
    "margin-block-start",
    "margin-bottom",
    "margin-inline",
    "margin-inline-end",
    "margin-inline-start",
    "margin-left",
    "margin-right",
    "margin-top",
    "overscroll-behavior",
    "overscroll-behavior-x",
    "overscroll-behavior-y",
    "padding",
    "padding-block",
    "padding-block-end",
    "padding-block-start",
    "padding-bottom",
    "padding-inline",
    "padding-inline-end",
    "padding-inline-start",
    "padding-left",
    "padding-right",
    "padding-top",
    "scroll-behavior",
    "scroll-margin",
    "scroll-margin-bottom",
    "scroll-margin-left",
    "scroll-margin-right",
    "scroll-margin-top",
    "scroll-padding",
    "scroll-padding-bottom",
    "scroll-padding-left",
    "scroll-padding-right",
    "scroll-padding-top"
  ]
}
