{"_id":"@design-factory/stylelint-plugins","_rev":"5-8dd212a5f5bdeb04235ee0c8efe44335","name":"@design-factory/stylelint-plugins","dist-tags":{"next":"22.0.0-next.1","latest":"22.0.2"},"versions":{"22.0.0-next.0":{"name":"@design-factory/stylelint-plugins","version":"22.0.0-next.0","license":"BSD-3-Clause","_id":"@design-factory/stylelint-plugins@22.0.0-next.0","maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"dist":{"shasum":"50fb5b88d23c1c78287ebbb1b087777d39639434","tarball":"https://registry.npmjs.org/@design-factory/stylelint-plugins/-/stylelint-plugins-22.0.0-next.0.tgz","fileCount":5,"integrity":"sha512-xflkH4tegx2bKgqJoChLHEbRzW1NQ/GtCUpdZgPW4bAw9DEQp049EzFefPV/ewXO8X6l8FFKRLk+MZOd53zFGw==","signatures":[{"sig":"MEYCIQDIjcsnejqlhEUx3zdqFFD/sRi4eK2V3ecio1BBG+6KGAIhANtxHCMI/rLJenNMa8cGX3zRx3v8u+tvkOlzwUooEqci","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203425},"main":"./index.cjs","type":"module","module":"./index.js","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"gitHead":"7f20e8b6de2ea453e5a4aa5835d58ffbed1f9f44","_npmUser":{"name":"saasgu","email":"guillaume.saas@amadeus.com"},"_npmVersion":"11.16.0","description":"Amadeus design system stylelint plugins","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stylelint-plugins_22.0.0-next.0_1783002265583_0.8872021978499951","host":"s3://npm-registry-packages-npm-production"}},"22.0.0-next.1":{"name":"@design-factory/stylelint-plugins","version":"22.0.0-next.1","license":"BSD-3-Clause","_id":"@design-factory/stylelint-plugins@22.0.0-next.1","maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"dist":{"shasum":"7dfea94f114de083c75051864bdc0523e57ebf94","tarball":"https://registry.npmjs.org/@design-factory/stylelint-plugins/-/stylelint-plugins-22.0.0-next.1.tgz","fileCount":5,"integrity":"sha512-vygPP2/Drmb8EWod5dxHRowkOOa/CvA2Qf1YpuDKi3BkUFrOQs0OyBCc2qxX2cgFGUOI6FVaf1IRMec2hjDjIA==","signatures":[{"sig":"MEUCIFDXE9OKD5pdZYB510tEfWBSzXRCOf6J6kUdahiJADg6AiEA+fcGrc3/CMQ/ix1t8P8rDnQm+8YdhAJgk8NPdMoDqgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203703},"main":"./index.cjs","type":"module","module":"./index.js","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"gitHead":"b12211216f5068865d731fdcfc674e41944ddae0","_npmUser":{"name":"saasgu","email":"guillaume.saas@amadeus.com"},"_npmVersion":"11.16.0","description":"Amadeus design system stylelint plugins","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@design-factory/styles":"22.0.0-next.1","@design-factory/tokens":"22.0.0-next.1"},"peerDependenciesMeta":{"@design-factory/styles":{"optional":true},"@design-factory/tokens":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/stylelint-plugins_22.0.0-next.1_1784728982551_0.7445578573959868","host":"s3://npm-registry-packages-npm-production"}},"22.0.0":{"name":"@design-factory/stylelint-plugins","version":"22.0.0","license":"BSD-3-Clause","_id":"@design-factory/stylelint-plugins@22.0.0","maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"dist":{"shasum":"11f6ff1e8faa6ebe2c59db54184998467950098a","tarball":"https://registry.npmjs.org/@design-factory/stylelint-plugins/-/stylelint-plugins-22.0.0.tgz","fileCount":5,"integrity":"sha512-eLygBK0VtCBKxzxiaZA5Ds+2GFFhc1pIfP167Yyaoev2BeFIHyYKwgHnD3GewuMYTqjY7QfcAc4sGA71R+ZlKQ==","signatures":[{"sig":"MEQCIBua+NQrzbdd2rW/NTvhe4binBI1hk7lFNTYif65gVCxAiBPXtDdXqssun5giTqn0QpuzYeARqonUANMzLrjiSuH1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203682},"main":"./index.cjs","type":"module","module":"./index.js","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"gitHead":"6334e18c643a46e115571b7d0da2996f3c288f49","_npmUser":{"name":"saasgu","email":"guillaume.saas@amadeus.com"},"_npmVersion":"11.16.0","description":"Amadeus design system stylelint plugins","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"@design-factory/styles":"22.0.0","@design-factory/tokens":"22.0.0"},"peerDependenciesMeta":{"@design-factory/styles":{"optional":true},"@design-factory/tokens":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/stylelint-plugins_22.0.0_1785338543947_0.09126795959195855","host":"s3://npm-registry-packages-npm-production"}},"22.0.1":{"name":"@design-factory/stylelint-plugins","version":"22.0.1","license":"BSD-3-Clause","_id":"@design-factory/stylelint-plugins@22.0.1","maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"dist":{"shasum":"e5ea5a386b9f039b47c2f1f29f578246bbbfbe8a","tarball":"https://registry.npmjs.org/@design-factory/stylelint-plugins/-/stylelint-plugins-22.0.1.tgz","fileCount":5,"integrity":"sha512-vMLjY/n99ZviL4ox8gFZB6BXwTbYRZ70Iawg2AdBHWbqYkapNyHPtFt/l/v5yk2eev2KO7SIS2pjPQtCKqKj4Q==","signatures":[{"sig":"MEYCIQCe8WNxws4JWGkjmbm3HgBU0PxZW+Bi83s1weZ/ED4cUwIhAJa58zloQOUU8efagY+bg3LYUl8lfOBsH12HreYsrIbJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203682},"main":"./index.cjs","type":"module","module":"./index.js","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"gitHead":"856ae370b0cbcff3534b7b0c3d3d9830c67243af","_npmUser":{"name":"saasgu","email":"guillaume.saas@amadeus.com"},"_npmVersion":"11.16.0","description":"Amadeus design system stylelint plugins","directories":{},"_nodeVersion":"24.18.1","_hasShrinkwrap":false,"peerDependencies":{"@design-factory/styles":"22.0.1","@design-factory/tokens":"22.0.1"},"peerDependenciesMeta":{"@design-factory/styles":{"optional":true},"@design-factory/tokens":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/stylelint-plugins_22.0.1_1785765278250_0.7233846214554458","host":"s3://npm-registry-packages-npm-production"}},"22.0.2":{"_id":"@design-factory/stylelint-plugins@22.0.2","dist":{"shasum":"0476acd03707381758aeaf255f2701ab9f57bbc3","tarball":"https://registry.npmjs.org/@design-factory/stylelint-plugins/-/stylelint-plugins-22.0.2.tgz","fileCount":5,"integrity":"sha512-zFYIVLdg0+JpaQnbFHJ6LytQHfGGWhkwaz7iUtRlQo33QS3xVNl5KcU58UuYqOcij/J0HmZfIvh9ci7LIr1AQQ==","signatures":[{"sig":"MEUCIQDoJd494QtpVeI+PzMBWIlDuOrPUMFKpp85WOEAvwf7ugIgRljKxg7ynO5AWSWX0OJnRdjPVJbH3vuMVJfVkAfkeeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSNryIe6DzRqOvEBfF/IcrFf6bFRMrkyinY3ZzwhcAEwIhALSqg497AytEJ3O7fe+lKmBmyqHp+xysYzQ4nFTm+gtF"}],"unpackedSize":203682},"main":"./index.cjs","name":"@design-factory/stylelint-plugins","type":"module","module":"./index.js","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"gitHead":"8d09c015cd53d2a77c0886445f70c6b4b62edc4e","license":"BSD-3-Clause","version":"22.0.2","_npmUser":{"name":"saasgu","email":"guillaume.saas@amadeus.com"},"_npmVersion":"11.19.0","description":"Amadeus design system stylelint plugins","directories":{},"maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"peerDependencies":{"@design-factory/styles":"22.0.2","@design-factory/tokens":"22.0.2"},"peerDependenciesMeta":{"@design-factory/styles":{"optional":true},"@design-factory/tokens":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stylelint-plugins_22.0.2_1790089764737_0.9467311860809391"}}},"time":{"created":"2026-07-02T14:24:25.386Z","modified":"2026-09-22T15:09:25.039Z","22.0.0-next.0":"2026-07-02T14:24:25.712Z","22.0.0-next.1":"2026-07-22T14:03:02.692Z","22.0.0":"2026-07-29T15:22:24.101Z","22.0.1":"2026-08-03T13:54:38.396Z","22.0.2":"2026-09-22T15:09:24.835Z"},"license":"BSD-3-Clause","description":"Amadeus design system stylelint plugins","maintainers":[{"name":"saasgu","email":"guillaume.saas@amadeus.com"},{"name":"qderoubaix","email":"quentin.deroubaix@amadeus.com"}],"readme":"# @design-factory/stylelint-plugins\n\nStylelint plugins for the Design Factory design system.\n\n## Installation\n\n```bash\nnpm install --save-dev @design-factory/stylelint-plugins stylelint\n```\n\n## Usage\n\nAdd the plugin to your stylelint configuration:\n\n```js\nexport default {\n  plugins: ['@design-factory/stylelint-plugins'],\n  rules: {\n    '@design-factory/df-token-validation': true\n  }\n};\n```\n\n## Rules\n\n### `@design-factory/df-token-validation`\n\nValidates that `--df-*` CSS custom properties and `$df-*` Sass variables reference valid Design Factory tokens.\n\n- CSS variables starting with `--df-` are checked against the list of known tokens. Invalid ones are reported.\n- Sass variables starting with `$df-` (with or without a namespace, e.g. `tokens.$df-spacing-1`) are also checked by default.\n- Non-DF variables (e.g. `--my-var`, `$my-var`) are ignored.\n- Interpolated (computed) CSS variables (e.g. `var(--df-color-#{$variant}-background)`) are ignored.\n\n#### Options\n\n##### `true` (primary)\n\nEnables the rule.\n\n```json\n{ \"@design-factory/df-token-validation\": true }\n```\n\n##### `cssVarOnly` (default: `false`)\n\nWhen `true`, all `$df-*` Sass variables are forbidden — even valid ones. Use this to enforce exclusive use of CSS custom properties.\n\n```json\n{ \"@design-factory/df-token-validation\": [true, { \"cssVarOnly\": true }] }\n```\n\n##### `checkSassVars` (default: `true`)\n\nWhen `false`, skips all Sass variable checks entirely. CSS variable validation still applies.\n\n```json\n{ \"@design-factory/df-token-validation\": [true, { \"checkSassVars\": false }] }\n```\n\n##### `ignoreBootstrapCssVars` (default: `false`)\n\nWhen `true`, ignores CSS variables extracted from the installed Bootstrap CSS package and normalized to Design Factory's Bootstrap prefix (`--df-`). Unknown `--df-*` variables are still reported.\n\n```json\n{ \"@design-factory/df-token-validation\": [true, { \"ignoreBootstrapCssVars\": true }] }\n```\n\n##### `ignoreT1ThemeTokens` (default: `false`)\n\nWhen `true`, ignores T1 theme tokens for both CSS variables and Sass variables.\n\n```json\n{ \"@design-factory/df-token-validation\": [true, { \"ignoreT1ThemeTokens\": true }] }\n```\n\n##### `ignore` (default: `[]`)\n\nA list of token patterns to ignore. Supports `*` as a wildcard.\n\n```json\n{ \"@design-factory/df-token-validation\": [true, { \"ignore\": [\"--df-navbar-height\", \"--df-topnav-drawer-*\"] }] }\n```\n\n#### Examples\n\nCorrect:\n\n```scss\na {\n  color: var(--df-color-neutral-main-default-foreground);\n}\na {\n  padding: $df-spacing-1;\n}\na {\n  color: var(--df-body-color);\n} /* with ignoreBootstrapCssVars enabled */\na {\n  color: var(--df-theme-neutral-0);\n} /* with ignoreT1ThemeTokens enabled */\na {\n  color: var(--my-custom-var);\n}\na {\n  padding: $my-custom-var;\n}\na {\n  background: var(--df-color-#{$variant}-background);\n}\n```\n\nIncorrect:\n\n```scss\na {\n  color: var(--df-invalid-token);\n} /* unknown DF token */\na {\n  color: var(--df-theme-neutral-0);\n} /* internal token */\na {\n  padding: $df-nonexistent;\n} /* unknown DF Sass var */\na {\n  color: var(--df-unknown-bootstrap-token);\n} /* unknown DF-prefixed CSS var */\n```\n","readmeFilename":"README.md"}