Fix code quality violations and exclude Manifest from checks

Document application modes (development/debug/production)
Add global file drop handler, order column normalization, SPA hash fix
Serve CDN assets via /_vendor/ URLs instead of merging into bundles
Add production minification with license preservation
Improve JSON formatting for debugging and production optimization
Add CDN asset caching with CSS URL inlining for production builds
Add three-mode system (development, debug, production)
Update Manifest CLAUDE.md to reflect helper class architecture
Refactor Manifest.php into helper classes for better organization
Pre-manifest-refactor checkpoint: Add app_mode documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-01-14 10:38:22 +00:00
parent bb9046af1b
commit d523f0f600
2355 changed files with 231384 additions and 32223 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,393 +0,0 @@
export const properties = [
"all",
"-webkit-line-clamp",
"-webkit-text-fill-color",
"-webkit-text-stroke",
"-webkit-text-stroke-color",
"-webkit-text-stroke-width",
"accent-color",
"align-content",
"align-items",
"align-self",
"animation",
"animation-delay",
"animation-direction",
"animation-duration",
"animation-fill-mode",
"animation-iteration-count",
"animation-name",
"animation-play-state",
"animation-timing-function",
"appearance",
"ascent-override",
"aspect-ratio",
"backdrop-filter",
"backface-visibility",
"background",
"background-attachment",
"background-blend-mode",
"background-clip",
"background-color",
"background-image",
"background-origin",
"background-position",
"background-position-x",
"background-position-y",
"background-repeat",
"background-size",
"block-size",
"border",
"border-block",
"border-block-color",
"border-block-end",
"border-block-end-color",
"border-block-end-style",
"border-block-end-width",
"border-block-start",
"border-block-start-color",
"border-block-start-style",
"border-block-start-width",
"border-block-style",
"border-block-width",
"border-bottom",
"border-bottom-color",
"border-bottom-left-radius",
"border-bottom-right-radius",
"border-bottom-style",
"border-bottom-width",
"border-collapse",
"border-color",
"border-end-end-radius",
"border-end-start-radius",
"border-image",
"border-image-outset",
"border-image-repeat",
"border-image-slice",
"border-image-source",
"border-image-width",
"border-inline",
"border-inline-color",
"border-inline-end",
"border-inline-end-color",
"border-inline-end-style",
"border-inline-end-width",
"border-inline-start",
"border-inline-start-color",
"border-inline-start-style",
"border-inline-start-width",
"border-inline-style",
"border-inline-width",
"border-left",
"border-left-color",
"border-left-style",
"border-left-width",
"border-radius",
"border-right",
"border-right-color",
"border-right-style",
"border-right-width",
"border-spacing",
"border-start-end-radius",
"border-start-start-radius",
"border-style",
"border-top",
"border-top-color",
"border-top-left-radius",
"border-top-right-radius",
"border-top-style",
"border-top-width",
"border-width",
"bottom",
"box-decoration-break",
"box-shadow",
"box-sizing",
"break-after",
"break-before",
"break-inside",
"caption-side",
"caret-color",
"clear",
"clip-path",
"color",
"color-scheme",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-color",
"column-rule-style",
"column-rule-width",
"column-span",
"column-width",
"columns",
"contain",
"contain-intrinsic-height",
"contain-intrinsic-size",
"contain-intrinsic-width",
"container",
"container-name",
"container-type",
"content",
"content-visibility",
"counter-increment",
"counter-reset",
"counter-set",
"cursor",
"descent-override",
"direction",
"display",
"empty-cells",
"filter",
"flex",
"flex-basis",
"flex-direction",
"flex-flow",
"flex-grow",
"flex-shrink",
"flex-wrap",
"float",
"font",
"font-display",
"font-family",
"font-kerning",
"font-language-override",
"font-optical-sizing",
"font-palette",
"font-size",
"font-size-adjust",
"font-stretch",
"font-style",
"font-synthesis",
"font-variant",
"font-variant-alternates",
"font-variant-caps",
"font-variant-east-asian",
"font-variant-emoji",
"font-variant-ligatures",
"font-variant-numeric",
"font-variant-position",
"font-variation-settings",
"font-weight",
"forced-color-adjust",
"gap",
"grid",
"grid-area",
"grid-auto-columns",
"grid-auto-flow",
"grid-auto-rows",
"grid-column",
"grid-column-end",
"grid-column-start",
"grid-row",
"grid-row-end",
"grid-row-start",
"grid-template",
"grid-template-areas",
"grid-template-columns",
"grid-template-rows",
"hanging-punctuation",
"height",
"hyphenate-character",
"hyphens",
"image-orientation",
"image-rendering",
"inline-size",
"inset",
"inset-block",
"inset-block-end",
"inset-block-start",
"inset-inline",
"inset-inline-end",
"inset-inline-start",
"isolation",
"justify-content",
"justify-items",
"justify-self",
"left",
"letter-spacing",
"line-break",
"line-gap-override",
"line-height",
"list-style",
"list-style-image",
"list-style-position",
"list-style-type",
"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",
"mask",
"mask-border",
"mask-border-outset",
"mask-border-repeat",
"mask-border-slice",
"mask-border-source",
"mask-border-width",
"mask-clip",
"mask-composite",
"mask-image",
"mask-mode",
"mask-origin",
"mask-position",
"mask-repeat",
"mask-size",
"mask-type",
"max-block-size",
"max-height",
"max-inline-size",
"max-width",
"min-block-size",
"min-height",
"min-inline-size",
"min-width",
"mix-blend-mode",
"object-fit",
"object-position",
"offset",
"offset-anchor",
"offset-distance",
"offset-path",
"offset-rotate",
"opacity",
"order",
"orphans",
"outline",
"outline-color",
"outline-offset",
"outline-style",
"outline-width",
"overflow",
"overflow-anchor",
"overflow-block",
"overflow-clip-margin",
"overflow-inline",
"overflow-wrap",
"overflow-x",
"overflow-y",
"overscroll-behavior",
"overscroll-behavior-block",
"overscroll-behavior-inline",
"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",
"page",
"page-break-after",
"page-break-before",
"page-break-inside",
"paint-order",
"perspective",
"perspective-origin",
"place-content",
"place-items",
"place-self",
"pointer-events",
"position",
"print-color-adjust",
"quotes",
"resize",
"right",
"rotate",
"row-gap",
"ruby-position",
"scale",
"scroll-behavior",
"scroll-margin",
"scroll-margin-block",
"scroll-margin-block-end",
"scroll-margin-block-start",
"scroll-margin-bottom",
"scroll-margin-inline",
"scroll-margin-inline-end",
"scroll-margin-inline-start",
"scroll-margin-left",
"scroll-margin-right",
"scroll-margin-top",
"scroll-padding",
"scroll-padding-block",
"scroll-padding-block-end",
"scroll-padding-block-start",
"scroll-padding-bottom",
"scroll-padding-inline",
"scroll-padding-inline-end",
"scroll-padding-inline-start",
"scroll-padding-left",
"scroll-padding-right",
"scroll-padding-top",
"scroll-snap-align",
"scroll-snap-stop",
"scroll-snap-type",
"scrollbar-color",
"scrollbar-gutter",
"scrollbar-width",
"shape-image-threshold",
"shape-margin",
"shape-outside",
"size-adjust",
"src",
"tab-size",
"table-layout",
"text-align",
"text-align-last",
"text-combine-upright",
"text-decoration",
"text-decoration-color",
"text-decoration-line",
"text-decoration-skip-ink",
"text-decoration-style",
"text-decoration-thickness",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-position",
"text-emphasis-style",
"text-indent",
"text-justify",
"text-orientation",
"text-overflow",
"text-rendering",
"text-shadow",
"text-transform",
"text-underline-offset",
"text-underline-position",
"top",
"touch-action",
"transform",
"transform-box",
"transform-origin",
"transform-style",
"transition",
"transition-delay",
"transition-duration",
"transition-property",
"transition-timing-function",
"translate",
"unicode-bidi",
"unicode-range",
"user-select",
"vertical-align",
"visibility",
"white-space",
"widows",
"width",
"will-change",
"word-break",
"word-spacing",
"writing-mode",
"z-index"
]

View File

@@ -1,397 +0,0 @@
export const properties = [
"all",
"display",
"position",
"top",
"right",
"bottom",
"left",
"offset",
"offset-anchor",
"offset-distance",
"offset-path",
"offset-rotate",
"grid",
"grid-template-rows",
"grid-template-columns",
"grid-template-areas",
"grid-auto-rows",
"grid-auto-columns",
"grid-auto-flow",
"column-gap",
"row-gap",
"grid-area",
"grid-row",
"grid-row-start",
"grid-row-end",
"grid-column",
"grid-column-start",
"grid-column-end",
"grid-template",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"flex-direction",
"flex-flow",
"flex-wrap",
"box-decoration-break",
"place-content",
"align-content",
"justify-content",
"place-items",
"align-items",
"justify-items",
"place-self",
"align-self",
"justify-self",
"vertical-align",
"order",
"float",
"clear",
"shape-margin",
"shape-outside",
"shape-image-threshold",
"orphans",
"gap",
"columns",
"column-fill",
"column-rule",
"column-rule-width",
"column-rule-style",
"column-rule-color",
"column-width",
"column-span",
"column-count",
"break-before",
"break-after",
"break-inside",
"page",
"page-break-before",
"page-break-after",
"page-break-inside",
"transform",
"transform-box",
"transform-origin",
"transform-style",
"translate",
"rotate",
"scale",
"perspective",
"perspective-origin",
"appearance",
"visibility",
"content-visibility",
"opacity",
"z-index",
"paint-order",
"mix-blend-mode",
"backface-visibility",
"backdrop-filter",
"clip-path",
"mask",
"mask-border",
"mask-border-outset",
"mask-border-repeat",
"mask-border-slice",
"mask-border-source",
"mask-border-width",
"mask-image",
"mask-mode",
"mask-position",
"mask-size",
"mask-repeat",
"mask-origin",
"mask-clip",
"mask-composite",
"mask-type",
"filter",
"animation",
"animation-duration",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"animation-play-state",
"animation-name",
"transition",
"transition-delay",
"transition-duration",
"transition-property",
"transition-timing-function",
"will-change",
"counter-increment",
"counter-reset",
"counter-set",
"cursor",
"box-sizing",
"contain",
"contain-intrinsic-height",
"contain-intrinsic-size",
"contain-intrinsic-width",
"container",
"container-name",
"container-type",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"margin-inline",
"margin-inline-start",
"margin-inline-end",
"margin-block",
"margin-block-start",
"margin-block-end",
"inset",
"inset-block",
"inset-block-end",
"inset-block-start",
"inset-inline",
"inset-inline-end",
"inset-inline-start",
"outline",
"outline-color",
"outline-style",
"outline-width",
"outline-offset",
"box-shadow",
"border",
"border-top",
"border-right",
"border-bottom",
"border-left",
"border-width",
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width",
"border-style",
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style",
"border-color",
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color",
"border-radius",
"border-top-right-radius",
"border-top-left-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-inline",
"border-inline-width",
"border-inline-style",
"border-inline-color",
"border-inline-start",
"border-inline-start-width",
"border-inline-start-style",
"border-inline-start-color",
"border-inline-end",
"border-inline-end-width",
"border-inline-end-style",
"border-inline-end-color",
"border-block",
"border-block-width",
"border-block-style",
"border-block-color",
"border-block-start",
"border-block-start-width",
"border-block-start-style",
"border-block-start-color",
"border-block-end",
"border-block-end-width",
"border-block-end-style",
"border-block-end-color",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-collapse",
"border-spacing",
"border-start-start-radius",
"border-start-end-radius",
"border-end-start-radius",
"border-end-end-radius",
"background",
"background-image",
"background-position",
"background-size",
"background-repeat",
"background-origin",
"background-clip",
"background-attachment",
"background-color",
"background-blend-mode",
"background-position-x",
"background-position-y",
"isolation",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"padding-inline",
"padding-inline-start",
"padding-inline-end",
"padding-block",
"padding-block-start",
"padding-block-end",
"image-orientation",
"image-rendering",
"aspect-ratio",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"-webkit-line-clamp",
"-webkit-text-fill-color",
"-webkit-text-stroke",
"-webkit-text-stroke-color",
"-webkit-text-stroke-width",
"inline-size",
"min-inline-size",
"max-inline-size",
"block-size",
"min-block-size",
"max-block-size",
"table-layout",
"caption-side",
"empty-cells",
"overflow",
"overflow-anchor",
"overflow-block",
"overflow-clip-margin",
"overflow-inline",
"overflow-x",
"overflow-y",
"overscroll-behavior",
"overscroll-behavior-block",
"overscroll-behavior-inline",
"overscroll-behavior-x",
"overscroll-behavior-y",
"resize",
"object-fit",
"object-position",
"scroll-behavior",
"scroll-margin",
"scroll-margin-block",
"scroll-margin-block-end",
"scroll-margin-block-start",
"scroll-margin-bottom",
"scroll-margin-inline",
"scroll-margin-inline-end",
"scroll-margin-inline-start",
"scroll-margin-left",
"scroll-margin-right",
"scroll-margin-top",
"scroll-padding",
"scroll-padding-block",
"scroll-padding-block-end",
"scroll-padding-block-start",
"scroll-padding-bottom",
"scroll-padding-inline",
"scroll-padding-inline-end",
"scroll-padding-inline-start",
"scroll-padding-left",
"scroll-padding-right",
"scroll-padding-top",
"scroll-snap-align",
"scroll-snap-stop",
"scroll-snap-type",
"scrollbar-color",
"scrollbar-gutter",
"scrollbar-width",
"touch-action",
"pointer-events",
"content",
"quotes",
"hanging-punctuation",
"color",
"accent-color",
"print-color-adjust",
"forced-color-adjust",
"color-scheme",
"caret-color",
"font",
"font-style",
"font-variant",
"font-weight",
"font-stretch",
"font-size",
"size-adjust",
"line-height",
"src",
"font-family",
"font-display",
"font-kerning",
"font-language-override",
"font-optical-sizing",
"font-palette",
"font-size-adjust",
"font-synthesis",
"font-variant-alternates",
"font-variant-caps",
"font-variant-east-asian",
"font-variant-emoji",
"font-variant-ligatures",
"font-variant-numeric",
"font-variant-position",
"font-variation-settings",
"ascent-override",
"descent-override",
"line-gap-override",
"hyphens",
"hyphenate-character",
"letter-spacing",
"line-break",
"list-style",
"list-style-type",
"list-style-image",
"list-style-position",
"writing-mode",
"direction",
"unicode-bidi",
"unicode-range",
"user-select",
"ruby-position",
"text-combine-upright",
"text-align",
"text-align-last",
"text-decoration",
"text-decoration-line",
"text-decoration-style",
"text-decoration-color",
"text-decoration-thickness",
"text-decoration-skip-ink",
"text-emphasis",
"text-emphasis-style",
"text-emphasis-color",
"text-emphasis-position",
"text-indent",
"text-justify",
"text-underline-position",
"text-underline-offset",
"text-orientation",
"text-overflow",
"text-rendering",
"text-shadow",
"text-transform",
"white-space",
"word-break",
"word-spacing",
"overflow-wrap",
"tab-size",
"widows"
]

View File

@@ -1,399 +0,0 @@
export const properties = [
"all",
"box-sizing",
"contain",
"contain-intrinsic-height",
"contain-intrinsic-size",
"contain-intrinsic-width",
"container",
"container-name",
"container-type",
"display",
"appearance",
"visibility",
"content-visibility",
"z-index",
"paint-order",
"position",
"top",
"right",
"bottom",
"left",
"offset",
"offset-anchor",
"offset-distance",
"offset-path",
"offset-rotate",
"grid",
"grid-template-rows",
"grid-template-columns",
"grid-template-areas",
"grid-auto-rows",
"grid-auto-columns",
"grid-auto-flow",
"column-gap",
"row-gap",
"grid-area",
"grid-row",
"grid-row-start",
"grid-row-end",
"grid-column",
"grid-column-start",
"grid-column-end",
"grid-template",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"flex-direction",
"flex-flow",
"flex-wrap",
"box-decoration-break",
"place-content",
"place-items",
"place-self",
"align-content",
"align-items",
"align-self",
"justify-content",
"justify-items",
"justify-self",
"order",
"aspect-ratio",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"-webkit-line-clamp",
"-webkit-text-fill-color",
"-webkit-text-stroke",
"-webkit-text-stroke-color",
"-webkit-text-stroke-width",
"inline-size",
"min-inline-size",
"max-inline-size",
"block-size",
"min-block-size",
"max-block-size",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"margin-inline",
"margin-inline-start",
"margin-inline-end",
"margin-block",
"margin-block-start",
"margin-block-end",
"inset",
"inset-block",
"inset-block-end",
"inset-block-start",
"inset-inline",
"inset-inline-end",
"inset-inline-start",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"padding-inline",
"padding-inline-start",
"padding-inline-end",
"padding-block",
"padding-block-start",
"padding-block-end",
"float",
"clear",
"overflow",
"overflow-anchor",
"overflow-block",
"overflow-clip-margin",
"overflow-inline",
"overflow-x",
"overflow-y",
"overscroll-behavior",
"overscroll-behavior-block",
"overscroll-behavior-inline",
"overscroll-behavior-x",
"overscroll-behavior-y",
"orphans",
"gap",
"columns",
"column-fill",
"column-rule",
"column-rule-color",
"column-rule-style",
"column-rule-width",
"column-span",
"column-count",
"column-width",
"object-fit",
"object-position",
"transform",
"transform-box",
"transform-origin",
"transform-style",
"translate",
"rotate",
"scale",
"border",
"border-top",
"border-right",
"border-bottom",
"border-left",
"border-width",
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width",
"border-style",
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style",
"border-radius",
"border-top-right-radius",
"border-top-left-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-inline",
"border-inline-color",
"border-inline-style",
"border-inline-width",
"border-inline-start",
"border-inline-start-color",
"border-inline-start-style",
"border-inline-start-width",
"border-inline-end",
"border-inline-end-color",
"border-inline-end-style",
"border-inline-end-width",
"border-block",
"border-block-color",
"border-block-style",
"border-block-width",
"border-block-start",
"border-block-start-color",
"border-block-start-style",
"border-block-start-width",
"border-block-end",
"border-block-end-color",
"border-block-end-style",
"border-block-end-width",
"border-color",
"border-image",
"border-image-outset",
"border-image-repeat",
"border-image-slice",
"border-image-source",
"border-image-width",
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color",
"border-collapse",
"border-spacing",
"border-start-start-radius",
"border-start-end-radius",
"border-end-start-radius",
"border-end-end-radius",
"outline",
"outline-color",
"outline-style",
"outline-width",
"outline-offset",
"backdrop-filter",
"backface-visibility",
"background",
"background-image",
"background-position",
"background-size",
"background-repeat",
"background-origin",
"background-clip",
"background-attachment",
"background-color",
"background-blend-mode",
"background-position-x",
"background-position-y",
"box-shadow",
"isolation",
"content",
"quotes",
"hanging-punctuation",
"color",
"accent-color",
"print-color-adjust",
"forced-color-adjust",
"color-scheme",
"caret-color",
"font",
"font-style",
"font-variant",
"font-weight",
"src",
"font-stretch",
"font-size",
"size-adjust",
"line-height",
"font-family",
"font-display",
"font-kerning",
"font-language-override",
"font-optical-sizing",
"font-palette",
"font-size-adjust",
"font-synthesis",
"font-variant-alternates",
"font-variant-caps",
"font-variant-east-asian",
"font-variant-emoji",
"font-variant-ligatures",
"font-variant-numeric",
"font-variant-position",
"font-variation-settings",
"ascent-override",
"descent-override",
"line-gap-override",
"hyphens",
"hyphenate-character",
"letter-spacing",
"line-break",
"list-style",
"list-style-image",
"list-style-position",
"list-style-type",
"direction",
"text-align",
"text-align-last",
"text-decoration",
"text-decoration-line",
"text-decoration-style",
"text-decoration-color",
"text-decoration-thickness",
"text-decoration-skip-ink",
"text-emphasis",
"text-emphasis-style",
"text-emphasis-color",
"text-emphasis-position",
"text-indent",
"text-justify",
"text-underline-position",
"text-underline-offset",
"text-orientation",
"text-overflow",
"text-rendering",
"text-shadow",
"text-transform",
"vertical-align",
"white-space",
"word-break",
"word-spacing",
"overflow-wrap",
"animation",
"animation-duration",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"animation-play-state",
"animation-name",
"mix-blend-mode",
"break-before",
"break-after",
"break-inside",
"page",
"page-break-before",
"page-break-after",
"page-break-inside",
"caption-side",
"clip-path",
"counter-increment",
"counter-reset",
"counter-set",
"cursor",
"empty-cells",
"filter",
"image-orientation",
"image-rendering",
"mask",
"mask-border",
"mask-border-outset",
"mask-border-repeat",
"mask-border-slice",
"mask-border-source",
"mask-border-width",
"mask-clip",
"mask-composite",
"mask-image",
"mask-mode",
"mask-origin",
"mask-position",
"mask-repeat",
"mask-size",
"mask-type",
"opacity",
"perspective",
"perspective-origin",
"pointer-events",
"resize",
"scroll-behavior",
"scroll-margin",
"scroll-margin-block",
"scroll-margin-block-end",
"scroll-margin-block-start",
"scroll-margin-bottom",
"scroll-margin-inline",
"scroll-margin-inline-end",
"scroll-margin-inline-start",
"scroll-margin-left",
"scroll-margin-right",
"scroll-margin-top",
"scroll-padding",
"scroll-padding-block",
"scroll-padding-block-end",
"scroll-padding-block-start",
"scroll-padding-bottom",
"scroll-padding-inline",
"scroll-padding-inline-end",
"scroll-padding-inline-start",
"scroll-padding-left",
"scroll-padding-right",
"scroll-padding-top",
"scroll-snap-align",
"scroll-snap-stop",
"scroll-snap-type",
"scrollbar-color",
"scrollbar-gutter",
"scrollbar-width",
"shape-image-threshold",
"shape-margin",
"shape-outside",
"tab-size",
"table-layout",
"ruby-position",
"text-combine-upright",
"touch-action",
"transition",
"transition-delay",
"transition-duration",
"transition-property",
"transition-timing-function",
"will-change",
"unicode-bidi",
"unicode-range",
"user-select",
"widows",
"writing-mode"
]

View File

@@ -1,45 +1,48 @@
{
"name": "css-declaration-sorter",
"version": "6.4.1",
"version": "7.3.1",
"description": "Sorts CSS declarations fast and automatically in a certain order.",
"type": "module",
"main": "./dist/main.cjs",
"exports": {
"import": "./src/main.mjs",
"require": "./dist/main.cjs"
"import": {
"types": "./src/core/main.d.mts",
"default": "./src/core/main.mjs"
},
"require": {
"types": "./src/core/main.d.cts",
"default": "./dist/main.cjs"
}
},
"types": "./src/main.d.ts",
"types": "./src/core/main.d.cts",
"main": "./dist/main.cjs",
"files": [
"src/main.mjs",
"src/main.d.ts",
"src/shorthand-data.mjs",
"src/bubble-sort.mjs",
"orders",
"dist"
"src/core/",
"src/orders/",
"dist/"
],
"scripts": {
"build": "rollup -c",
"preversion": "npm test",
"test": "uvu src .+\\.test\\.mjs",
"test:ci": "npm test && npm run lint -- --max-warnings 0",
"lint": "eslint src/*.mjs",
"scrape": "node --experimental-import-meta-resolve src/property-scraper.mjs",
"lint": "eslint src/core/*.mjs",
"scrape": "node src/property-scraper.mjs",
"prepack": "npm run build"
},
"devDependencies": {
"@mdn/browser-compat-data": "^5.2.23",
"@rollup/plugin-dynamic-import-vars": "^2.0.2",
"@rollup/plugin-replace": "^5.0.2",
"eslint": "^8.35.0",
"postcss": "^8.4.18",
"rollup": "^3.15.0",
"@eslint/js": "^9.35.0",
"@mdn/browser-compat-data": "^7.1.7",
"@rollup/plugin-dynamic-import-vars": "^2.1.5",
"eslint": "^9.35.0",
"postcss": "^8.5.6",
"rollup": "^4.52.4",
"uvu": "^0.5.6"
},
"peerDependencies": {
"postcss": "^8.0.9"
},
"engines": {
"node": "^10 || ^12 || >=14"
"node": "^14 || ^16 || >=18"
},
"repository": {
"type": "git",

View File

@@ -58,6 +58,18 @@ body {
4. Dimensions
5. Text
- [Frakto](https://github.com/fraktodev/frakto-css-order)
`frakto`
*Order from the outermost layout and positioning rules, moving inward through structure, style, and interaction — inspired by the browsers render tree.*
1. Positioning
2. Box Model
3. Layout
4. Typography
5. Visual
6. Transform
7. Interaction
8. Miscellaneous
## Usage
Following the PostCSS plugin guidelines, this package depends on PostCSS as a peer dependency:
`npm install postcss css-declaration-sorter --save-dev`

View File

@@ -18,7 +18,7 @@ declare const cssDeclarationSorter: PluginCreator<{
export = cssDeclarationSorter;
type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss';
type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss' | 'frakto';
/**
* This function receives two declaration property names and is expected

View File

@@ -0,0 +1,27 @@
import type { PluginCreator } from 'postcss';
export const cssDeclarationSorter: PluginCreator<{
/**
Provide the name of one of the built-in sort orders or a comparison function that is passed to `Array.sort`.
@default 'alphabetical'
*/
order?: SortOrder | SortFunction | undefined;
/**
To prevent breaking legacy CSS where shorthand declarations override longhand declarations. For example `animation-name: some; animation: greeting;` will be kept in this order.
@default false
*/
keepOverrides?: boolean;
}>;
export default cssDeclarationSorter;
type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss' | 'frakto';
/**
* This function receives two declaration property names and is expected
* to return -1, 0 or 1 depending on the wanted order.
*/
type SortFunction = (propertyNameA: string, propertyNameB: string) => -1 | 0 | 1;

View File

@@ -5,6 +5,7 @@ const builtInOrders = [
'alphabetical',
'concentric-css',
'smacss',
'frakto'
];
export const cssDeclarationSorter = ({ order = 'alphabetical', keepOverrides = false } = {}) => ({
@@ -129,7 +130,13 @@ function withOverridesComparator (shorthandData) {
function orderComparator (order) {
return function (a, b) {
return order.indexOf(a) - order.indexOf(b);
const bIndex = order.indexOf(b);
if (bIndex === -1) {
return 0;
}
return order.indexOf(a) - bIndex;
};
}

View File

@@ -0,0 +1,261 @@
import { test } from 'uvu';
import * as assert from 'uvu/assert';
import postcss from 'postcss';
import { cssDeclarationSorter as plugin } from './main.mjs';
const testCssFixtures = (testMessage, tests) => {
test(testMessage, () => (
Promise.all(tests.map(({ message, fixture, expected, options }) => (
postcss(plugin(options))
.process(fixture, { from: undefined })
.then((result) => {
assert.is(result.css, expected, message);
assert.is(result.warnings().length, 0);
})
)))
));
};
const sortOrderTests = [
{
message: 'Keep same order for identical properties.',
fixture: 'a{flex: 0;flex: 2;}',
expected: 'a{flex: 0;flex: 2;}',
},
{
message: 'Sort alphabetically with no order defined.',
fixture: 'a{flex: 0;border: 0;}',
expected: 'a{border: 0;flex: 0;}',
},
{
message: 'Sort alphabetically with a defined order.',
fixture: 'a{flex: 0;border: 0;}',
expected: 'a{border: 0;flex: 0;}',
options: { order: 'alphabetical' },
},
{
message: 'Sort according to custom order, changed.',
fixture: 'a{border: 0;z-index: 0;}',
expected: 'a{z-index: 0;border: 0;}',
options: { order: () => 1 },
},
{
message: 'Sort according to custom order, retained.',
fixture: 'a{border: 0;z-index: 0;}',
expected: 'a{border: 0;z-index: 0;}',
options: { order: () => -1 },
},
{
message: 'Sort according to SMACSS.',
fixture: 'a{border: 0;flex: 0;}',
expected: 'a{flex: 0;border: 0;}',
options: { order: 'smacss' },
},
{
message: 'Sort according to Concentric CSS.',
fixture: 'a{border: 0;flex: 0;}',
expected: 'a{flex: 0;border: 0;}',
options: { order: 'concentric-css' },
},
{
message: 'Sort according to Frakto.',
fixture: 'a{border: 0;flex: 0;}',
expected: 'a{flex: 0;border: 0;}',
options: { order: 'frakto' },
},
{
message: 'Keep at-rule at the same position.',
fixture: 'a{border: 0;@import sii;flex:0;}',
expected: 'a{border: 0;@import sii;flex:0;}',
},
{
message: 'Retain unknown properties, left to right.',
fixture: 'a{unknown-a: 0;unknown-b: 0;}',
expected: 'a{unknown-a: 0;unknown-b: 0;}',
},
{
message: 'Retain unknown properties, right to left.',
fixture: 'a{unknown-b: 0;unknown-a: 0;}',
expected: 'a{unknown-b: 0;unknown-a: 0;}',
},
{
message: 'Retain unknown next to known properties, left to right.',
fixture: 'a{animation: 0;unknown-a: none;}',
expected: 'a{animation: 0;unknown-a: none;}',
},
{
message: 'Retain unknown next to known properties, right to left.',
fixture: 'a{unknown-a: none;animation: 0;}',
expected: 'a{unknown-a: none;animation: 0;}',
},
{
message: 'Sort shorthand, resulting in impactful ordering.',
fixture: 'a{border-width: 0;border-radius: 0;border-bottom: 1px;}',
expected: 'a{border-bottom: 1px;border-radius: 0;border-width: 0;}',
},
];
const commentOrderTests = [
{
message: 'Keep comment intact.',
fixture: 'a{flex: 0;/*flex*/}',
expected: 'a{flex: 0;/*flex*/}',
},
{
message: 'Keep root comments intact.',
fixture: '/*a*/\na{}\n/*b*/\nb{}',
expected: '/*a*/\na{}\n/*b*/\nb{}',
},
{
message: 'Handle declaration with one comment.',
fixture: 'a{/*comment*/}',
expected: 'a{/*comment*/}',
},
{
message: 'Keep dangling comment intact.',
fixture: 'a{flex: 0;\n/*end*/}',
expected: 'a{flex: 0;\n/*end*/}',
},
{
message: 'Keep multiple comments intact.',
fixture: 'a{flex: 0;\n/*flex*/\n/*flex 2*/}',
expected: 'a{flex: 0;\n/*flex*/\n/*flex 2*/}',
},
{
message: 'Keep newline comment above declaration.',
fixture: 'a{flex: 0;\n/*border*/\nborder: 0;}',
expected: 'a{\n/*border*/\nborder: 0;flex: 0;}',
},
{
message: 'Handle multiple newline comments.',
fixture: 'a{flex: 0;\n/*border a*/\n/*border b*/\nborder: 0;}',
expected: 'a{\n/*border a*/\n/*border b*/\nborder: 0;flex: 0;}',
},
{
message: 'Keep inline comment beside declaration.',
fixture: 'a{flex: 0;\nborder: 0; /*border*/}',
expected: 'a{\nborder: 0; /*border*/flex: 0;}',
},
{
message: 'Do not lose reference to paired comment node on one line.',
fixture: 'body{/*a*/border:0;/*b*/}',
expected: 'body{border:0;/*b*//*a*/}',
},
];
const nestedDeclarationTests = [
{
message: 'Sort nested declarations.',
fixture: 'a{a{flex: 0;border: 0;}}',
expected: 'a{a{border: 0;flex: 0;}}',
},
{
message: 'Sort nested at-rule declarations.',
fixture: 'a{@media(){flex: 0;border: 0;}}',
expected: 'a{@media(){border: 0;flex: 0;}}',
},
{
message: 'Keep nested newline comment above declaration.',
fixture: 'a{&:hover{flex: 0;\n/*border*/\nborder: 0;}}',
expected: 'a{&:hover{\n/*border*/\nborder: 0;flex: 0;}}',
},
{
message: 'Keep nested inline comment beside declaration.',
fixture: 'a{&:hover{flex: 0;\nborder: 0; /*border*/}}',
expected: 'a{&:hover{\nborder: 0; /*border*/flex: 0;}}',
},
{
message: 'Put declarations before nested selector.',
fixture: 'a{margin: 0;&:hover{color: red;}padding: 0;}',
expected: 'a{margin: 0;padding: 0;&:hover{color: red;}}',
},
];
const keepOverridesTests = [
{
message: 'Keep shorthand overrides in place.',
fixture: 'a{animation-name: hi;animation: hey 1s ease;}',
expected: 'a{animation-name: hi;animation: hey 1s ease;}',
options: { keepOverrides: true },
},
{
message: 'Keep longhand overrides in place.',
fixture: 'a{flex: 1;flex-grow: -1;}',
expected: 'a{flex: 1;flex-grow: -1;}',
options: { keepOverrides: true, order: () => -1 },
},
{
message: 'Sort overrides with other declarations.',
fixture: 'a{z-index: 1;animation: hey 1s ease;}',
expected: 'a{animation: hey 1s ease;z-index: 1;}',
options: { keepOverrides: true },
},
{
message: 'Keep overrides in place mixed with declaration.',
fixture: 'a{z-index: 1;animation: hey 1s ease;animation-name: hi;}',
expected: 'a{animation: hey 1s ease;animation-name: hi;z-index: 1;}',
options: { keepOverrides: true },
},
{
message: 'Keep vendor prefixed declarations in place.',
fixture: 'a{animation: a;-moz-animation:b;}',
expected: 'a{animation: a;-moz-animation:b;}',
options: { keepOverrides: true },
},
{
message: 'Keep border declarations in place.',
fixture: 'a{border-top: 1px solid;border-color: purple;}',
expected:'a{border-top: 1px solid;border-color: purple;}',
options: { keepOverrides: true },
},
{
message: 'Keep padding declarations in place.',
fixture: 'a{padding-left: unset;padding-inline-start: 0;}',
expected:'a{padding-left: unset;padding-inline-start: 0;}',
options: { keepOverrides: true },
},
{
message: 'Keep border block declarations in place.',
fixture: 'a{border-block-end: 1px solid purple;border-block: none;}',
expected: 'a{border-block-end: 1px solid purple;border-block: none;}',
options: { keepOverrides: true },
},
{
message: 'Keep border block style declarations in place.',
fixture: 'a{border-style: none;border-block-end: 1px solid purple;}',
expected: 'a{border-style: none;border-block-end: 1px solid purple;}',
options: { keepOverrides: true },
},
{
message: 'Keep border width logical property declarations in place.',
fixture: 'a{background: grey;border-width: 0;border-top-width: 1px;border-inline-start-width: 1px;}',
expected: 'a{background: grey;border-width: 0;border-inline-start-width: 1px;border-top-width: 1px;}',
options: { keepOverrides: true },
},
{
message: 'Keep longhand border style declaration in place.',
fixture: 'a{border-width: 0;border-radius: 0;border-bottom: 1px;}',
expected: 'a{border-radius: 0;border-width: 0;border-bottom: 1px;}',
options: { keepOverrides: true },
},
{
message: 'Keep longhand border logical declaration in place.',
fixture: 'a{border-radius: 5px;border-end-start-radius: 0;border-end-end-radius: 0;}',
expected: 'a{border-radius: 5px;border-end-end-radius: 0;border-end-start-radius: 0;}',
options: { keepOverrides: true },
},
];
testCssFixtures('Should order declarations.', sortOrderTests);
testCssFixtures('Should retain comments.', commentOrderTests);
testCssFixtures('Should order nested declarations.', nestedDeclarationTests);
testCssFixtures('Should keep shorthand override order.', keepOverridesTests);
test('Should use the PostCSS plugin API.', () => {
assert.is(plugin().postcssPlugin, 'css-declaration-sorter', 'Able to access name.');
});
test.run();

View File

@@ -1,6 +1,5 @@
export const shorthandData = {
'animation': [
'animation-name',
'animation-duration',
'animation-timing-function',
'animation-delay',
@@ -8,15 +7,21 @@ export const shorthandData = {
'animation-direction',
'animation-fill-mode',
'animation-play-state',
'animation-name',
'animation-timeline',
],
'animation-range': [
'animation-range-start',
'animation-range-end',
],
'background': [
'background-image',
'background-size',
'background-position',
'background-size',
'background-repeat',
'background-attachment',
'background-origin',
'background-clip',
'background-attachment',
'background-color',
],
'columns': [
@@ -28,6 +33,10 @@ export const shorthandData = {
'column-rule-style',
'column-rule-color',
],
'contain-intrinsic-size': [
'contain-intrinsic-width',
'contain-intrinsic-height',
],
'flex': [
'flex-grow',
'flex-shrink',
@@ -46,6 +55,10 @@ export const shorthandData = {
'font-family',
'line-height',
],
'gap': [
'column-gap',
'row-gap',
],
'grid': [
'grid-template-rows',
'grid-template-columns',
@@ -80,6 +93,13 @@ export const shorthandData = {
'list-style-position',
'list-style-image',
],
'offset': [
'offset-anchor',
'offset-distance',
'offset-path',
'offset-position',
'offset-rotate',
],
'padding': [
'padding-block',
'padding-block-start',
@@ -128,6 +148,14 @@ export const shorthandData = {
'padding-bottom',
'padding-left',
],
'position-try': [
'position-try-order',
'position-try-fallbacks',
],
'scroll-timeline': [
'scroll-timeline-name',
'scroll-timeline-axis',
],
'margin': [
'margin-block',
'margin-block-start',
@@ -168,6 +196,16 @@ export const shorthandData = {
'margin-bottom',
'margin-left',
],
'marker': [
'marker-start',
'marker-mid',
'marker-end',
],
'view-timeline': [
'view-timeline-name',
'view-timeline-axis',
'view-timeline-inset',
],
'border': [
'border-top',
'border-right',
@@ -280,6 +318,10 @@ export const shorthandData = {
'border-top-left-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
'border-end-end-radius',
'border-end-start-radius',
'border-start-end-radius',
'border-start-start-radius',
],
'border-block': [
'border-block-start',
@@ -415,11 +457,19 @@ export const shorthandData = {
'align-self',
'justify-self',
],
'text-box': [
'text-box-trim',
'text-box-edge',
],
'text-decoration': [
'text-decoration-color',
'text-decoration-style',
'text-decoration-line',
],
'text-wrap': [
'text-wrap-mode',
'text-wrap-style',
],
'transition': [
'transition-delay',
'transition-duration',
@@ -430,4 +480,14 @@ export const shorthandData = {
'text-emphasis-style',
'text-emphasis-color',
],
'font-synthesis': [
'font-synthesis-weight',
'font-synthesis-style',
'font-synthesis-small-caps',
'font-synthesis-position',
],
'-webkit-text-stroke': [
'-webkit-text-stroke-color',
'-webkit-text-stroke-width',
],
};

View File

@@ -0,0 +1,471 @@
export const properties = [
'all',
'-webkit-text-fill-color',
'-webkit-text-stroke',
'-webkit-text-stroke-color',
'-webkit-text-stroke-width',
'accent-color',
'align-content',
'align-items',
'align-self',
'alignment-baseline',
'anchor-name',
'animation',
'animation-composition',
'animation-delay',
'animation-direction',
'animation-duration',
'animation-fill-mode',
'animation-iteration-count',
'animation-name',
'animation-play-state',
'animation-range',
'animation-range-end',
'animation-range-start',
'animation-timeline',
'animation-timing-function',
'appearance',
'ascent-override',
'aspect-ratio',
'backdrop-filter',
'backface-visibility',
'background',
'background-attachment',
'background-blend-mode',
'background-clip',
'background-color',
'background-image',
'background-origin',
'background-position',
'background-position-x',
'background-position-y',
'background-repeat',
'background-size',
'block-size',
'border',
'border-block',
'border-block-color',
'border-block-end',
'border-block-end-color',
'border-block-end-style',
'border-block-end-width',
'border-block-start',
'border-block-start-color',
'border-block-start-style',
'border-block-start-width',
'border-block-style',
'border-block-width',
'border-bottom',
'border-bottom-color',
'border-bottom-left-radius',
'border-bottom-right-radius',
'border-bottom-style',
'border-bottom-width',
'border-collapse',
'border-color',
'border-end-end-radius',
'border-end-start-radius',
'border-image',
'border-image-outset',
'border-image-repeat',
'border-image-slice',
'border-image-source',
'border-image-width',
'border-inline',
'border-inline-color',
'border-inline-end',
'border-inline-end-color',
'border-inline-end-style',
'border-inline-end-width',
'border-inline-start',
'border-inline-start-color',
'border-inline-start-style',
'border-inline-start-width',
'border-inline-style',
'border-inline-width',
'border-left',
'border-left-color',
'border-left-style',
'border-left-width',
'border-radius',
'border-right',
'border-right-color',
'border-right-style',
'border-right-width',
'border-spacing',
'border-start-end-radius',
'border-start-start-radius',
'border-style',
'border-top',
'border-top-color',
'border-top-left-radius',
'border-top-right-radius',
'border-top-style',
'border-top-width',
'border-width',
'bottom',
'box-decoration-break',
'box-shadow',
'box-sizing',
'break-after',
'break-before',
'break-inside',
'caption-side',
'caret-color',
'clear',
'clip-path',
'clip-rule',
'color',
'color-interpolation',
'color-interpolation-filters',
'color-scheme',
'column-count',
'column-fill',
'column-gap',
'column-rule',
'column-rule-color',
'column-rule-style',
'column-rule-width',
'column-span',
'column-width',
'columns',
'contain',
'contain-intrinsic-block-size',
'contain-intrinsic-height',
'contain-intrinsic-inline-size',
'contain-intrinsic-size',
'contain-intrinsic-width',
'container',
'container-name',
'container-type',
'content',
'content-visibility',
'counter-increment',
'counter-reset',
'counter-set',
'cursor',
'cx',
'cy',
'd',
'descent-override',
'direction',
'display',
'dominant-baseline',
'empty-cells',
'fill',
'fill-opacity',
'fill-rule',
'filter',
'flex',
'flex-basis',
'flex-direction',
'flex-flow',
'flex-grow',
'flex-shrink',
'flex-wrap',
'float',
'flood-color',
'flood-opacity',
'font',
'font-display',
'font-family',
'font-feature-settings',
'font-kerning',
'font-language-override',
'font-optical-sizing',
'font-palette',
'font-size',
'font-size-adjust',
'font-stretch',
'font-style',
'font-synthesis',
'font-synthesis-position',
'font-synthesis-small-caps',
'font-synthesis-style',
'font-synthesis-weight',
'font-variant',
'font-variant-alternates',
'font-variant-caps',
'font-variant-east-asian',
'font-variant-emoji',
'font-variant-ligatures',
'font-variant-numeric',
'font-variant-position',
'font-variation-settings',
'font-weight',
'forced-color-adjust',
'gap',
'grid',
'grid-area',
'grid-auto-columns',
'grid-auto-flow',
'grid-auto-rows',
'grid-column',
'grid-column-end',
'grid-column-start',
'grid-row',
'grid-row-end',
'grid-row-start',
'grid-template',
'grid-template-areas',
'grid-template-columns',
'grid-template-rows',
'hanging-punctuation',
'height',
'hyphenate-character',
'hyphenate-limit-chars',
'hyphens',
'image-orientation',
'image-rendering',
'initial-letter',
'inline-size',
'inset',
'inset-block',
'inset-block-end',
'inset-block-start',
'inset-inline',
'inset-inline-end',
'inset-inline-start',
'isolation',
'justify-content',
'justify-items',
'justify-self',
'left',
'letter-spacing',
'lighting-color',
'line-break',
'line-clamp',
'line-gap-override',
'line-height',
'list-style',
'list-style-image',
'list-style-position',
'list-style-type',
'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',
'marker',
'marker-end',
'marker-mid',
'marker-start',
'mask',
'mask-border',
'mask-border-outset',
'mask-border-repeat',
'mask-border-slice',
'mask-border-source',
'mask-border-width',
'mask-clip',
'mask-composite',
'mask-image',
'mask-mode',
'mask-origin',
'mask-position',
'mask-repeat',
'mask-size',
'mask-type',
'math-depth',
'math-style',
'max-block-size',
'max-height',
'max-inline-size',
'max-width',
'min-block-size',
'min-height',
'min-inline-size',
'min-width',
'mix-blend-mode',
'object-fit',
'object-position',
'offset',
'offset-anchor',
'offset-distance',
'offset-path',
'offset-position',
'offset-rotate',
'opacity',
'order',
'orphans',
'outline',
'outline-color',
'outline-offset',
'outline-style',
'outline-width',
'overflow',
'overflow-anchor',
'overflow-block',
'overflow-clip-margin',
'overflow-inline',
'overflow-wrap',
'overflow-x',
'overflow-y',
'overscroll-behavior',
'overscroll-behavior-block',
'overscroll-behavior-inline',
'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',
'page',
'paint-order',
'perspective',
'perspective-origin',
'place-content',
'place-items',
'place-self',
'pointer-events',
'position',
'position-anchor',
'position-area',
'position-try',
'position-try-fallbacks',
'position-try-order',
'print-color-adjust',
'quotes',
'r',
'resize',
'right',
'rotate',
'row-gap',
'ruby-align',
'ruby-overhang',
'ruby-position',
'rx',
'ry',
'scale',
'scroll-behavior',
'scroll-margin',
'scroll-margin-block',
'scroll-margin-block-end',
'scroll-margin-block-start',
'scroll-margin-bottom',
'scroll-margin-inline',
'scroll-margin-inline-end',
'scroll-margin-inline-start',
'scroll-margin-left',
'scroll-margin-right',
'scroll-margin-top',
'scroll-padding',
'scroll-padding-block',
'scroll-padding-block-end',
'scroll-padding-block-start',
'scroll-padding-bottom',
'scroll-padding-inline',
'scroll-padding-inline-end',
'scroll-padding-inline-start',
'scroll-padding-left',
'scroll-padding-right',
'scroll-padding-top',
'scroll-snap-align',
'scroll-snap-stop',
'scroll-snap-type',
'scroll-timeline',
'scroll-timeline-axis',
'scroll-timeline-name',
'scrollbar-color',
'scrollbar-gutter',
'scrollbar-width',
'shape-image-threshold',
'shape-margin',
'shape-outside',
'shape-rendering',
'size-adjust',
'src',
'stop-color',
'stop-opacity',
'stroke',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
'stroke-linejoin',
'stroke-miterlimit',
'stroke-opacity',
'stroke-width',
'tab-size',
'table-layout',
'text-align',
'text-align-last',
'text-anchor',
'text-autospace',
'text-box',
'text-box-edge',
'text-box-trim',
'text-combine-upright',
'text-decoration',
'text-decoration-color',
'text-decoration-line',
'text-decoration-skip-ink',
'text-decoration-style',
'text-decoration-thickness',
'text-emphasis',
'text-emphasis-color',
'text-emphasis-position',
'text-emphasis-style',
'text-indent',
'text-justify',
'text-orientation',
'text-overflow',
'text-rendering',
'text-shadow',
'text-transform',
'text-underline-offset',
'text-underline-position',
'text-wrap',
'text-wrap-mode',
'text-wrap-style',
'timeline-scope',
'top',
'touch-action',
'transform',
'transform-box',
'transform-origin',
'transform-style',
'transition',
'transition-behavior',
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
'translate',
'unicode-bidi',
'unicode-range',
'user-select',
'vector-effect',
'vertical-align',
'view-timeline',
'view-timeline-axis',
'view-timeline-inset',
'view-timeline-name',
'view-transition-class',
'view-transition-name',
'visibility',
'white-space',
'white-space-collapse',
'widows',
'width',
'will-change',
'word-break',
'word-spacing',
'writing-mode',
'x',
'y',
'z-index',
'zoom'
];

View File

@@ -0,0 +1,475 @@
export const properties = [
'all',
'display',
'position',
'position-anchor',
'position-area',
'position-try',
'position-try-order',
'position-try-fallbacks',
'anchor-name',
'top',
'right',
'bottom',
'left',
'offset',
'offset-anchor',
'offset-distance',
'offset-path',
'offset-position',
'offset-rotate',
'grid',
'grid-template-rows',
'grid-template-columns',
'grid-template-areas',
'grid-auto-rows',
'grid-auto-columns',
'grid-auto-flow',
'column-gap',
'row-gap',
'grid-area',
'grid-row',
'grid-row-start',
'grid-row-end',
'grid-column',
'grid-column-start',
'grid-column-end',
'grid-template',
'flex',
'flex-grow',
'flex-shrink',
'flex-basis',
'flex-direction',
'flex-flow',
'flex-wrap',
'box-decoration-break',
'place-content',
'align-content',
'justify-content',
'place-items',
'align-items',
'justify-items',
'place-self',
'align-self',
'justify-self',
'vertical-align',
'order',
'float',
'clear',
'shape-margin',
'shape-outside',
'shape-rendering',
'shape-image-threshold',
'orphans',
'gap',
'columns',
'column-fill',
'column-rule',
'column-rule-width',
'column-rule-style',
'column-rule-color',
'column-width',
'column-span',
'column-count',
'break-before',
'break-after',
'break-inside',
'page',
'transform',
'transform-box',
'transform-origin',
'transform-style',
'vector-effect',
'translate',
'rotate',
'scale',
'zoom',
'perspective',
'perspective-origin',
'appearance',
'visibility',
'content-visibility',
'opacity',
'z-index',
'paint-order',
'mix-blend-mode',
'backface-visibility',
'backdrop-filter',
'clip-path',
'clip-rule',
'mask',
'mask-border',
'mask-border-outset',
'mask-border-repeat',
'mask-border-slice',
'mask-border-source',
'mask-border-width',
'mask-image',
'mask-mode',
'mask-position',
'mask-size',
'mask-repeat',
'mask-origin',
'mask-clip',
'mask-composite',
'mask-type',
'filter',
'timeline-scope',
'scroll-timeline',
'scroll-timeline-name',
'scroll-timeline-axis',
'view-timeline',
'view-timeline-name',
'view-timeline-axis',
'view-timeline-inset',
'animation',
'animation-duration',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction',
'animation-fill-mode',
'animation-play-state',
'animation-name',
'animation-timeline',
'animation-composition',
'animation-range',
'animation-range-start',
'animation-range-end',
'view-transition-name',
'view-transition-class',
'transition',
'transition-behavior',
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
'will-change',
'counter-increment',
'counter-reset',
'counter-set',
'cursor',
'fill',
'fill-opacity',
'fill-rule',
'flood-color',
'flood-opacity',
'lighting-color',
'marker',
'marker-end',
'marker-mid',
'marker-start',
'x',
'y',
'r',
'rx',
'ry',
'stop-color',
'stop-opacity',
'stroke',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
'stroke-linejoin',
'stroke-miterlimit',
'stroke-opacity',
'stroke-width',
'box-sizing',
'contain',
'contain-intrinsic-size',
'contain-intrinsic-width',
'contain-intrinsic-height',
'contain-intrinsic-inline-size',
'contain-intrinsic-block-size',
'container',
'container-name',
'container-type',
'cx',
'cy',
'd',
'margin',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
'margin-inline',
'margin-inline-start',
'margin-inline-end',
'margin-block',
'margin-block-start',
'margin-block-end',
'inset',
'inset-block',
'inset-block-end',
'inset-block-start',
'inset-inline',
'inset-inline-end',
'inset-inline-start',
'outline',
'outline-color',
'outline-style',
'outline-width',
'outline-offset',
'box-shadow',
'border',
'border-top',
'border-right',
'border-bottom',
'border-left',
'border-width',
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width',
'border-style',
'border-top-style',
'border-right-style',
'border-bottom-style',
'border-left-style',
'border-color',
'border-top-color',
'border-right-color',
'border-bottom-color',
'border-left-color',
'border-radius',
'border-top-right-radius',
'border-top-left-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
'border-inline',
'border-inline-width',
'border-inline-style',
'border-inline-color',
'border-inline-start',
'border-inline-start-width',
'border-inline-start-style',
'border-inline-start-color',
'border-inline-end',
'border-inline-end-width',
'border-inline-end-style',
'border-inline-end-color',
'border-block',
'border-block-width',
'border-block-style',
'border-block-color',
'border-block-start',
'border-block-start-width',
'border-block-start-style',
'border-block-start-color',
'border-block-end',
'border-block-end-width',
'border-block-end-style',
'border-block-end-color',
'border-image',
'border-image-source',
'border-image-slice',
'border-image-width',
'border-image-outset',
'border-image-repeat',
'border-collapse',
'border-spacing',
'border-start-start-radius',
'border-start-end-radius',
'border-end-start-radius',
'border-end-end-radius',
'background',
'background-image',
'background-position',
'background-position-x',
'background-position-y',
'background-size',
'background-repeat',
'background-attachment',
'background-origin',
'background-clip',
'background-color',
'background-blend-mode',
'isolation',
'padding',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
'padding-inline',
'padding-inline-start',
'padding-inline-end',
'padding-block',
'padding-block-start',
'padding-block-end',
'image-orientation',
'image-rendering',
'aspect-ratio',
'width',
'min-width',
'max-width',
'height',
'min-height',
'max-height',
'line-clamp',
'-webkit-text-fill-color',
'-webkit-text-stroke',
'-webkit-text-stroke-width',
'-webkit-text-stroke-color',
'inline-size',
'min-inline-size',
'max-inline-size',
'block-size',
'min-block-size',
'max-block-size',
'table-layout',
'caption-side',
'empty-cells',
'overflow',
'overflow-anchor',
'overflow-block',
'overflow-clip-margin',
'overflow-inline',
'overflow-x',
'overflow-y',
'overscroll-behavior',
'overscroll-behavior-block',
'overscroll-behavior-inline',
'overscroll-behavior-x',
'overscroll-behavior-y',
'resize',
'object-fit',
'object-position',
'scroll-behavior',
'scroll-margin',
'scroll-margin-block',
'scroll-margin-block-end',
'scroll-margin-block-start',
'scroll-margin-bottom',
'scroll-margin-inline',
'scroll-margin-inline-end',
'scroll-margin-inline-start',
'scroll-margin-left',
'scroll-margin-right',
'scroll-margin-top',
'scroll-padding',
'scroll-padding-block',
'scroll-padding-block-end',
'scroll-padding-block-start',
'scroll-padding-bottom',
'scroll-padding-inline',
'scroll-padding-inline-end',
'scroll-padding-inline-start',
'scroll-padding-left',
'scroll-padding-right',
'scroll-padding-top',
'scroll-snap-align',
'scroll-snap-stop',
'scroll-snap-type',
'scrollbar-color',
'scrollbar-gutter',
'scrollbar-width',
'touch-action',
'pointer-events',
'content',
'quotes',
'hanging-punctuation',
'color',
'color-interpolation',
'color-interpolation-filters',
'accent-color',
'print-color-adjust',
'forced-color-adjust',
'color-scheme',
'caret-color',
'font',
'font-style',
'font-variant',
'font-weight',
'font-stretch',
'font-size',
'size-adjust',
'line-height',
'src',
'font-family',
'font-display',
'font-kerning',
'font-language-override',
'font-optical-sizing',
'font-palette',
'font-size-adjust',
'font-synthesis',
'font-synthesis-weight',
'font-synthesis-style',
'font-synthesis-small-caps',
'font-synthesis-position',
'font-variant-alternates',
'font-variant-caps',
'font-variant-east-asian',
'font-variant-emoji',
'font-variant-ligatures',
'font-variant-numeric',
'font-variant-position',
'font-variation-settings',
'font-feature-settings',
'alignment-baseline',
'dominant-baseline',
'text-anchor',
'text-autospace',
'text-box',
'text-box-trim',
'text-box-edge',
'ascent-override',
'descent-override',
'line-gap-override',
'hyphens',
'hyphenate-character',
'hyphenate-limit-chars',
'initial-letter',
'letter-spacing',
'line-break',
'list-style',
'list-style-type',
'list-style-image',
'list-style-position',
'writing-mode',
'direction',
'unicode-bidi',
'unicode-range',
'user-select',
'ruby-align',
'ruby-overhang',
'ruby-position',
'math-depth',
'math-style',
'text-combine-upright',
'text-align',
'text-align-last',
'text-decoration',
'text-decoration-line',
'text-decoration-style',
'text-decoration-color',
'text-decoration-thickness',
'text-decoration-skip-ink',
'text-emphasis',
'text-emphasis-style',
'text-emphasis-color',
'text-emphasis-position',
'text-indent',
'text-justify',
'text-underline-position',
'text-underline-offset',
'text-orientation',
'text-overflow',
'text-rendering',
'text-shadow',
'text-transform',
'text-wrap',
'text-wrap-mode',
'text-wrap-style',
'white-space',
'white-space-collapse',
'word-break',
'word-spacing',
'overflow-wrap',
'tab-size',
'widows',
];

View File

@@ -0,0 +1,478 @@
export const properties = [
'position',
'position-anchor',
'position-area',
'position-try',
'position-try-order',
'position-try-fallbacks',
'anchor-name',
'top',
'right',
'bottom',
'left',
'inset',
'inset-block',
'inset-block-start',
'inset-block-end',
'inset-inline',
'inset-inline-start',
'inset-inline-end',
'z-index',
'float',
'clear',
'display',
'box-sizing',
'box-decoration-break',
'aspect-ratio',
'contain',
'contain-intrinsic-size',
'contain-intrinsic-width',
'contain-intrinsic-height',
'contain-intrinsic-block-size',
'contain-intrinsic-inline-size',
'container',
'container-name',
'container-type',
'width',
'min-width',
'max-width',
'height',
'min-height',
'max-height',
'block-size',
'min-block-size',
'max-block-size',
'inline-size',
'min-inline-size',
'max-inline-size',
'margin',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
'margin-block',
'margin-block-start',
'margin-block-end',
'margin-inline',
'margin-inline-start',
'margin-inline-end',
'padding',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
'padding-block',
'padding-block-start',
'padding-block-end',
'padding-inline',
'padding-inline-start',
'padding-inline-end',
'flex',
'flex-grow',
'flex-shrink',
'flex-basis',
'flex-flow',
'flex-direction',
'flex-wrap',
'grid',
'grid-area',
'grid-auto-columns',
'grid-auto-flow',
'grid-auto-rows',
'grid-column',
'grid-column-end',
'grid-column-start',
'grid-row',
'grid-row-end',
'grid-row-start',
'grid-template',
'grid-template-areas',
'grid-template-columns',
'grid-template-rows',
'align-content',
'align-items',
'align-self',
'justify-content',
'justify-items',
'justify-self',
'place-content',
'place-items',
'place-self',
'gap',
'row-gap',
'column-gap',
'order',
'orphans',
'widows',
'columns',
'column-width',
'column-count',
'column-span',
'column-rule',
'column-rule-width',
'column-rule-style',
'column-rule-color',
'column-fill',
'table-layout',
'caption-side',
'color',
'caret-color',
'font',
'font-style',
'font-variant',
'font-weight',
'font-stretch',
'font-size',
'font-family',
'font-size-adjust',
'font-display',
'font-optical-sizing',
'font-variation-settings',
'font-feature-settings',
'font-kerning',
'font-language-override',
'font-palette',
'font-synthesis',
'font-synthesis-weight',
'font-synthesis-style',
'font-synthesis-small-caps',
'font-synthesis-position',
'font-variant-alternates',
'font-variant-caps',
'font-variant-ligatures',
'font-variant-numeric',
'font-variant-position',
'font-variant-east-asian',
'font-variant-emoji',
'size-adjust',
'text-align',
'text-align-last',
'text-indent',
'text-justify',
'text-wrap',
'text-wrap-mode',
'text-wrap-style',
'text-overflow',
'text-transform',
'text-orientation',
'text-combine-upright',
'text-decoration',
'text-decoration-line',
'text-decoration-color',
'text-decoration-style',
'text-decoration-thickness',
'text-decoration-skip-ink',
'text-underline-offset',
'text-underline-position',
'text-emphasis',
'text-emphasis-style',
'text-emphasis-color',
'text-emphasis-position',
'text-shadow',
'text-rendering',
'text-anchor',
'text-autospace',
'text-box',
'text-box-trim',
'text-box-edge',
'-webkit-text-fill-color',
'-webkit-text-stroke',
'-webkit-text-stroke-width',
'-webkit-text-stroke-color',
'line-height',
'line-break',
'line-clamp',
'line-gap-override',
'white-space',
'white-space-collapse',
'word-break',
'word-spacing',
'letter-spacing',
'vertical-align',
'list-style',
'list-style-type',
'list-style-position',
'list-style-image',
'hyphens',
'hyphenate-character',
'hyphenate-limit-chars',
'hanging-punctuation',
'direction',
'unicode-bidi',
'unicode-range',
'writing-mode',
'dominant-baseline',
'alignment-baseline',
'ascent-override',
'descent-override',
'initial-letter',
'ruby-position',
'ruby-overhang',
'ruby-align',
'quotes',
'background',
'background-image',
'background-position',
'background-position-x',
'background-position-y',
'background-size',
'background-repeat',
'background-attachment',
'background-origin',
'background-clip',
'background-color',
'background-blend-mode',
'border',
'border-width',
'border-style',
'border-color',
'border-top',
'border-top-width',
'border-top-style',
'border-top-color',
'border-right',
'border-right-width',
'border-right-style',
'border-right-color',
'border-bottom',
'border-bottom-width',
'border-bottom-style',
'border-bottom-color',
'border-left',
'border-left-width',
'border-left-style',
'border-left-color',
'border-block',
'border-block-width',
'border-block-style',
'border-block-color',
'border-block-start',
'border-block-start-width',
'border-block-start-style',
'border-block-start-color',
'border-block-end',
'border-block-end-width',
'border-block-end-style',
'border-block-end-color',
'border-inline',
'border-inline-width',
'border-inline-style',
'border-inline-color',
'border-inline-start',
'border-inline-start-width',
'border-inline-start-style',
'border-inline-start-color',
'border-inline-end',
'border-inline-end-width',
'border-inline-end-style',
'border-inline-end-color',
'border-radius',
'border-top-left-radius',
'border-top-right-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
'border-start-start-radius',
'border-start-end-radius',
'border-end-end-radius',
'border-end-start-radius',
'border-image',
'border-image-source',
'border-image-slice',
'border-image-width',
'border-image-outset',
'border-image-repeat',
'border-collapse',
'border-spacing',
'outline',
'outline-width',
'outline-style',
'outline-color',
'outline-offset',
'box-shadow',
'opacity',
'visibility',
'object-fit',
'object-position',
'filter',
'backdrop-filter',
'backface-visibility',
'mask',
'mask-border',
'mask-border-outset',
'mask-border-repeat',
'mask-border-slice',
'mask-border-source',
'mask-border-width',
'mask-clip',
'mask-composite',
'mask-image',
'mask-mode',
'mask-origin',
'mask-position',
'mask-repeat',
'mask-size',
'mask-type',
'shape-outside',
'shape-margin',
'shape-rendering',
'shape-image-threshold',
'd',
'x',
'y',
'cx',
'cy',
'r',
'rx',
'ry',
'clip-path',
'clip-rule',
'fill',
'fill-opacity',
'fill-rule',
'flood-color',
'flood-opacity',
'lighting-color',
'marker',
'marker-start',
'marker-mid',
'marker-end',
'stroke',
'stroke-width',
'stroke-opacity',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
'stroke-linejoin',
'stroke-miterlimit',
'stop-color',
'stop-opacity',
'accent-color',
'mix-blend-mode',
'paint-order',
'isolation',
'appearance',
'color-scheme',
'color-interpolation',
'color-interpolation-filters',
'transform',
'transform-box',
'transform-origin',
'transform-style',
'translate',
'scale',
'rotate',
'zoom',
'vector-effect',
'transition',
'transition-property',
'transition-duration',
'transition-timing-function',
'transition-delay',
'transition-behavior',
'view-transition-name',
'view-transition-class',
'timeline-scope',
'scroll-timeline',
'scroll-timeline-name',
'scroll-timeline-axis',
'view-timeline',
'view-timeline-name',
'view-timeline-axis',
'view-timeline-inset',
'animation',
'animation-duration',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction',
'animation-fill-mode',
'animation-play-state',
'animation-name',
'animation-timeline',
'animation-composition',
'animation-range',
'animation-range-start',
'animation-range-end',
'offset',
'offset-path',
'offset-position',
'offset-distance',
'offset-rotate',
'offset-anchor',
'image-orientation',
'image-rendering',
'perspective',
'perspective-origin',
'will-change',
'cursor',
'pointer-events',
'touch-action',
'user-select',
'resize',
'overflow',
'overflow-x',
'overflow-y',
'overflow-block',
'overflow-inline',
'overflow-wrap',
'overflow-anchor',
'overflow-clip-margin',
'overscroll-behavior',
'overscroll-behavior-x',
'overscroll-behavior-y',
'overscroll-behavior-block',
'overscroll-behavior-inline',
'scroll-behavior',
'scroll-margin',
'scroll-margin-top',
'scroll-margin-right',
'scroll-margin-bottom',
'scroll-margin-left',
'scroll-margin-block',
'scroll-margin-block-start',
'scroll-margin-block-end',
'scroll-margin-inline',
'scroll-margin-inline-start',
'scroll-margin-inline-end',
'scroll-padding',
'scroll-padding-top',
'scroll-padding-right',
'scroll-padding-bottom',
'scroll-padding-left',
'scroll-padding-block',
'scroll-padding-block-start',
'scroll-padding-block-end',
'scroll-padding-inline',
'scroll-padding-inline-start',
'scroll-padding-inline-end',
'scroll-snap-type',
'scroll-snap-align',
'scroll-snap-stop',
'scrollbar-width',
'scrollbar-color',
'scrollbar-gutter',
'all',
'content',
'content-visibility',
'page',
'break-after',
'break-before',
'break-inside',
'counter-reset',
'counter-increment',
'counter-set',
'empty-cells',
'forced-color-adjust',
'print-color-adjust',
'math-depth',
'math-style',
'src',
'tab-size',
];

View File

@@ -0,0 +1,476 @@
export const properties = [
'all',
'box-sizing',
'contain',
'contain-intrinsic-size',
'contain-intrinsic-width',
'contain-intrinsic-height',
'contain-intrinsic-inline-size',
'contain-intrinsic-block-size',
'container',
'container-name',
'container-type',
'cx',
'cy',
'd',
'display',
'appearance',
'visibility',
'content-visibility',
'z-index',
'paint-order',
'position',
'position-anchor',
'position-area',
'position-try',
'position-try-order',
'position-try-fallbacks',
'anchor-name',
'top',
'right',
'bottom',
'left',
'offset',
'offset-anchor',
'offset-distance',
'offset-path',
'offset-position',
'offset-rotate',
'grid',
'grid-template-rows',
'grid-template-columns',
'grid-template-areas',
'grid-auto-rows',
'grid-auto-columns',
'grid-auto-flow',
'column-gap',
'row-gap',
'grid-area',
'grid-row',
'grid-row-start',
'grid-row-end',
'grid-column',
'grid-column-start',
'grid-column-end',
'grid-template',
'flex',
'flex-grow',
'flex-shrink',
'flex-basis',
'flex-direction',
'flex-flow',
'flex-wrap',
'box-decoration-break',
'place-content',
'place-items',
'place-self',
'align-content',
'align-items',
'align-self',
'justify-content',
'justify-items',
'justify-self',
'order',
'aspect-ratio',
'width',
'min-width',
'max-width',
'height',
'min-height',
'max-height',
'line-clamp',
'-webkit-text-fill-color',
'-webkit-text-stroke',
'-webkit-text-stroke-width',
'-webkit-text-stroke-color',
'inline-size',
'min-inline-size',
'max-inline-size',
'block-size',
'min-block-size',
'max-block-size',
'margin',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
'margin-inline',
'margin-inline-start',
'margin-inline-end',
'margin-block',
'margin-block-start',
'margin-block-end',
'inset',
'inset-block',
'inset-block-end',
'inset-block-start',
'inset-inline',
'inset-inline-end',
'inset-inline-start',
'padding',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
'padding-inline',
'padding-inline-start',
'padding-inline-end',
'padding-block',
'padding-block-start',
'padding-block-end',
'float',
'clear',
'overflow',
'overflow-anchor',
'overflow-block',
'overflow-clip-margin',
'overflow-inline',
'overflow-x',
'overflow-y',
'overscroll-behavior',
'overscroll-behavior-block',
'overscroll-behavior-inline',
'overscroll-behavior-x',
'overscroll-behavior-y',
'orphans',
'gap',
'columns',
'column-fill',
'column-rule',
'column-rule-color',
'column-rule-style',
'column-rule-width',
'column-span',
'column-count',
'column-width',
'object-fit',
'object-position',
'transform',
'transform-box',
'transform-origin',
'transform-style',
'vector-effect',
'translate',
'rotate',
'scale',
'zoom',
'border',
'border-top',
'border-right',
'border-bottom',
'border-left',
'border-width',
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width',
'border-style',
'border-top-style',
'border-right-style',
'border-bottom-style',
'border-left-style',
'border-radius',
'border-top-right-radius',
'border-top-left-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
'border-inline',
'border-inline-color',
'border-inline-style',
'border-inline-width',
'border-inline-start',
'border-inline-start-color',
'border-inline-start-style',
'border-inline-start-width',
'border-inline-end',
'border-inline-end-color',
'border-inline-end-style',
'border-inline-end-width',
'border-block',
'border-block-color',
'border-block-style',
'border-block-width',
'border-block-start',
'border-block-start-color',
'border-block-start-style',
'border-block-start-width',
'border-block-end',
'border-block-end-color',
'border-block-end-style',
'border-block-end-width',
'border-color',
'border-image',
'border-image-outset',
'border-image-repeat',
'border-image-slice',
'border-image-source',
'border-image-width',
'border-top-color',
'border-right-color',
'border-bottom-color',
'border-left-color',
'border-collapse',
'border-spacing',
'border-start-start-radius',
'border-start-end-radius',
'border-end-start-radius',
'border-end-end-radius',
'outline',
'outline-color',
'outline-style',
'outline-width',
'outline-offset',
'backdrop-filter',
'backface-visibility',
'background',
'background-image',
'background-position',
'background-position-x',
'background-position-y',
'background-size',
'background-repeat',
'background-attachment',
'background-origin',
'background-clip',
'background-color',
'background-blend-mode',
'box-shadow',
'isolation',
'fill',
'fill-opacity',
'fill-rule',
'flood-color',
'flood-opacity',
'lighting-color',
'marker',
'marker-end',
'marker-mid',
'marker-start',
'x',
'y',
'r',
'rx',
'ry',
'stop-color',
'stop-opacity',
'stroke',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
'stroke-linejoin',
'stroke-miterlimit',
'stroke-opacity',
'stroke-width',
'content',
'quotes',
'hanging-punctuation',
'color',
'color-interpolation',
'color-interpolation-filters',
'accent-color',
'print-color-adjust',
'forced-color-adjust',
'color-scheme',
'caret-color',
'font',
'font-style',
'font-variant',
'font-weight',
'src',
'font-stretch',
'font-size',
'size-adjust',
'line-height',
'font-family',
'font-display',
'font-kerning',
'font-language-override',
'font-optical-sizing',
'font-palette',
'font-size-adjust',
'font-synthesis',
'font-synthesis-weight',
'font-synthesis-style',
'font-synthesis-small-caps',
'font-synthesis-position',
'font-variant-alternates',
'font-variant-caps',
'font-variant-east-asian',
'font-variant-emoji',
'font-variant-ligatures',
'font-variant-numeric',
'font-variant-position',
'font-variation-settings',
'font-feature-settings',
'alignment-baseline',
'dominant-baseline',
'text-anchor',
'text-autospace',
'text-box',
'text-box-trim',
'text-box-edge',
'ascent-override',
'descent-override',
'line-gap-override',
'hyphens',
'hyphenate-character',
'hyphenate-limit-chars',
'initial-letter',
'letter-spacing',
'line-break',
'list-style',
'list-style-image',
'list-style-position',
'list-style-type',
'direction',
'text-align',
'text-align-last',
'text-decoration',
'text-decoration-line',
'text-decoration-style',
'text-decoration-color',
'text-decoration-thickness',
'text-decoration-skip-ink',
'text-emphasis',
'text-emphasis-style',
'text-emphasis-color',
'text-emphasis-position',
'text-indent',
'text-justify',
'text-underline-position',
'text-underline-offset',
'text-orientation',
'text-overflow',
'text-rendering',
'text-shadow',
'text-transform',
'text-wrap',
'text-wrap-mode',
'text-wrap-style',
'vertical-align',
'white-space',
'white-space-collapse',
'word-break',
'word-spacing',
'overflow-wrap',
'timeline-scope',
'scroll-timeline',
'scroll-timeline-name',
'scroll-timeline-axis',
'view-timeline',
'view-timeline-name',
'view-timeline-axis',
'view-timeline-inset',
'animation',
'animation-duration',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction',
'animation-fill-mode',
'animation-play-state',
'animation-name',
'animation-timeline',
'animation-composition',
'animation-range',
'animation-range-start',
'animation-range-end',
'view-transition-name',
'view-transition-class',
'mix-blend-mode',
'break-before',
'break-after',
'break-inside',
'page',
'caption-side',
'clip-path',
'clip-rule',
'counter-increment',
'counter-reset',
'counter-set',
'cursor',
'empty-cells',
'filter',
'image-orientation',
'image-rendering',
'mask',
'mask-border',
'mask-border-outset',
'mask-border-repeat',
'mask-border-slice',
'mask-border-source',
'mask-border-width',
'mask-clip',
'mask-composite',
'mask-image',
'mask-mode',
'mask-origin',
'mask-position',
'mask-repeat',
'mask-size',
'mask-type',
'opacity',
'perspective',
'perspective-origin',
'pointer-events',
'resize',
'scroll-behavior',
'scroll-margin',
'scroll-margin-block',
'scroll-margin-block-end',
'scroll-margin-block-start',
'scroll-margin-bottom',
'scroll-margin-inline',
'scroll-margin-inline-end',
'scroll-margin-inline-start',
'scroll-margin-left',
'scroll-margin-right',
'scroll-margin-top',
'scroll-padding',
'scroll-padding-block',
'scroll-padding-block-end',
'scroll-padding-block-start',
'scroll-padding-bottom',
'scroll-padding-inline',
'scroll-padding-inline-end',
'scroll-padding-inline-start',
'scroll-padding-left',
'scroll-padding-right',
'scroll-padding-top',
'scroll-snap-align',
'scroll-snap-stop',
'scroll-snap-type',
'scrollbar-color',
'scrollbar-gutter',
'scrollbar-width',
'shape-image-threshold',
'shape-margin',
'shape-outside',
'shape-rendering',
'tab-size',
'table-layout',
'ruby-align',
'ruby-overhang',
'ruby-position',
'math-depth',
'math-style',
'text-combine-upright',
'touch-action',
'transition',
'transition-behavior',
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
'will-change',
'unicode-bidi',
'unicode-range',
'user-select',
'widows',
'writing-mode',
];