{"_id":"eslint-cssicorn","_rev":"5-4b7f7ece8430b01674b3410e9c90643b","name":"eslint-cssicorn","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.0-stage":{"name":"eslint-cssicorn","version":"0.0.0-stage","_id":"eslint-cssicorn@0.0.0-stage","stub":true,"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"dist":{"shasum":"82a2df0ed2b946972c3f5fac1b544589ff2fa0a2","tarball":"https://registry.npmjs.org/eslint-cssicorn/-/eslint-cssicorn-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-sqeYViRdHY8Jy94eu12m0Qv/dExcau0YuGRikQmv6zQHGmw9bpuy+Mz6L0aFaeNh6zD1nD99PAA5ONcYsmTVCw==","signatures":[{"sig":"MEQCIB0KGoI/Z/8rycjXDaOUQZBrIfnHEtUPoT8FaBvuxBCrAiAIcxy/RzmK4pOBUkIvX8OrNvAPFDR1BfjWKxqAJy2DWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.0.1":{"name":"eslint-cssicorn","version":"0.0.1","keywords":["eslint","eslintplugin","eslint-plugin","css","linter","lint","style"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"eslint-cssicorn@0.0.1","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/eslint-cssicorn#readme","bugs":{"url":"https://github.com/sindresorhus/eslint-cssicorn/issues"},"dist":{"shasum":"62e402527b9c62106cb33c2af60979a13fe46e28","tarball":"https://registry.npmjs.org/eslint-cssicorn/-/eslint-cssicorn-0.0.1.tgz","fileCount":48,"integrity":"sha512-GOGWV5HeFMHy5Aq59OR9ooGxlPj8tAZZjnFuUVCoHujaUm2nbDxOm6KagnS/S8T9OVzt/k55IAJIlmDjJWgBTQ==","signatures":[{"sig":"MEUCIE4IgxsfKm4cotpVx/p6EFzFXpKHVsNqhJ0chqjU9un3AiEAhN1JpBifRlYEzTSn7u3+IqYoIOSJJh5aogGMSKuhMwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICn2CVB9Gh/1DsZnJBERvsK40dXiAuhfcw9X5t5lAtnTAiEA49Y1HkllfulhO/WfcmhVlKGTWO5lUI8fjPlJVyCgNRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210617},"type":"module","types":"./index.d.ts","engines":{"node":">=22"},"exports":{"types":"./index.d.ts","default":"./index.js"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"aaf0be5efeca4f7a56ee238c7a633b7e09200c47","scripts":{"fix":"run-p --continue-on-error \"fix:*\"","lint":"run-p --continue-on-error \"lint:*\"","test":"run-s --continue-on-error lint test:js","fix:js":"eslint --fix","lint:js":"eslint","test:js":"node --test \"test/*.js\" \"test/unit/*.js\"","create-rule":"node ./scripts/create-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","rename-rule":"node ./scripts/rename-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","fix:markdown":"markdownlint --fix \"**/*.md\"","fix:snapshots":"node --test --test-update-snapshots \"test/*.js\" \"test/unit/*.js\"","lint:markdown":"markdownlint \"**/*.md\"","fix:eslint-docs":"eslint-doc-generator","lint:eslint-docs":"eslint-doc-generator --check","create-rules-index-file":"node ./scripts/create-rules-index-file.js","fix:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js","lint:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js --check"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/eslint-cssicorn.git","type":"git"},"_npmVersion":"12.0.1","description":"Powerful ESLint rules for CSS","directories":{},"sideEffects":false,"_nodeVersion":"26.9.0","dependencies":{"@eslint/css-tree":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.9.1","eslint":"^10.12.0","globals":"^17.13.0","outdent":"^0.8.0","enquirer":"^2.4.1","nano-spawn":"^2.1.0","@eslint/css":"^2.0.0","@webref/css":"8.7.5","open-editor":"^6.0.0","npm-run-all2":"^9.0.3","indent-string":"^5.0.0","node-style-text":"^2.1.2","eslint-config-xo":"^4.0.1","markdownlint-cli":"^0.49.1","@babel/code-frame":"^8.0.6","eslint-plugin-jsdoc":"^65.0.2","eslint-doc-generator":"^3.7.1","@typescript-eslint/types":"^8.71.0","eslint-plugin-eslint-plugin":"^7.6.2","@eslint-community/eslint-utils":"^4.10.1"},"peerDependencies":{"eslint":">=10.4","@eslint/css":">=2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-cssicorn_0.0.1_1791002050308_0.3398645200339938","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"eslint-cssicorn","version":"0.1.0","keywords":["eslint","eslintplugin","eslint-plugin","css","linter","lint","style"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"eslint-cssicorn@0.1.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/eslint-cssicorn#readme","bugs":{"url":"https://github.com/sindresorhus/eslint-cssicorn/issues"},"dist":{"shasum":"d157f5b49fea8ce745fe9605041f1f5622fa73e7","tarball":"https://registry.npmjs.org/eslint-cssicorn/-/eslint-cssicorn-0.1.0.tgz","fileCount":48,"integrity":"sha512-2whStJU5GARrKj+GXU3GlnQ4My8GpjX7x273KTozgVguhg5GzYNHaCGW0YPD99YhvL6VG8sDdFyu4CcvabOIBw==","signatures":[{"sig":"MEUCIQCH0PyWk9QOw2eMLQkKBc7x0tI5wnywlcpYEcJU+rK+zwIgN2H3iLdmbzXiv6qXrZNYshmN/Xz9SMxt4u4HI8rDoRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDRnGAr1RDxNma6vRO8LYH7b7urpOOGuY9hRSnexAC5kAIgETew1ABE5az/xowoQmgZ9ZIcpoNKSuOcMna0fhZUOBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210665},"type":"module","types":"./index.d.ts","engines":{"node":">=22"},"exports":{"types":"./index.d.ts","default":"./index.js"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"8ea341348410f4d43b399227f79cb4d1eb4c0d7a","scripts":{"fix":"run-p --continue-on-error \"fix:*\"","lint":"run-p --continue-on-error \"lint:*\"","test":"run-s --continue-on-error lint test:js","fix:js":"eslint --fix","lint:js":"eslint","test:js":"node --test \"test/*.js\" \"test/unit/*.js\"","create-rule":"node ./scripts/create-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","rename-rule":"node ./scripts/rename-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","fix:markdown":"markdownlint --fix \"**/*.md\"","fix:snapshots":"node --test --test-update-snapshots \"test/*.js\" \"test/unit/*.js\"","lint:markdown":"markdownlint \"**/*.md\"","fix:eslint-docs":"eslint-doc-generator","lint:eslint-docs":"eslint-doc-generator --check","create-rules-index-file":"node ./scripts/create-rules-index-file.js","fix:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js","lint:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js --check"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/eslint-cssicorn.git","type":"git"},"_npmVersion":"12.0.1","description":"Powerful ESLint rules for CSS","directories":{},"sideEffects":false,"_nodeVersion":"26.9.0","dependencies":{"@eslint/css-tree":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.9.1","eslint":"^10.12.0","globals":"^17.13.0","outdent":"^0.8.0","enquirer":"^2.4.1","nano-spawn":"^2.1.0","@eslint/css":"^2.0.0","@webref/css":"8.7.5","open-editor":"^6.0.0","npm-run-all2":"^9.0.3","indent-string":"^5.0.0","node-style-text":"^2.1.2","eslint-config-xo":"^4.0.1","markdownlint-cli":"^0.49.1","@babel/code-frame":"^8.0.6","eslint-plugin-jsdoc":"^65.0.2","eslint-doc-generator":"^3.7.1","@typescript-eslint/types":"^8.71.0","eslint-plugin-eslint-plugin":"^7.6.2","@eslint-community/eslint-utils":"^4.10.1"},"peerDependencies":{"eslint":">=10.4","@eslint/css":">=2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-cssicorn_0.1.0_1791002327935_0.6247325753066377","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"eslint-cssicorn","version":"0.2.0","keywords":["eslint","eslintplugin","eslint-plugin","css","linter","lint","style"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"eslint-cssicorn@0.2.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/eslint-cssicorn#readme","bugs":{"url":"https://github.com/sindresorhus/eslint-cssicorn/issues"},"dist":{"shasum":"a97d6b1e78aebdc04f83e9431267c5689835ed6b","tarball":"https://registry.npmjs.org/eslint-cssicorn/-/eslint-cssicorn-0.2.0.tgz","fileCount":121,"integrity":"sha512-T34TK+4yuEsoa+cTsB62Zuzt0x5aGBlIZ7IgA6AU5BzTuBiLmmMlRCuxp/7jOhX8NsIrJijEVOgmmxUhcm3NUw==","signatures":[{"sig":"MEYCIQCZKnFva0UfeILH6Kl+O+wF2MzW1zbE4hSfsgw42IdyBwIhAMGKqGrjPJuFbKno8s3Cor8wSH67jYwlx3ITQ0CE5cZZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCqsSV7x0ANK/54YO3v+n4CR1vlvs0Z3CvTRbVd/MpEygIge/FTIFBRV8N39gxcQukMvoU+yc+4VQmceePejNuLj6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711496},"type":"module","types":"./index.d.ts","engines":{"node":">=22"},"exports":{"types":"./index.d.ts","default":"./index.js"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"485d64ea06b830841441eb228e0bebe057b5c01b","scripts":{"fix":"run-p --continue-on-error \"fix:*\"","lint":"run-p --continue-on-error \"lint:*\"","test":"run-s --continue-on-error lint test:js test:types","fix:js":"eslint --fix","lint:js":"eslint","test:js":"node --test \"test/*.js\" \"test/unit/*.js\"","test:types":"tsc --project test/types/tsconfig.json","create-rule":"node ./scripts/create-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","rename-rule":"node ./scripts/rename-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","fix:markdown":"markdownlint --fix \"**/*.md\"","fix:snapshots":"node --test --test-update-snapshots \"test/*.js\" \"test/unit/*.js\"","lint:markdown":"markdownlint \"**/*.md\"","fix:eslint-docs":"eslint-doc-generator","lint:eslint-docs":"eslint-doc-generator --check","create-rules-index-file":"node ./scripts/create-rules-index-file.js","fix:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js","lint:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js --check","fix:css-property-interactions":"node ./scripts/create-css-property-interactions.js","lint:css-property-interactions":"node ./scripts/create-css-property-interactions.js --check","fix:css-property-animation-types":"node ./scripts/create-css-property-animation-types.js","lint:css-property-animation-types":"node ./scripts/create-css-property-animation-types.js --check"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/eslint-cssicorn.git","type":"git"},"_npmVersion":"12.2.0","description":"Powerful ESLint rules for CSS","directories":{},"sideEffects":false,"_nodeVersion":"26.11.1","dependencies":{"@eslint/css-tree":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.9.1","eslint":"^10.12.0","globals":"^17.13.0","outdent":"^0.8.0","enquirer":"^2.4.1","nano-spawn":"^2.1.0","typescript":"^6.0.3","@eslint/css":"^2.0.0","@types/node":"^26.6.4","@webref/css":"8.7.5","open-editor":"^6.0.0","npm-run-all2":"^9.0.3","indent-string":"^5.0.0","node-style-text":"^2.1.2","@eslint/markdown":"^8.0.3","eslint-config-xo":"^4.0.1","markdownlint-cli":"^0.49.1","tailwind-csstree":"^0.4.1","@babel/code-frame":"^8.0.6","eslint-plugin-jsdoc":"^65.0.2","eslint-doc-generator":"^3.7.1","@typescript-eslint/types":"^8.71.0","eslint-plugin-eslint-plugin":"^7.6.2","@eslint-community/eslint-utils":"^4.10.1"},"peerDependencies":{"eslint":">=10.4","@eslint/css":">=2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-cssicorn_0.2.0_1791827544875_0.6644386303029357","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"eslint-cssicorn@0.3.0","bugs":{"url":"https://github.com/sindresorhus/eslint-cssicorn/issues"},"dist":{"shasum":"80e0e5b7745e4b060b6d24674f6ff7a9dd6a6986","tarball":"https://registry.npmjs.org/eslint-cssicorn/-/eslint-cssicorn-0.3.0.tgz","fileCount":133,"integrity":"sha512-j1P4fqs2+Fn0Y6Xw3cNy3ImCQ9disLkvwZf+aG0tFq7sSxeRuJi4SXso5av4gEb4uzRAyfTHgsQ5p+NCJmkA2Q==","signatures":[{"sig":"MEYCIQCHU0LDCsnpG62N1j/ZukV29TXlveVJN0BcF557yLHvggIhAMSBt19940cCc8C0P/euyI+cAUyl84WPH8WYesupOiqw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEvGlb43KCDYpicHuhRpzaaEJHl+YK95tpXhoc9Bvr9XAiAgA3B8xX/5zzx2cLgKWgqpPR2zxkDAEN1DWXNFzbY1Lw=="}],"unpackedSize":851809},"name":"eslint-cssicorn","type":"module","types":"./index.d.ts","author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"engines":{"node":">=22"},"exports":{"types":"./index.d.ts","default":"./index.js"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"8bbc0d1d0c0bc347234c348c480ba4720ea3d905","license":"MIT","scripts":{"fix":"run-p --continue-on-error \"fix:*\"","lint":"run-p --continue-on-error \"lint:*\"","test":"run-s --continue-on-error lint test:js test:types","fix:js":"eslint --fix","lint:js":"eslint","test:js":"node --test \"test/*.js\" \"test/unit/*.js\"","test:types":"tsc --project test/types/tsconfig.json","create-rule":"node ./scripts/create-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","rename-rule":"node ./scripts/rename-rule.js && npm run create-rules-index-file && npm run fix:eslint-docs","fix:markdown":"markdownlint --fix \"**/*.md\"","fix:snapshots":"node --test --test-update-snapshots \"test/*.js\" \"test/unit/*.js\"","lint:markdown":"markdownlint \"**/*.md\"","fix:eslint-docs":"eslint-doc-generator","lint:eslint-docs":"eslint-doc-generator --check","create-rules-index-file":"node ./scripts/create-rules-index-file.js","fix:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js","lint:css-pseudo-selectors":"node ./scripts/create-css-pseudo-selectors.js --check","fix:css-property-interactions":"node ./scripts/create-css-property-interactions.js","lint:css-property-interactions":"node ./scripts/create-css-property-interactions.js --check","fix:css-property-animation-types":"node ./scripts/create-css-property-animation-types.js","lint:css-property-animation-types":"node ./scripts/create-css-property-animation-types.js --check"},"version":"0.3.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"homepage":"https://github.com/sindresorhus/eslint-cssicorn#readme","keywords":["eslint","eslintplugin","eslint-plugin","css","linter","lint","style"],"repository":{"url":"git+https://github.com/sindresorhus/eslint-cssicorn.git","type":"git"},"_npmVersion":"12.2.0","description":"Powerful ESLint rules for CSS","directories":{},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.22.1","dependencies":{"svg-tags":"^1.0.0","html-tags":"^5.1.0","@eslint/css-tree":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.9.1","eslint":"^10.12.0","globals":"^17.13.0","outdent":"^0.8.0","enquirer":"^2.4.1","nano-spawn":"^2.1.0","typescript":"^6.0.3","@eslint/css":"^2.0.0","@types/node":"^26.6.4","@webref/css":"8.7.5","open-editor":"^6.0.0","npm-run-all2":"^9.0.3","indent-string":"^5.0.0","node-style-text":"^2.1.2","@eslint/markdown":"^8.0.3","eslint-config-xo":"^4.0.1","markdownlint-cli":"^0.49.1","tailwind-csstree":"^0.4.1","@babel/code-frame":"^8.0.6","eslint-plugin-jsdoc":"^65.0.2","eslint-doc-generator":"^3.7.1","@typescript-eslint/types":"^8.71.0","eslint-plugin-eslint-plugin":"^7.6.2","@eslint-community/eslint-utils":"^4.10.1"},"peerDependencies":{"eslint":">=10.4","@eslint/css":">=2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-cssicorn_0.3.0_1792768437888_0.6973848197687909"}}},"time":{"created":"2026-10-03T04:33:16.000Z","modified":"2026-10-23T15:13:58.201Z","0.0.0-stage":"2026-10-03T04:33:16.000Z","0.0.1":"2026-10-03T04:34:10.410Z","0.1.0":"2026-10-03T04:38:48.032Z","0.2.0":"2026-10-12T17:52:24.981Z","0.3.0":"2026-10-23T15:13:57.986Z"},"bugs":{"url":"https://github.com/sindresorhus/eslint-cssicorn/issues"},"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","homepage":"https://github.com/sindresorhus/eslint-cssicorn#readme","keywords":["eslint","eslintplugin","eslint-plugin","css","linter","lint","style"],"repository":{"url":"git+https://github.com/sindresorhus/eslint-cssicorn.git","type":"git"},"description":"Powerful ESLint rules for CSS","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"readme":"# eslint-cssicorn\n\n> Powerful ESLint rules for CSS\n\nThe rules work with the [`@eslint/css`](https://github.com/eslint/css) language plugin.\n\n[`eslint-plugin-unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn#non-javascript-files) has more rules that also lint CSS, such as `no-zero-fractions` and `no-shorthand-property-overrides`.\n\n[**Propose a new rule ➡**](.github/contributing.md)\n\n*We do not accept pull requests because of too much AI slop.*\n\n## Install\n\n```sh\nnpm install --save-dev eslint @eslint/css eslint-cssicorn\n```\n\n**Requires ESLint `>=10.4`, [flat config](https://eslint.org/docs/latest/use/configure/configuration-files), and [ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#how-can-i-make-my-typescript-project-output-esm).**\n\n## Usage\n\nUse a [preset config](#preset-configs) or configure each rule in `eslint.config.js`.\n\nIf you don't use a preset, set `language: 'css/css'` and add the `@eslint/css` plugin, as shown below.\n\n```js\nimport css from '@eslint/css';\nimport cssicorn from 'eslint-cssicorn';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n\t{\n\t\tfiles: [\n\t\t\t'**/*.css',\n\t\t],\n\t\tplugins: {\n\t\t\tcss,\n\t\t\tcssicorn,\n\t\t},\n\t\tlanguage: 'css/css',\n\t\trules: {\n\t\t\t'cssicorn/prefer-short-hex-color': 'error',\n\t\t\t'cssicorn/…': 'error',\n\t\t},\n\t},\n\t// …\n]);\n```\n\n## Embedded CSS\n\nTo lint fenced CSS blocks in Markdown, configure the [`@eslint/markdown` processor](https://github.com/eslint/markdown/blob/main/docs/processors/markdown.md). The presets match its extracted `.css` files. Lint Markdown prose separately.\n\n```js\nimport markdown from '@eslint/markdown';\nimport cssicorn from 'eslint-cssicorn';\n\nexport default [\n\t{\n\t\tfiles: [\n\t\t\t'**/*.md',\n\t\t],\n\t\tplugins: {\n\t\t\tmarkdown,\n\t\t},\n\t\tlanguage: 'markdown/commonmark',\n\t\tprocessor: 'markdown/markdown',\n\t},\n\tcssicorn.configs.recommended,\n];\n```\n\n## Rules\n\n<!-- Do not manually modify this list. Run: `npm run fix:eslint-docs` -->\n<!-- begin auto-generated rules list -->\n\n💼 [Configurations](https://github.com/sindresorhus/eslint-cssicorn#recommended-config) enabled in.\\\n✅ Set in the `recommended` [configuration](https://github.com/sindresorhus/eslint-cssicorn#recommended-config).\\\n☑️ Set in the `unopinionated` [configuration](https://github.com/sindresorhus/eslint-cssicorn#recommended-config).\\\n🔧 Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\\\n💡 Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions).\n\n| Name                                                                                           | Description                                                                                                  | 💼   | 🔧 | 💡 |\n| :--------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- | :--- | :- | :- |\n| [consistent-compound-selector-order](docs/rules/consistent-compound-selector-order.md)         | Enforce consistent ordering of compound selector components.                                                 | ✅    | 🔧 |    |\n| [consistent-custom-property-fallbacks](docs/rules/consistent-custom-property-fallbacks.md)     | Enforce consistent fallbacks for configured custom properties.                                               | ✅    |    |    |\n| [consistent-layer-order](docs/rules/consistent-layer-order.md)                                 | Enforce consistent ordering of cascade layer statements.                                                     | ✅    | 🔧 |    |\n| [consistent-property-order](docs/rules/consistent-property-order.md)                           | Enforce consistent ordering of CSS properties.                                                               |      | 🔧 | 💡 |\n| [consistent-value-order](docs/rules/consistent-value-order.md)                                 | Enforce consistent ordering of CSS value components.                                                         | ✅    | 🔧 |    |\n| [lowercase](docs/rules/lowercase.md)                                                           | Enforce lowercase CSS syntax.                                                                                | ✅    | 🔧 |    |\n| [no-clamped-values](docs/rules/no-clamped-values.md)                                           | Disallow CSS values that browsers silently clamp.                                                            | ✅    |    |    |\n| [no-declarations-after-nested-rules](docs/rules/no-declarations-after-nested-rules.md)         | Disallow declarations after nested rules.                                                                    | ✅ ☑️ |    |    |\n| [no-deprecated-features](docs/rules/no-deprecated-features.md)                                 | Disallow deprecated CSS features.                                                                            | ✅    | 🔧 | 💡 |\n| [no-descending-specificity](docs/rules/no-descending-specificity.md)                           | Disallow lower-specificity selectors from following higher-specificity selectors that set the same property. |      |    |    |\n| [no-disabled-pinch-zoom](docs/rules/no-disabled-pinch-zoom.md)                                 | Disallow `touch-action` values that disable browser pinch zoom.                                              | ✅    |    | 💡 |\n| [no-duplicate-at-rule-definitions](docs/rules/no-duplicate-at-rule-definitions.md)             | Disallow duplicate named at-rule definitions.                                                                | ✅    |    |    |\n| [no-duplicate-font-family-names](docs/rules/no-duplicate-font-family-names.md)                 | Disallow duplicate font family names.                                                                        | ✅ ☑️ | 🔧 |    |\n| [no-duplicate-properties](docs/rules/no-duplicate-properties.md)                               | Disallow duplicate properties within CSS declaration blocks.                                                 | ✅    |    | 💡 |\n| [no-duplicate-selectors](docs/rules/no-duplicate-selectors.md)                                 | Disallow duplicate CSS selectors.                                                                            | ✅    | 🔧 |    |\n| [no-ineffective-keyframe-declarations](docs/rules/no-ineffective-keyframe-declarations.md)     | Disallow ineffective declarations in keyframes.                                                              | ✅ ☑️ | 🔧 |    |\n| [no-ineffective-overrides](docs/rules/no-ineffective-overrides.md)                             | Disallow state and conditional overrides blocked by cascade priority.                                        | ✅    |    |    |\n| [no-ineffective-properties](docs/rules/no-ineffective-properties.md)                           | Disallow properties that have no effect given other declarations or shorthand defaults.                      | ✅ ☑️ |    |    |\n| [no-ineffective-selector-properties](docs/rules/no-ineffective-selector-properties.md)         | Disallow properties that cannot affect their selected targets.                                               | ✅ ☑️ | 🔧 |    |\n| [no-ineffective-supports-conditions](docs/rules/no-ineffective-supports-conditions.md)         | Disallow supports conditions that do not test their value functions.                                         | ✅    |    |    |\n| [no-ineffective-transitions](docs/rules/no-ineffective-transitions.md)                         | Disallow transition targets that cannot transition under the declared behavior.                              | ✅ ☑️ |    | 💡 |\n| [no-invalid-media-features](docs/rules/no-invalid-media-features.md)                           | Disallow unknown media features, invalid values, and invalid notation.                                       | ✅ ☑️ |    |    |\n| [no-invalid-property-references](docs/rules/no-invalid-property-references.md)                 | Disallow invalid property references in transitions and will-change.                                         | ✅ ☑️ |    |    |\n| [no-layout-animations](docs/rules/no-layout-animations.md)                                     | Disallow animating properties that can affect layout.                                                        |      |    |    |\n| [no-nesting-with-mixed-specificity](docs/rules/no-nesting-with-mixed-specificity.md)           | Disallow mixed specificity in nesting parents and selector-list pseudo-classes.                              | ✅    |    |    |\n| [no-overflow-axis-coercion](docs/rules/no-overflow-axis-coercion.md)                           | Disallow overflow values that are coerced by the other axis.                                                 | ✅ ☑️ |    |    |\n| [no-overridden-animation-properties](docs/rules/no-overridden-animation-properties.md)         | Disallow properties overridden by overlapping animations.                                                    | ✅    |    |    |\n| [no-redundant-functions](docs/rules/no-redundant-functions.md)                                 | Disallow redundant function calls and arguments.                                                             | ✅    | 🔧 |    |\n| [no-redundant-longhand-properties](docs/rules/no-redundant-longhand-properties.md)             | Disallow longhand properties that can be combined into a shorthand.                                          | ✅    | 🔧 |    |\n| [no-redundant-nested-style-rules](docs/rules/no-redundant-nested-style-rules.md)               | Disallow nested style rules that do not modify the parent selector.                                          | ✅    | 🔧 |    |\n| [no-redundant-nesting-selector](docs/rules/no-redundant-nesting-selector.md)                   | Disallow redundant nesting selectors.                                                                        | ✅    | 🔧 |    |\n| [no-redundant-shorthand-values](docs/rules/no-redundant-shorthand-values.md)                   | Disallow redundant values in CSS shorthand properties.                                                       | ✅    | 🔧 |    |\n| [no-self-referencing-custom-properties](docs/rules/no-self-referencing-custom-properties.md)   | Disallow cyclic dependencies in CSS custom properties.                                                       | ✅ ☑️ |    |    |\n| [no-unknown-animations](docs/rules/no-unknown-animations.md)                                   | Disallow unknown animations.                                                                                 |      |    |    |\n| [no-unknown-annotations](docs/rules/no-unknown-annotations.md)                                 | Disallow unknown and noncanonical CSS annotations.                                                           | ✅ ☑️ | 🔧 | 💡 |\n| [no-unknown-pseudo-selectors](docs/rules/no-unknown-pseudo-selectors.md)                       | Disallow unknown pseudo-class and pseudo-element selectors.                                                  | ✅ ☑️ |    |    |\n| [no-unknown-type-selectors](docs/rules/no-unknown-type-selectors.md)                           | Disallow unknown type selectors.                                                                             | ✅ ☑️ |    |    |\n| [no-unscoped-nesting-selector](docs/rules/no-unscoped-nesting-selector.md)                     | Disallow unscoped CSS nesting selectors.                                                                     | ✅ ☑️ |    |    |\n| [no-useless-is](docs/rules/no-useless-is.md)                                                   | Disallow unnecessary `:is()` wrappers.                                                                       | ✅ ☑️ | 🔧 |    |\n| [no-zero-length-unit](docs/rules/no-zero-length-unit.md)                                       | Disallow units on zero CSS lengths.                                                                          | ✅    | 🔧 |    |\n| [prefer-aspect-ratio](docs/rules/prefer-aspect-ratio.md)                                       | Prefer `aspect-ratio` over zero-height percentage-padding workarounds.                                       | ✅    |    |    |\n| [prefer-clamp](docs/rules/prefer-clamp.md)                                                     | Prefer `clamp()` over nested `min()` and `max()`.                                                            | ✅ ☑️ | 🔧 |    |\n| [prefer-current-color](docs/rules/prefer-current-color.md)                                     | Prefer currentcolor over repeating the foreground color.                                                     | ✅    |    | 💡 |\n| [prefer-existing-custom-properties](docs/rules/prefer-existing-custom-properties.md)           | Prefer existing custom properties over matching literal values.                                              | ✅    |    | 💡 |\n| [prefer-explicit-viewport-units](docs/rules/prefer-explicit-viewport-units.md)                 | Prefer explicit viewport units.                                                                              | ✅    |    | 💡 |\n| [prefer-individual-transform-properties](docs/rules/prefer-individual-transform-properties.md) | Prefer individual transform properties over transform functions.                                             | ✅    |    | 💡 |\n| [prefer-light-dark](docs/rules/prefer-light-dark.md)                                           | Prefer `light-dark()` over paired light and dark color declarations.                                         | ✅    |    | 💡 |\n| [prefer-longhand-overrides](docs/rules/prefer-longhand-overrides.md)                           | Prefer longhand properties when overriding one shorthand component.                                          | ✅    |    | 💡 |\n| [prefer-media-feature-range-syntax](docs/rules/prefer-media-feature-range-syntax.md)           | Prefer modern media feature range syntax.                                                                    | ✅    | 🔧 | 💡 |\n| [prefer-merged-rules](docs/rules/prefer-merged-rules.md)                                       | Prefer merging adjacent rules with identical declarations or conditions.                                     | ✅    | 🔧 |    |\n| [prefer-modern-syntax](docs/rules/prefer-modern-syntax.md)                                     | Prefer modern CSS color and pseudo-element syntax.                                                           | ✅    | 🔧 |    |\n| [prefer-nesting](docs/rules/prefer-nesting.md)                                                 | Prefer CSS nesting for structural `:is()` groups and rules extending an existing parent.                     | ✅    | 🔧 |    |\n| [prefer-relative-colors](docs/rules/prefer-relative-colors.md)                                 | Prefer relative colors for alpha variants of existing color custom properties.                               | ✅    |    | 💡 |\n| [prefer-short-hex-color](docs/rules/prefer-short-hex-color.md)                                 | Prefer short hexadecimal color notation.                                                                     | ✅    | 🔧 |    |\n| [prefer-subgrid](docs/rules/prefer-subgrid.md)                                                 | Prefer subgrid over repeated parent grid track definitions.                                                  | ✅    |    | 💡 |\n| [require-prefers-reduced-motion](docs/rules/require-prefers-reduced-motion.md)                 | Require motion effects inside `prefers-reduced-motion: no-preference` media queries.                         |      |    |    |\n| [require-property-descriptors](docs/rules/require-property-descriptors.md)                     | Require descriptors in CSS `@property` rules.                                                                | ✅ ☑️ |    |    |\n| [require-selector-scope](docs/rules/require-selector-scope.md)                                 | Require a positive scoping boundary for every selector.                                                      |      |    |    |\n\n<!-- end auto-generated rules list -->\n\n## Preset configs\n\nSee the [ESLint docs](https://eslint.org/docs/latest/use/configure/configuration-files) for more information about extending config files.\n\n**Note**: The preset configs apply to `**/*.css` files. They also set `language: 'css/css'` and add the `@eslint/css` plugin.\n\n### Recommended config\n\nThis plugin exports a `recommended` config that enforces good practices.\n\n```js\nimport cssicorn from 'eslint-cssicorn';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n\t// …\n\tcssicorn.configs.recommended,\n\t{\n\t\tfiles: [\n\t\t\t'**/*.css',\n\t\t],\n\t\trules: {\n\t\t\t'cssicorn/no-unknown-animations': 'error',\n\t\t},\n\t},\n]);\n```\n\n### Unopinionated config\n\nThis plugin exports an `unopinionated` config with bug checks and straightforward simplifications.\n\n```js\nimport cssicorn from 'eslint-cssicorn';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n\t// …\n\tcssicorn.configs.unopinionated,\n]);\n```\n\n### All config\n\nThis plugin exports an `all` config that enables every rule.\n\n```js\nimport cssicorn from 'eslint-cssicorn';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n\t// …\n\tcssicorn.configs.all,\n\t{\n\t\tfiles: [\n\t\t\t'**/*.css',\n\t\t],\n\t\trules: {\n\t\t\t'cssicorn/prefer-short-hex-color': 'off',\n\t\t},\n\t},\n]);\n```\n\n## Related\n\n- [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) — More than 300 powerful ESLint rules. Some of them also lint CSS.\n- [eslint-node-test](https://github.com/sindresorhus/eslint-node-test) — ESLint rules for the Node.js built-in test runner.\n- [eslint-package-json](https://github.com/sindresorhus/eslint-package-json) — Powerful ESLint rules for `package.json`.\n- [eslint-soml](https://github.com/soml-lang/eslint-soml) — ESLint rules for SOML config files.\n","readmeFilename":"readme.md"}