Last commit july 5th

This commit is contained in:
2024-07-05 13:46:23 +02:00
parent dad0d86e8c
commit b0e4dfbb76
24982 changed files with 2621219 additions and 413 deletions

1893
spa/node_modules/css-declaration-sorter/dist/main.cjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

15
spa/node_modules/css-declaration-sorter/license.md generated vendored Normal file
View File

@@ -0,0 +1,15 @@
ISC License
Copyright (c)
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

61
spa/node_modules/css-declaration-sorter/package.json generated vendored Normal file
View File

@@ -0,0 +1,61 @@
{
"name": "css-declaration-sorter",
"version": "7.2.0",
"description": "Sorts CSS declarations fast and automatically in a certain order.",
"type": "module",
"exports": {
"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/core/main.d.cts",
"main": "./dist/main.cjs",
"files": [
"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/core/*.mjs",
"scrape": "node src/property-scraper.mjs",
"prepack": "npm run build"
},
"devDependencies": {
"@mdn/browser-compat-data": "^5.5.14",
"@rollup/plugin-dynamic-import-vars": "^2.0.5",
"eslint": "^8.48.0",
"postcss": "^8.4.35",
"rollup": "^3.26.2",
"uvu": "^0.5.6"
},
"peerDependencies": {
"postcss": "^8.0.9"
},
"engines": {
"node": "^14 || ^16 || >=18"
},
"repository": {
"type": "git",
"url": "https://github.com/Siilwyn/css-declaration-sorter.git"
},
"author": "Selwyn <talk@selwyn.cc> (https://selwyn.cc/)",
"license": "ISC",
"keywords": [
"postcss",
"postcss-plugin",
"css",
"declaration",
"sorter",
"property",
"order"
]
}

126
spa/node_modules/css-declaration-sorter/readme.md generated vendored Normal file
View File

@@ -0,0 +1,126 @@
<img alt='CSS declaration sorter logo' src='https://raw.githubusercontent.com/Siilwyn/css-declaration-sorter/master/logo.svg?sanitize=true' height='260' align='right'>
# CSS Declaration Sorter
[![npm][npm-badge]][npm]
A Node.js module and [PostCSS] plugin to sort CSS, SCSS or Less declarations based on their property names. Ensuring styling is organized, more consistent and in order... The goal of this package is to sort the source code of a project in the build process or to decrease the distributed CSS gzipped size.
Check out [the Prettier plugin](https://github.com/Siilwyn/prettier-plugin-css-order) for usage with a variety of file formats.
## Niceness
- Up-to-date CSS properties fetched from the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data/) project.
- Choose your wanted order or provide your own.
- Nested rules sorting support.
- SCSS and Less support when combined with either [postcss-scss](https://github.com/postcss/postcss-scss) or [postcss-less](https://github.com/webschik/postcss-less).
- Thought-out sorting orders out of the box, **approved by their authors**.
## Alphabetical example
Input:
```css
body {
display: block;
animation: none;
color: #C55;
border: 0;
}
```
Output:
```css
body {
animation: none;
border: 0;
color: #C55;
display: block;
}
```
## Built-in sorting orders
- Alphabetical
`alphabetical`
*Default, order in a simple alphabetical manner from a - z.*
- [SMACSS](http://smacss.com/book/formatting#grouping)
`smacss`
*Order from most important, flow affecting properties, to least important properties.*
1. Box
2. Border
3. Background
4. Text
5. Other
- [Concentric CSS](https://github.com/brandon-rhodes/Concentric-CSS)
`concentric-css`
*Order properties applying outside the box model, moving inward to intrinsic changes.*
1. Positioning
2. Visibility
3. Box model
4. Dimensions
5. Text
## Usage
Following the PostCSS plugin guidelines, this package depends on PostCSS as a peer dependency:
`npm install postcss css-declaration-sorter --save-dev`
### CLI
This module does not include its own CLI but works with the official [PostCSS CLI](https://github.com/postcss/postcss-cli). To use the examples below, the `postcss-cli` package is a required dependency.
Piping out result from file:
`postcss input.css --use css-declaration-sorter | cat`
Sorting multiple files by overwriting:
`postcss *.css --use css-declaration-sorter --replace --no-map`
Sorting all files in a directory with SCSS syntax using [postcss-scss](https://github.com/postcss/postcss-scss) by overwriting:
`postcss ./src/**/*.scss --syntax postcss-scss --use css-declaration-sorter --replace --no-map`
Sorting all files in the directory with SCSS syntax and SMACSS order by overwriting, using `package.json` configuration:
```json
"postcss": {
"syntax": "postcss-scss",
"map": false,
"plugins": {
"css-declaration-sorter": { "order": "smacss" }
}
}
```
`postcss ./src/**/*.scss --replace --config package.json`
### Vanilla JS
```js
import postcss from 'postcss';
import { cssDeclarationSorter } from 'css-declaration-sorter';
postcss([cssDeclarationSorter({ order: 'smacss' })])
.process('a { color: hyperblue; display: block; }', { from: undefined })
.then(result => console.log(
result.css === 'a { display: block; color: hyperblue; }'
));
```
___
**[View more usage examples](/examples) in combination with other tools.**
___
## API
### cssDeclarationSorter({ order, keepOverrides })
#### order
Type: `string` or `function`
Default: `alphabetical`
Options: `alphabetical`, `smacss`, `concentric-css`
Provide the name of one of the built-in sort orders or a comparison function that is passed to ([`Array.sort`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)). This function receives two declaration names and is expected to return `-1`, `0` or `1` depending on the wanted order.
#### keepOverrides
Type: `Boolean`
Default: `false`
To prevent breaking legacy CSS where shorthand declarations override longhand declarations (also taking into account vendor prefixes) this option can enabled. For example `animation-name: some; animation: greeting;` will be kept in this order when `keepOverrides` is `true`.
[PostCSS]: https://github.com/postcss/postcss
[npm]: https://www.npmjs.com/package/css-declaration-sorter
[npm-badge]: https://tinyshields.dev/npm/css-declaration-sorter.svg

View File

@@ -0,0 +1,20 @@
export function bubbleSort (list, comparator) {
let upperIndex = list.length - 1;
while (upperIndex > 0) {
let swapIndex = 0;
for (let i = 0; i < upperIndex; i += 1) {
if (comparator(list[i], list[i + 1]) > 0) {
const temp = list[i + 1];
list[i + 1] = list[i];
list[i] = temp;
swapIndex = i;
}
}
upperIndex = swapIndex;
}
return list;
}

View File

@@ -0,0 +1,27 @@
import type { PluginCreator } from 'postcss';
declare 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 = cssDeclarationSorter;
type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss';
/**
* 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

@@ -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';
/**
* 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

@@ -0,0 +1,152 @@
import { shorthandData } from './shorthand-data.mjs';
import { bubbleSort } from './bubble-sort.mjs';
const builtInOrders = [
'alphabetical',
'concentric-css',
'smacss',
];
export const cssDeclarationSorter = ({ order = 'alphabetical', keepOverrides = false } = {}) => ({
postcssPlugin: 'css-declaration-sorter',
OnceExit (css) {
let withKeepOverrides = comparator => comparator;
if (keepOverrides) {
withKeepOverrides = withOverridesComparator(shorthandData);
}
if (typeof order === 'function') {
return processCss({ css, comparator: withKeepOverrides(order) });
}
if (!builtInOrders.includes(order))
return Promise.reject(
Error([
`Invalid built-in order '${order}' provided.`,
`Available built-in orders are: ${builtInOrders}`,
].join('\n'))
);
return import(`../orders/${order}.mjs`)
.then(({ properties }) => processCss({
css,
comparator: withKeepOverrides(orderComparator(properties)),
}));
},
});
cssDeclarationSorter.postcss = true;
// Kept for backward compatibility
export default cssDeclarationSorter;
function processCss ({ css, comparator }) {
const comments = [];
const rulesCache = [];
css.walk(node => {
const nodes = node.nodes;
const type = node.type;
if (type === 'comment') {
// Don't do anything to root comments or the last newline comment
const isNewlineNode = node.raws.before && node.raws.before.includes('\n');
const lastNewlineNode = isNewlineNode && !node.next();
const onlyNode = !node.prev() && !node.next() || !node.parent;
if (lastNewlineNode || onlyNode || node.parent.type === 'root') {
return;
}
if (isNewlineNode) {
const pairedNode = node.next() || node.prev();
if (pairedNode) {
comments.unshift({
'comment': node,
'pairedNode': pairedNode,
'insertPosition': node.next() ? 'Before' : 'After',
});
node.remove();
}
} else {
const pairedNode = node.prev() || node.next();
if (pairedNode) {
comments.push({
'comment': node,
'pairedNode': pairedNode,
'insertPosition': 'After',
});
node.remove();
}
}
return;
}
// Add rule-like nodes to a cache so that we can remove all
// comment nodes before we start sorting.
const isRule = type === 'rule' || type === 'atrule';
if (isRule && nodes && nodes.length > 1) {
rulesCache.push(nodes);
}
});
// Perform a sort once all comment nodes are removed
rulesCache.forEach(nodes => {
sortCssDeclarations({ nodes, comparator });
});
// Add comments back to the nodes they are paired with
comments.forEach(node => {
const pairedNode = node.pairedNode;
node.comment.remove();
pairedNode.parent && pairedNode.parent['insert' + node.insertPosition](pairedNode, node.comment);
});
}
function sortCssDeclarations ({ nodes, comparator }) {
bubbleSort(nodes, (a, b) => {
if (a.type === 'decl' && b.type === 'decl') {
return comparator(a.prop, b.prop);
} else {
return compareDifferentType(a, b);
}
});
}
function withOverridesComparator (shorthandData) {
return function (comparator) {
return function (a, b) {
a = removeVendorPrefix(a);
b = removeVendorPrefix(b);
if (shorthandData[a] && shorthandData[a].includes(b)) return 0;
if (shorthandData[b] && shorthandData[b].includes(a)) return 0;
return comparator(a, b);
};
};
}
function orderComparator (order) {
return function (a, b) {
const bIndex = order.indexOf(b);
if (bIndex === -1) {
return 0;
}
return order.indexOf(a) - bIndex;
};
}
function compareDifferentType (a, b) {
if (b.type === 'atrule' || a.type === 'atrule') {
return 0;
}
return a.type === 'decl' ? -1 : b.type === 'decl' ? 1 : 0;
}
function removeVendorPrefix (property) {
return property.replace(/^-\w+-/, '');
}

View File

@@ -0,0 +1,255 @@
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: '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;animation-timeline: none;}',
expected: 'a{animation: 0;animation-timeline: none;}',
},
{
message: 'Retain unknown next to known properties, right to left.',
fixture: 'a{animation-timeline: none;animation: 0;}',
expected: 'a{animation-timeline: 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

@@ -0,0 +1,454 @@
export const shorthandData = {
'animation': [
'animation-name',
'animation-duration',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction',
'animation-fill-mode',
'animation-play-state',
],
'background': [
'background-image',
'background-size',
'background-position',
'background-repeat',
'background-origin',
'background-clip',
'background-attachment',
'background-color',
],
'columns': [
'column-width',
'column-count',
],
'column-rule': [
'column-rule-width',
'column-rule-style',
'column-rule-color',
],
'flex': [
'flex-grow',
'flex-shrink',
'flex-basis',
],
'flex-flow': [
'flex-direction',
'flex-wrap',
],
'font': [
'font-style',
'font-variant',
'font-weight',
'font-stretch',
'font-size',
'font-family',
'line-height',
],
'gap': [
'column-gap',
'row-gap',
],
'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-start',
'grid-column-start',
'grid-row-end',
'grid-column-end',
],
'grid-column': [
'grid-column-start',
'grid-column-end',
],
'grid-row': [
'grid-row-start',
'grid-row-end',
],
'grid-template': [
'grid-template-columns',
'grid-template-rows',
'grid-template-areas',
],
'list-style': [
'list-style-type',
'list-style-position',
'list-style-image',
],
'offset': [
'offset-anchor',
'offset-distance',
'offset-path',
'offset-position',
'offset-rotate',
],
'padding': [
'padding-block',
'padding-block-start',
'padding-block-end',
'padding-inline',
'padding-inline-start',
'padding-inline-end',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
],
'padding-block': [
'padding-block-start',
'padding-block-end',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
],
'padding-block-start': [
'padding-top',
'padding-right',
'padding-left',
],
'padding-block-end': [
'padding-right',
'padding-bottom',
'padding-left',
],
'padding-inline': [
'padding-inline-start',
'padding-inline-end',
'padding-top',
'padding-right',
'padding-bottom',
'padding-left',
],
'padding-inline-start': [
'padding-top',
'padding-right',
'padding-left',
],
'padding-inline-end': [
'padding-right',
'padding-bottom',
'padding-left',
],
'margin': [
'margin-block',
'margin-block-start',
'margin-block-end',
'margin-inline',
'margin-inline-start',
'margin-inline-end',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
],
'margin-block': [
'margin-block-start',
'margin-block-end',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
],
'margin-inline': [
'margin-inline-start',
'margin-inline-end',
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
],
'margin-inline-start': [
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
],
'margin-inline-end': [
'margin-top',
'margin-right',
'margin-bottom',
'margin-left',
],
'border': [
'border-top',
'border-right',
'border-bottom',
'border-left',
'border-width',
'border-style',
'border-color',
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width',
'border-inline-start-width',
'border-inline-end-width',
'border-block-start-width',
'border-block-end-width',
'border-top-style',
'border-right-style',
'border-bottom-style',
'border-left-style',
'border-inline-start-style',
'border-inline-end-style',
'border-block-start-style',
'border-block-end-style',
'border-top-color',
'border-right-color',
'border-bottom-color',
'border-left-color',
'border-inline-start-color',
'border-inline-end-color',
'border-block-start-color',
'border-block-end-color',
'border-block',
'border-block-start',
'border-block-end',
'border-block-width',
'border-block-style',
'border-block-color',
'border-inline',
'border-inline-start',
'border-inline-end',
'border-inline-width',
'border-inline-style',
'border-inline-color',
],
'border-top': [
'border-width',
'border-style',
'border-color',
'border-top-width',
'border-top-style',
'border-top-color',
],
'border-right': [
'border-width',
'border-style',
'border-color',
'border-right-width',
'border-right-style',
'border-right-color',
],
'border-bottom': [
'border-width',
'border-style',
'border-color',
'border-bottom-width',
'border-bottom-style',
'border-bottom-color',
],
'border-left': [
'border-width',
'border-style',
'border-color',
'border-left-width',
'border-left-style',
'border-left-color',
],
'border-color': [
'border-top-color',
'border-bottom-color',
'border-left-color',
'border-right-color',
'border-inline-start-color',
'border-inline-end-color',
'border-block-start-color',
'border-block-end-color',
],
'border-width': [
'border-top-width',
'border-bottom-width',
'border-left-width',
'border-right-width',
'border-inline-start-width',
'border-inline-end-width',
'border-block-start-width',
'border-block-end-width',
],
'border-style': [
'border-top-style',
'border-bottom-style',
'border-left-style',
'border-right-style',
'border-inline-start-style',
'border-inline-end-style',
'border-block-start-style',
'border-block-end-style',
],
'border-radius': [
'border-top-right-radius',
'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',
'border-block-end',
'border-block-width',
'border-width',
'border-block-style',
'border-style',
'border-block-color',
'border-color',
],
'border-block-start': [
'border-block-start-width',
'border-width',
'border-block-start-style',
'border-style',
'border-block-start-color',
'border-color',
],
'border-block-end': [
'border-block-end-width',
'border-width',
'border-block-end-style',
'border-style',
'border-block-end-color',
'border-color',
],
'border-inline': [
'border-inline-start',
'border-inline-end',
'border-inline-width',
'border-width',
'border-inline-style',
'border-style',
'border-inline-color',
'border-color',
],
'border-inline-start': [
'border-inline-start-width',
'border-width',
'border-inline-start-style',
'border-style',
'border-inline-start-color',
'border-color',
],
'border-inline-end': [
'border-inline-end-width',
'border-width',
'border-inline-end-style',
'border-style',
'border-inline-end-color',
'border-color',
],
'border-image': [
'border-image-source',
'border-image-slice',
'border-image-width',
'border-image-outset',
'border-image-repeat',
],
'mask': [
'mask-image',
'mask-mode',
'mask-position',
'mask-size',
'mask-repeat',
'mask-origin',
'mask-clip',
'mask-composite',
],
'inline-size': [
'width',
'height',
],
'block-size': [
'width',
'height',
],
'max-inline-size': [
'max-width',
'max-height',
],
'max-block-size': [
'max-width',
'max-height',
],
'inset': [
'inset-block',
'inset-block-start',
'inset-block-end',
'inset-inline',
'inset-inline-start',
'inset-inline-end',
'top',
'right',
'bottom',
'left',
],
'inset-block': [
'inset-block-start',
'inset-block-end',
'top',
'right',
'bottom',
'left',
],
'inset-inline': [
'inset-inline-start',
'inset-inline-end',
'top',
'right',
'bottom',
'left',
],
'outline': [
'outline-color',
'outline-style',
'outline-width',
],
'overflow': [
'overflow-x',
'overflow-y',
],
'place-content': [
'align-content',
'justify-content',
],
'place-items': [
'align-items',
'justify-items',
],
'place-self': [
'align-self',
'justify-self',
],
'text-decoration': [
'text-decoration-color',
'text-decoration-style',
'text-decoration-line',
],
'transition': [
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
],
'text-emphasis': [
'text-emphasis-style',
'text-emphasis-color',
],
'font-synthesis': [
'font-synthesis-weight',
'font-synthesis-style',
'font-synthesis-small-caps',
'font-synthesis-position',
],
};

View File

@@ -0,0 +1,407 @@
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-composition",
"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",
"baseline-source",
"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-interpolation",
"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-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",
"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",
"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",
"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",
"text-wrap",
"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",
"vertical-align",
"visibility",
"white-space",
"white-space-collapse",
"widows",
"width",
"will-change",
"word-break",
"word-spacing",
"writing-mode",
"z-index"
]

View File

@@ -0,0 +1,411 @@
export const properties = [
"all",
"display",
"position",
"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",
"baseline-source",
"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-composition",
"animation-duration",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"animation-play-state",
"animation-name",
"transition",
"transition-behavior",
"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",
"color-interpolation",
"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",
"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",
"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",
"white-space",
"white-space-collapse",
"word-break",
"word-spacing",
"overflow-wrap",
"tab-size",
"widows"
]

View File

@@ -0,0 +1,413 @@
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-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",
"-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",
"color-interpolation",
"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",
"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",
"text-wrap",
"vertical-align",
"baseline-source",
"white-space",
"white-space-collapse",
"word-break",
"word-spacing",
"overflow-wrap",
"animation",
"animation-composition",
"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",
"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"
]