From 7f45ea95d3d31addf29b0720de8623b0f3f0431d Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Fri, 3 May 2024 17:52:10 -0400 Subject: [PATCH] build: cssnano optimizations (#2616) --- .changeset/swift-teachers-warn.md | 88 ++++++ .prettierrc | 10 +- lint-staged.config.js | 1 + package.json | 8 +- postcss.config.js | 24 +- tasks/component-builder.js | 12 +- yarn.lock | 452 +++++++++++++++++++++++++++++- 7 files changed, 573 insertions(+), 22 deletions(-) create mode 100644 .changeset/swift-teachers-warn.md diff --git a/.changeset/swift-teachers-warn.md b/.changeset/swift-teachers-warn.md new file mode 100644 index 0000000000..c0a17cae67 --- /dev/null +++ b/.changeset/swift-teachers-warn.md @@ -0,0 +1,88 @@ +--- +"@spectrum-css/accordion": minor +"@spectrum-css/actionbar": minor +"@spectrum-css/actionbutton": minor +"@spectrum-css/actiongroup": minor +"@spectrum-css/actionmenu": minor +"@spectrum-css/alertbanner": minor +"@spectrum-css/alertdialog": minor +"@spectrum-css/asset": minor +"@spectrum-css/assetcard": minor +"@spectrum-css/assetlist": minor +"@spectrum-css/avatar": minor +"@spectrum-css/badge": minor +"@spectrum-css/breadcrumb": minor +"@spectrum-css/button": minor +"@spectrum-css/buttongroup": minor +"@spectrum-css/calendar": minor +"@spectrum-css/card": minor +"@spectrum-css/checkbox": minor +"@spectrum-css/clearbutton": minor +"@spectrum-css/closebutton": minor +"@spectrum-css/coachindicator": minor +"@spectrum-css/coachmark": minor +"@spectrum-css/colorarea": minor +"@spectrum-css/colorhandle": minor +"@spectrum-css/colorloupe": minor +"@spectrum-css/colorslider": minor +"@spectrum-css/colorwheel": minor +"@spectrum-css/combobox": minor +"@spectrum-css/contextualhelp": minor +"@spectrum-css/datepicker": minor +"@spectrum-css/dial": minor +"@spectrum-css/dialog": minor +"@spectrum-css/divider": minor +"@spectrum-css/dropindicator": minor +"@spectrum-css/dropzone": minor +"@spectrum-css/fieldgroup": minor +"@spectrum-css/fieldlabel": minor +"@spectrum-css/floatingactionbutton": minor +"@spectrum-css/helptext": minor +"@spectrum-css/icon": minor +"@spectrum-css/illustratedmessage": minor +"@spectrum-css/infieldbutton": minor +"@spectrum-css/inlinealert": minor +"@spectrum-css/link": minor +"@spectrum-css/logicbutton": minor +"@spectrum-css/menu": minor +"@spectrum-css/miller": minor +"@spectrum-css/modal": minor +"@spectrum-css/opacitycheckerboard": minor +"@spectrum-css/page": minor +"@spectrum-css/pagination": minor +"@spectrum-css/picker": minor +"@spectrum-css/pickerbutton": minor +"@spectrum-css/popover": minor +"@spectrum-css/progressbar": minor +"@spectrum-css/progresscircle": minor +"@spectrum-css/radio": minor +"@spectrum-css/rating": minor +"@spectrum-css/search": minor +"@spectrum-css/sidenav": minor +"@spectrum-css/site": minor +"@spectrum-css/slider": minor +"@spectrum-css/splitview": minor +"@spectrum-css/statuslight": minor +"@spectrum-css/steplist": minor +"@spectrum-css/stepper": minor +"@spectrum-css/swatch": minor +"@spectrum-css/swatchgroup": minor +"@spectrum-css/switch": minor +"@spectrum-css/table": minor +"@spectrum-css/tabs": minor +"@spectrum-css/tag": minor +"@spectrum-css/taggroup": minor +"@spectrum-css/textfield": minor +"@spectrum-css/thumbnail": minor +"@spectrum-css/toast": minor +"@spectrum-css/tooltip": minor +"@spectrum-css/tray": minor +"@spectrum-css/treeview": minor +"@spectrum-css/typography": minor +"@spectrum-css/underlay": minor +"@spectrum-css/well": minor +--- + +## Build optmizations to support minification + +Output for all component CSS files is now being run through a lightweight optimizer (cssnano) which significantly reduces unnecessary whitespace. These changes reduce file size but should not have any impact on the rendering of the component. By removing unnecessary whitespace from var functions, we are making it easier to effectively minify our provided CSS assets. diff --git a/.prettierrc b/.prettierrc index 76186d7b19..202b6470b0 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,12 @@ { "tabWidth": 2, - "useTabs": true + "useTabs": true, + "overrides": [ + { + "files": "*.css", + "options": { + "printWidth": 500 + } + } + ] } diff --git a/lint-staged.config.js b/lint-staged.config.js index fe1f6950bd..64a124cc75 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -1,5 +1,6 @@ module.exports = { "components/*/*.css": [ + "prettier --no-error-on-unmatched-pattern --ignore-unknown --loglevel silent --write", "stylelint --fix --cache --allow-empty-input --quiet" ], "*.json": [ diff --git a/package.json b/package.json index c245c8b432..935e85a713 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "refresh:config": "bash ./tasks/chromatic-config-creation.sh || exit 0", "refresh:directory": "bash ./tasks/clean-up-after-migration.sh || exit 0", "refresh:env": "bash ./tasks/copy-env-from-root.sh || exit 0", - "release": "cross-env NODE_ENV=production yarn builder token,tag:component,ui-icons --skip-nx-cache && changeset publish", + "release": "yarn ci && changeset publish", "release:site": "cross-env NODE_ENV=production yarn build:site --skip-nx-cache && gh-pages -d dist/ -f -e .", "start": "cross-env NODE_ENV=development nx start storybook", "test": "cross-env NODE_ENV=production nx test storybook", @@ -71,6 +71,8 @@ "autoprefixer": "^10.4.19", "colors": "^1.4.0", "cross-env": "^7.0.3", + "cssnano": "^7.0.1", + "cssnano-preset-advanced": "^7.0.1", "diff": "^5.2.0", "diff2html": "^3.4.48", "eslint": "^8.57.0", @@ -91,8 +93,6 @@ "pajv": "^1.2.0", "postcss": "^8.4.38", "postcss-combininator": "^2.0.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-empty": "^6.0.3", "postcss-extend": "^1.0.5", "postcss-hover-media-feature": "^1.0.2", "postcss-import": "^16.1.0", @@ -100,7 +100,7 @@ "postcss-preset-env": "^9.5.9", "postcss-reporter": "^7.1.0", "postcss-splitinator": "^2.0.0", - "prettier": "^2.8.8", + "prettier": "^3.2.5", "rimraf": "^5.0.5", "stylelint": "^15.11.0", "stylelint-config-clean-order": "^5.4.2", diff --git a/postcss.config.js b/postcss.config.js index b4aa80812d..df94f0a64b 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -20,7 +20,6 @@ module.exports = ({ noFlatVariables: false, }, combine = false, - keepComments = false, lint = true, verbose = true, additionalPlugins = {}, @@ -85,13 +84,15 @@ module.exports = ({ /* --------------------------------------------------- */ /* ------------------- SASS-LIKE UTILITIES ----------- */ "postcss-extend": {}, + "postcss-hover-media-feature": {}, + /* --------------------------------------------------- */ + /* ------------------- VARIABLE PARSING -------------- */ "postcss-splitinator": { processIdentifier: (identifier) => identifier === "express" ? "spectrum--express" : identifier, ...splitinatorOptions, }, "postcss-combininator": combine ? {} : false, - "postcss-hover-media-feature": {}, ...additionalPlugins, /* --------------------------------------------------- */ /* ------------------- POLYFILLS --------------------- */ @@ -124,12 +125,21 @@ module.exports = ({ }, }, /* --------------------------------------------------- */ - /* ------------------- CLEAN-UP TASKS ---------------- */ - "postcss-discard-empty": {}, + /* ------------------- ORGANIZE/DEDUPE --------------- */ "at-rule-packer": {}, - "postcss-discard-comments": !keepComments - ? { removeAllButFirst: true } - : false, + cssnano: { + preset: [ + "cssnano-preset-advanced", + { + colormin: false, + discardComments: { + removeAllButFirst: true, + }, + // @todo yarn add -DW css-declaration-sorter + cssDeclarationSorter: false, // @todo { order: "smacss" } + }, + ], + }, /* --------------------------------------------------- */ /* ------------------- REPORTING --------------------- */ stylelint: lint diff --git a/tasks/component-builder.js b/tasks/component-builder.js index 7379d2b248..e9825bc64a 100644 --- a/tasks/component-builder.js +++ b/tasks/component-builder.js @@ -129,13 +129,13 @@ async function extractModifiers(filepath, { cwd } = {}) { promises.push( fsp.writeFile( path.join(cwd, `metadata/mods.md`), - prettier.format( + (await prettier.format( [ "| Modifiable custom properties |\n| --- |", ...[...found].sort().map((result) => `| \`${result}\` |`), ].join("\n"), { parser: "markdown" } - ), + )), { encoding: "utf-8" } ) .then(() => `${"✓".green} ${"metadata/mods.md".padEnd(20, " ").yellow} ${'-- deprecated --'.gray}`) @@ -150,7 +150,7 @@ async function extractModifiers(filepath, { cwd } = {}) { promises.push( fsp.writeFile( path.join(cwd, `dist/metadata.json`), - prettier.format( + (await prettier.format( JSON.stringify({ selectors: [...selectors].sort(), mods: [...found].sort(), @@ -159,7 +159,7 @@ async function extractModifiers(filepath, { cwd } = {}) { a11y: [...highContrast].sort(), }, null, 2), { parser: "json" } - ), + )), { encoding: "utf-8" } ).then(() => { const stats = fs.statSync(path.join(cwd, `dist/metadata.json`)); @@ -226,9 +226,7 @@ async function processCSS(content, input, output, { const promises = []; if (result.css) { - // @todo update build to use prettier formatted results - // const formatted = prettier.format(result.css.trimStart(), { parser: "css", printWidth: 180 }); - const formatted = result.css.trimStart(); + const formatted = await prettier.format(result.css.trimStart(), { parser: "css", printWidth: 500 }); promises.push( fsp.writeFile(output, formatted).then(() => { const stats = fs.statSync(output); diff --git a/yarn.lock b/yarn.lock index 9ab33b2364..d241781119 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10280,6 +10280,15 @@ __metadata: languageName: node linkType: hard +"css-declaration-sorter@npm:^7.2.0": + version: 7.2.0 + resolution: "css-declaration-sorter@npm:7.2.0" + peerDependencies: + postcss: ^8.0.9 + checksum: 10c0/d8516be94f8f2daa233ef021688b965c08161624cbf830a4d7ee1099429437c0ee124d35c91b1c659cfd891a68e8888aa941726dab12279bc114aaed60a94606 + languageName: node + linkType: hard + "css-functions-list@npm:^3.2.1": version: 3.2.1 resolution: "css-functions-list@npm:3.2.1" @@ -10409,6 +10418,63 @@ __metadata: languageName: node linkType: hard +"cssnano-preset-advanced@npm:^7.0.1": + version: 7.0.1 + resolution: "cssnano-preset-advanced@npm:7.0.1" + dependencies: + autoprefixer: "npm:^10.4.19" + browserslist: "npm:^4.23.0" + cssnano-preset-default: "npm:^7.0.1" + postcss-discard-unused: "npm:^7.0.0" + postcss-merge-idents: "npm:^7.0.0" + postcss-reduce-idents: "npm:^7.0.0" + postcss-zindex: "npm:^7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/a585e088b3235df98ba96f8bb96e2532f868b47657ffeef9f58afb1e70b9dd8f6ea0e81c99bf198a3305fc3c41daac4ad3ee0a0481ba3063106ee2f42d99ad9f + languageName: node + linkType: hard + +"cssnano-preset-default@npm:^7.0.1": + version: 7.0.1 + resolution: "cssnano-preset-default@npm:7.0.1" + dependencies: + browserslist: "npm:^4.23.0" + css-declaration-sorter: "npm:^7.2.0" + cssnano-utils: "npm:^5.0.0" + postcss-calc: "npm:^10.0.0" + postcss-colormin: "npm:^7.0.0" + postcss-convert-values: "npm:^7.0.0" + postcss-discard-comments: "npm:^7.0.0" + postcss-discard-duplicates: "npm:^7.0.0" + postcss-discard-empty: "npm:^7.0.0" + postcss-discard-overridden: "npm:^7.0.0" + postcss-merge-longhand: "npm:^7.0.0" + postcss-merge-rules: "npm:^7.0.0" + postcss-minify-font-values: "npm:^7.0.0" + postcss-minify-gradients: "npm:^7.0.0" + postcss-minify-params: "npm:^7.0.0" + postcss-minify-selectors: "npm:^7.0.0" + postcss-normalize-charset: "npm:^7.0.0" + postcss-normalize-display-values: "npm:^7.0.0" + postcss-normalize-positions: "npm:^7.0.0" + postcss-normalize-repeat-style: "npm:^7.0.0" + postcss-normalize-string: "npm:^7.0.0" + postcss-normalize-timing-functions: "npm:^7.0.0" + postcss-normalize-unicode: "npm:^7.0.0" + postcss-normalize-url: "npm:^7.0.0" + postcss-normalize-whitespace: "npm:^7.0.0" + postcss-ordered-values: "npm:^7.0.0" + postcss-reduce-initial: "npm:^7.0.0" + postcss-reduce-transforms: "npm:^7.0.0" + postcss-svgo: "npm:^7.0.0" + postcss-unique-selectors: "npm:^7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/bee65239d25de2ba87e85b4091cbc1cac9ba1b57c9f803dff5a71ea8a55a885045805840dd732be284c28cca6343dece37fc76d7096aba37cfa02eff2ee7714c + languageName: node + linkType: hard + "cssnano-utils@npm:^4.0.2": version: 4.0.2 resolution: "cssnano-utils@npm:4.0.2" @@ -10418,6 +10484,27 @@ __metadata: languageName: node linkType: hard +"cssnano-utils@npm:^5.0.0": + version: 5.0.0 + resolution: "cssnano-utils@npm:5.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/492593fb45151e8622357bb958d0d80475372de38523ef0587d77e9c5f386beb55c30b41f2f3c735a374a230bc61404eb7ae9c2beeab0666afb499442c62ecba + languageName: node + linkType: hard + +"cssnano@npm:^7.0.1": + version: 7.0.1 + resolution: "cssnano@npm:7.0.1" + dependencies: + cssnano-preset-default: "npm:^7.0.1" + lilconfig: "npm:^3.1.1" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/8b17d13efe98ec2db2fbde9ca24e91842b9afe2f80becc5e4271ee1170d77cf73eed3cdc2f35ed51bacdeac763ff85db45ae8e9627a8862bf01d457a819a640e + languageName: node + linkType: hard + "csso@npm:^5.0.5": version: 5.0.5 resolution: "csso@npm:5.0.5" @@ -17501,6 +17588,18 @@ __metadata: languageName: node linkType: hard +"postcss-calc@npm:^10.0.0": + version: 10.0.0 + resolution: "postcss-calc@npm:10.0.0" + dependencies: + postcss-selector-parser: "npm:^6.0.16" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.38 + checksum: 10c0/d4d529f2f71b49f17441eed74a7564ccd2779c72ed8648d4bb2530261a27c0ca01fe6a07260e7bf57e55f46dd68dea07e52fd1a6b538db7bc13015124be258a5 + languageName: node + linkType: hard + "postcss-clamp@npm:^4.1.0": version: 4.1.0 resolution: "postcss-clamp@npm:4.1.0" @@ -17575,6 +17674,20 @@ __metadata: languageName: node linkType: hard +"postcss-colormin@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-colormin@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + caniuse-api: "npm:^3.0.0" + colord: "npm:^2.9.3" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/d365a5365e0a94748309d32c7208cd06249bc53eb82cc32c771de4073b109fa8552e58d60dbe84d7e69e68081ed8a01fbf645d38a650e90cb2e13b21043cd796 + languageName: node + linkType: hard + "postcss-combine-duplicated-selectors@npm:^10.0.3": version: 10.0.3 resolution: "postcss-combine-duplicated-selectors@npm:10.0.3" @@ -17595,6 +17708,18 @@ __metadata: languageName: unknown linkType: soft +"postcss-convert-values@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-convert-values@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/5d7cfa06f307e024574a1842016f006691e0c1932352f53a99ce8f2f9930c64c3c1ae17518e9e4e5176630b99f1beaab37bc339bc779fb07dc543670ae66bb21 + languageName: node + linkType: hard + "postcss-custom-media@npm:^10.0.4": version: 10.0.4 resolution: "postcss-custom-media@npm:10.0.4" @@ -17670,6 +17795,24 @@ __metadata: languageName: node linkType: hard +"postcss-discard-comments@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-discard-comments@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/7fef7deea85c1e68161f69057be19a3aedd54d23c9b464c9b1531faa7a115f0c96a4f0ee3a560ce300578599dbc8114fe0fb744208b20b9d2fd8df1b4b39c58a + languageName: node + linkType: hard + +"postcss-discard-duplicates@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-discard-duplicates@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/37d568dc18d47b8b9f0fd6d5115b1faf96c2bf429fc4586508a773533479e18627d6260cad6a3ca7d3bfc2f220fd9448410aee40e07f2ec6c6f96bbe3595dbc8 + languageName: node + linkType: hard + "postcss-discard-empty@npm:^6.0.3": version: 6.0.3 resolution: "postcss-discard-empty@npm:6.0.3" @@ -17679,6 +17822,35 @@ __metadata: languageName: node linkType: hard +"postcss-discard-empty@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-discard-empty@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/b54fc9ad59a6015f6b82b8c826717a4a2f82b272608f6ae37a0b568f4f6c503f5ac7d13d415853a946a0422cb37b9fe1d5ddcee91fe0c2086001138710600d8b + languageName: node + linkType: hard + +"postcss-discard-overridden@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-discard-overridden@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/ca00ed1d4e8793fc780039f235fa2caef123d3aa28cae47cc1472ca03b21386c39fae1f11fbf319dcb94c6bda923824067254c7e20e8b00354b47015dc754658 + languageName: node + linkType: hard + +"postcss-discard-unused@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-discard-unused@npm:7.0.0" + dependencies: + postcss-selector-parser: "npm:^6.0.16" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/1c460a508ba85c8ebb90fc688f64a7e3ff28b6ab1c678fe4a581248f9d807b2bd4d0b0fa5b287240d6f8bbee4bad719929adcc165115173220fca914a8f510dc + languageName: node + linkType: hard + "postcss-double-position-gradients@npm:^5.0.6": version: 5.0.6 resolution: "postcss-double-position-gradients@npm:5.0.6" @@ -17871,6 +18043,30 @@ __metadata: languageName: node linkType: hard +"postcss-merge-idents@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-merge-idents@npm:7.0.0" + dependencies: + cssnano-utils: "npm:^5.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/c5892d3c06efaa963559f1a0354dcb35edce482b64b847c00b4ccc8a7b29da11b09581aec1c8c7bb2f40ac078df222083351bb2bf2a280253c44179ffbf7bde7 + languageName: node + linkType: hard + +"postcss-merge-longhand@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-merge-longhand@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + stylehacks: "npm:^7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/5f814f396a5107dcb5e74c2d4e55ebcd03b9bc2b3619ed7aea63a441854023ce349bc371d30aec1ac33a375139afac02709e7721e055b5e624701ac6576e8a10 + languageName: node + linkType: hard + "postcss-merge-rules@npm:^6.1.1": version: 6.1.1 resolution: "postcss-merge-rules@npm:6.1.1" @@ -17885,6 +18081,68 @@ __metadata: languageName: node linkType: hard +"postcss-merge-rules@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-merge-rules@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + caniuse-api: "npm:^3.0.0" + cssnano-utils: "npm:^5.0.0" + postcss-selector-parser: "npm:^6.0.16" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/d9cb3a4e55db57aa7ba0bb1caefb82db93c8493d2b3db66091dae9d5794ca04729e660115765ff254d0eb960e4db037f6c5b92562b396b05216888d12acc08e0 + languageName: node + linkType: hard + +"postcss-minify-font-values@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-minify-font-values@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/f8be40099a6986d96b9cd2eb9c32a9c681efc6ecd6504c9ab7e01feb9e688c8b9656dfd7f35aa6de2585a86d607f62152ee81d0175e712e4658d184d25f63d58 + languageName: node + linkType: hard + +"postcss-minify-gradients@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-minify-gradients@npm:7.0.0" + dependencies: + colord: "npm:^2.9.3" + cssnano-utils: "npm:^5.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/15d162192b598242e14def81a62e30cf273ab14f1db702c391e6bdd442c570a1aa76fc326874253a2d67f75b4d4fe73ba4f664e85dbff883f24b7090c340bfad + languageName: node + linkType: hard + +"postcss-minify-params@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-minify-params@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + cssnano-utils: "npm:^5.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/28a7ae313a197aeaff8b3fa1e695a6443b11a74258374a05adee6a1b05f5849ef52037b7a5069d6910614b03b4610acdaf4a76f38b89cb42e813a8cb5ec2fc01 + languageName: node + linkType: hard + +"postcss-minify-selectors@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-minify-selectors@npm:7.0.0" + dependencies: + postcss-selector-parser: "npm:^6.0.16" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/6baf0ea71b8dfd01bdb5b516d01aa00244c55cad8d9c674358d735cef2a6aca6586dd480d419cc8d3f470e6d2d7d19354592044f19766993caf9800d3d7e0d36 + languageName: node + linkType: hard + "postcss-modules-extract-imports@npm:^3.0.0": version: 3.1.0 resolution: "postcss-modules-extract-imports@npm:3.1.0" @@ -17942,6 +18200,104 @@ __metadata: languageName: node linkType: hard +"postcss-normalize-charset@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-charset@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/06d9c4487a4b0e195133a1fb7a115db7014e49d2567cce73e24c59f473f0e65a1999850a726afb3bdb2d36017a3e5c92ac4fd2a7ecc427da4ff79522765fabdd + languageName: node + linkType: hard + +"postcss-normalize-display-values@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-display-values@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/439524e1d3ed36d6265c05da10540e17aa8605e1b396f71ca4364ab3b8b98ca97763c58c211fb9492662429d43613a7fe7009a8638c84a8db327e572c382272a + languageName: node + linkType: hard + +"postcss-normalize-positions@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-positions@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/428763c937cd178c8ee544cd93a9d1fef667dc9a8700ffe2e61b0beeea7f64f712492b9aeb8a1ef927ab752ec34be7ddeb23d2b50e4bc6eba02b0e58312b27a7 + languageName: node + linkType: hard + +"postcss-normalize-repeat-style@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-repeat-style@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/cf7cd9f355fd26f1c9b0c11a923029ac5ea3020520db5a9778dd19c5ee1f48a1f1f368b4ae75fc6b63cb5761eef72333e486ab0de1537b9cb62d213a8c5576d0 + languageName: node + linkType: hard + +"postcss-normalize-string@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-string@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/8857563f85841ce432bb9a5a9ba129847890b61693adff96d565b69dc2d5456f54dec33f4f6ce5b0abf0a484dbfb0145846d99f988959c5ac875a86a2a180576 + languageName: node + linkType: hard + +"postcss-normalize-timing-functions@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-timing-functions@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/bc5f6999b4c9e28e5be785ef90fe68fd48d44059ecc73ee194c2603260597d685b13a1e1751df9a2cee100fea7abb7e1b1cbcf1a7a428a576961705c9d426788 + languageName: node + linkType: hard + +"postcss-normalize-unicode@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-unicode@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/f2d6ab0076c006dcf3ed33ba30686f2d29e81a408c66acced22e2c942df6d613697ea786137833dd258aafab5fda4d3eb27df13a82df830357dbad9b79154881 + languageName: node + linkType: hard + +"postcss-normalize-url@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-url@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/3050e228be48fe0121d1316c267e629b232e8401a547128d142c3dea55eeae1e232c9beeea5c76439009188993b14925c5cf40e3a44856d076a7b8fcf4721f86 + languageName: node + linkType: hard + +"postcss-normalize-whitespace@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-normalize-whitespace@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/8d61234962a4850fc61292592171e1d13de2e90d96a2eaed8c85672a05caceda02a3bd1cb495cb72414741f99d50083362df14923efaca1b3e09657d24cea34b + languageName: node + linkType: hard + "postcss-opacity-percentage@npm:^2.0.0": version: 2.0.0 resolution: "postcss-opacity-percentage@npm:2.0.0" @@ -17951,6 +18307,18 @@ __metadata: languageName: node linkType: hard +"postcss-ordered-values@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-ordered-values@npm:7.0.0" + dependencies: + cssnano-utils: "npm:^5.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/42b14f9518b573318594c2aeb2f13fd1fbe44936d14f1b28a438e7a82644ace9a2946699bebfe7a2d383534dc24e7203c35308d749f3c585a86daa238ad920a4 + languageName: node + linkType: hard + "postcss-overflow-shorthand@npm:^5.0.1": version: 5.0.1 resolution: "postcss-overflow-shorthand@npm:5.0.1" @@ -18072,6 +18440,40 @@ __metadata: languageName: node linkType: hard +"postcss-reduce-idents@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-reduce-idents@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/d46d67c60ada9016e5202f7a8f069c1d2fc9e157401235d9b364366384ab0695ce7c9b1e6b0561948bfc388df5a8f3b9fcb2aa5301c7d6d7d140b7a56b3716d4 + languageName: node + linkType: hard + +"postcss-reduce-initial@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-reduce-initial@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + caniuse-api: "npm:^3.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/ed50cd680ce258df953b82ce9b3fb52564d08548724577810800e236d017d80430cbccb4b1ad38b0f4d521663598e44ab93136b20064231181ef49e1e113ae10 + languageName: node + linkType: hard + +"postcss-reduce-transforms@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-reduce-transforms@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/b2d4b65e71d38b604b41937850d1d64794964d6eced90f05891cfae8a78c7a9fed49911f51da9dcc5d715ac18e8bc7eacf691f2c5321dfe4d781f3e4442dfea9 + languageName: node + linkType: hard + "postcss-replace-overflow-wrap@npm:^4.0.0": version: 4.0.0 resolution: "postcss-replace-overflow-wrap@npm:4.0.0" @@ -18167,6 +18569,29 @@ __metadata: languageName: unknown linkType: soft +"postcss-svgo@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-svgo@npm:7.0.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + svgo: "npm:^3.2.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/0e724069b5de83aa2b8f8a4746cb60cb663e0a8bbab0e4ba995649cb0562205af57d1f54b89fb90d8ae04a4b7ac3ac6e3751afffc3cff697cb19f7a36b71b195 + languageName: node + linkType: hard + +"postcss-unique-selectors@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-unique-selectors@npm:7.0.0" + dependencies: + postcss-selector-parser: "npm:^6.0.16" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/33b532ad0e9271c5a379859e18adfdc72986bb538672cc0fbc06295d824f82dba3f7b57264e18a3214901bc5244ff5408d28b530374d24a088507287c7f520ce + languageName: node + linkType: hard + "postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" @@ -18174,6 +18599,15 @@ __metadata: languageName: node linkType: hard +"postcss-zindex@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-zindex@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/486fe2305e8db47a336b0ac9604288274bf5232b32cc121b1683d20bc84d43e797f0c114ace67066c4d8e97869eddcc6378f824f6be6af8488fc5c884c130d27 + languageName: node + linkType: hard + "postcss@npm:^5.0.4": version: 5.2.18 resolution: "postcss@npm:5.2.18" @@ -20056,6 +20490,8 @@ __metadata: autoprefixer: "npm:^10.4.19" colors: "npm:^1.4.0" cross-env: "npm:^7.0.3" + cssnano: "npm:^7.0.1" + cssnano-preset-advanced: "npm:^7.0.1" diff: "npm:^5.2.0" diff2html: "npm:^3.4.48" eslint: "npm:^8.57.0" @@ -20076,8 +20512,6 @@ __metadata: pajv: "npm:^1.2.0" postcss: "npm:^8.4.38" postcss-combininator: "npm:^2.0.0" - postcss-discard-comments: "npm:^6.0.2" - postcss-discard-empty: "npm:^6.0.3" postcss-extend: "npm:^1.0.5" postcss-hover-media-feature: "npm:^1.0.2" postcss-import: "npm:^16.1.0" @@ -20085,7 +20519,7 @@ __metadata: postcss-preset-env: "npm:^9.5.9" postcss-reporter: "npm:^7.1.0" postcss-splitinator: "npm:^2.0.0" - prettier: "npm:^2.8.8" + prettier: "npm:^3.2.5" rimraf: "npm:^5.0.5" stylelint: "npm:^15.11.0" stylelint-config-clean-order: "npm:^5.4.2" @@ -20531,6 +20965,18 @@ __metadata: languageName: node linkType: hard +"stylehacks@npm:^7.0.0": + version: 7.0.0 + resolution: "stylehacks@npm:7.0.0" + dependencies: + browserslist: "npm:^4.23.0" + postcss-selector-parser: "npm:^6.0.16" + peerDependencies: + postcss: ^8.4.31 + checksum: 10c0/c1c0231974ab7922af3a535a9cb78bfe84997767da7defe111cc76d7f10c9e139fe8cb0f9d5bea87b0c0cc0166c82a6ec98a3d6242d7e29ef90adceecfd330ae + languageName: node + linkType: hard + "stylelint-config-clean-order@npm:^5.4.2": version: 5.4.2 resolution: "stylelint-config-clean-order@npm:5.4.2"