@primer/stylelint-config 12.7.0 → 12.7.1-rc.59e46db

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,282 @@
1
+ # Changelog
2
+
3
+ ## 12.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`726d7d1`](https://github.com/primer/stylelint-config/commit/726d7d1bf4eac82a032c448cb0be32d5bf66b29a) Thanks [@jonrohan](https://github.com/jonrohan)! - Updating no-deprecated-colors for primitives v8
8
+
9
+ ## 12.7.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#294](https://github.com/primer/stylelint-config/pull/294) [`8bdb1d0`](https://github.com/primer/stylelint-config/commit/8bdb1d0a679c32a1782e33feb74bd8993aba5d80) Thanks [@keithamus](https://github.com/keithamus)! - allow for vars defined in scope, or within :root/:host selectors in file
14
+
15
+ ## 12.6.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [#274](https://github.com/primer/stylelint-config/pull/274) [`4ba7018`](https://github.com/primer/stylelint-config/commit/4ba701887351664d8b937483d3d761fa5022f16c) Thanks [@jonrohan](https://github.com/jonrohan)! - Fixing issue in utilities plugin that missed certain classes
20
+
21
+ ## 12.6.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [#272](https://github.com/primer/stylelint-config/pull/272) [`9104062`](https://github.com/primer/stylelint-config/commit/91040626d2195cbb63f1e302ae53acdd4ba5b361) Thanks [@langermank](https://github.com/langermank)! - Add no-experimental-vars plugin
26
+
27
+ ## 12.5.0
28
+
29
+ ### Minor Changes
30
+
31
+ - [#262](https://github.com/primer/stylelint-config/pull/262) [`28a4086`](https://github.com/primer/stylelint-config/commit/28a4086e8c781f76494c7e77b9437046a6f686a6) Thanks [@jonrohan](https://github.com/jonrohan)! - Writing a primer/utilities plugin to look for code that duplicates utilities
32
+
33
+ ## 12.4.2
34
+
35
+ ### Patch Changes
36
+
37
+ - [#258](https://github.com/primer/stylelint-config/pull/258) [`fa48eed`](https://github.com/primer/stylelint-config/commit/fa48eed1af84474fa49bdb7ec861d2c6a3210239) Thanks [@jonrohan](https://github.com/jonrohan)! - Fixing dependencies
38
+
39
+ * [#260](https://github.com/primer/stylelint-config/pull/260) [`4f42328`](https://github.com/primer/stylelint-config/commit/4f4232826cd3055e0e9dc49ff16925c47db21863) Thanks [@jonrohan](https://github.com/jonrohan)! - Turning off 'function-no-unknown': null,
40
+
41
+ ## 12.4.1
42
+
43
+ ### Patch Changes
44
+
45
+ - [#256](https://github.com/primer/stylelint-config/pull/256) [`37eb1cb`](https://github.com/primer/stylelint-config/commit/37eb1cbd342590f4c43e37779f657a4b19594eca) Thanks [@jonrohan](https://github.com/jonrohan)! - Remove stylelint peer
46
+
47
+ ## 12.4.0
48
+
49
+ ### Minor Changes
50
+
51
+ - [#232](https://github.com/primer/stylelint-config/pull/232) [`27ddfc9`](https://github.com/primer/stylelint-config/commit/27ddfc98f93ed898552bb62aa0926d35497dda72) Thanks [@jonrohan](https://github.com/jonrohan)! - Creating a responsive-widths plugin to keep fixed widths smaller than the minimum viewport size
52
+
53
+ * [#253](https://github.com/primer/stylelint-config/pull/253) [`0edeee0`](https://github.com/primer/stylelint-config/commit/0edeee07b1e7ef51bcd0942c65d98131ac384887) Thanks [@jonrohan](https://github.com/jonrohan)! - Changing this peerDependency to be any
54
+
55
+ ## 12.3.3
56
+
57
+ ### Patch Changes
58
+
59
+ - [#218](https://github.com/primer/stylelint-config/pull/218) [`c03be7d`](https://github.com/primer/stylelint-config/commit/c03be7da1126123c079d86e00a2158a913e015f8) Thanks [@jonrohan](https://github.com/jonrohan)! - [Bug fix] Catching values with dots in them
60
+
61
+ * [#217](https://github.com/primer/stylelint-config/pull/217) [`5bb2834`](https://github.com/primer/stylelint-config/commit/5bb28342a6194dfdd4fbf5197682367ea54792b7) Thanks [@jsoref](https://github.com/jsoref)! - Spelling fixes
62
+
63
+ ## 12.3.2
64
+
65
+ ### Patch Changes
66
+
67
+ - [#215](https://github.com/primer/stylelint-config/pull/215) [`66b16ae`](https://github.com/primer/stylelint-config/commit/66b16ae2edd81f8c8949f83c96d7011e5d395cc0) Thanks [@jonrohan](https://github.com/jonrohan)! - Making linter pick up separate function groups
68
+
69
+ ## 12.3.1
70
+
71
+ ### Patch Changes
72
+
73
+ - [#213](https://github.com/primer/stylelint-config/pull/213) [`2a27f86`](https://github.com/primer/stylelint-config/commit/2a27f86868b1f4717100a1f0897cdaefb1dd6be7) Thanks [@jonrohan](https://github.com/jonrohan)! - Fixing an issue where the new spacing plugin isn't traversing child sectors.
74
+
75
+ ## 12.3.0
76
+
77
+ ### Minor Changes
78
+
79
+ - [#191](https://github.com/primer/stylelint-config/pull/191) [`71c7985`](https://github.com/primer/stylelint-config/commit/71c79853b679b674c1d27686f8d2168660b24a45) Thanks [@jonrohan](https://github.com/jonrohan)! - Refactoring the primer/spacing plugin to better match results
80
+
81
+ ## 12.2.0
82
+
83
+ ### Minor Changes
84
+
85
+ - [#170](https://github.com/primer/stylelint-config/pull/170) [`b56fcd1`](https://github.com/primer/stylelint-config/commit/b56fcd1bce90d2e3e1621ef7af7545c52c935579) Thanks [@jonrohan](https://github.com/jonrohan)! - Moving config from primer/css's [stylelint.config.cjs](https://github.com/primer/css/blob/c65be7f0c8b0fb6e1ba406b5d35c6073df161a33/stylelint.config.cjs) file to this package.
86
+
87
+ * [#168](https://github.com/primer/stylelint-config/pull/168) [`d6ff2b9`](https://github.com/primer/stylelint-config/commit/d6ff2b94ff0d309c1b79e783e6ee1b2f87a375ff) Thanks [@jonrohan](https://github.com/jonrohan)! - Extending stylelint-config-standard and removing defaults
88
+
89
+ - [#170](https://github.com/primer/stylelint-config/pull/170) [`b56fcd1`](https://github.com/primer/stylelint-config/commit/b56fcd1bce90d2e3e1621ef7af7545c52c935579) Thanks [@jonrohan](https://github.com/jonrohan)! - Adding config from the [stylelint-scss recommended config](https://github.com/stylelint-scss/stylelint-config-recommended-scss/blob/82d51c399ddaa2f9d282e419399dd2028f47830c/index.js).
90
+
91
+ ### Patch Changes
92
+
93
+ - [#181](https://github.com/primer/stylelint-config/pull/181) [`23e438a`](https://github.com/primer/stylelint-config/commit/23e438a7a9062550baa696cafbb186dc78b723f5) Thanks [@jonrohan](https://github.com/jonrohan)! - Turning off scss/dollar-variable-default
94
+
95
+ ## 12.1.1
96
+
97
+ ### Patch Changes
98
+
99
+ - [#161](https://github.com/primer/stylelint-config/pull/161) [`48c4afc`](https://github.com/primer/stylelint-config/commit/48c4afc1913863136d62967653697323f8da57b7) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump @primer/primitives from 6.1.0 to 7.0.1
100
+
101
+ ## 12.1.0
102
+
103
+ ### Minor Changes
104
+
105
+ - [#150](https://github.com/primer/stylelint-config/pull/150) [`4af1647`](https://github.com/primer/stylelint-config/commit/4af16474148d96fba5567068280a9ffe6e7a80ba) Thanks [@jonrohan](https://github.com/jonrohan)! - Making all be first in property order
106
+
107
+ * [#151](https://github.com/primer/stylelint-config/pull/151) [`d7c8b2b`](https://github.com/primer/stylelint-config/commit/d7c8b2b908b113fa14c7637dfced34610a3bcfac) Thanks [@jonrohan](https://github.com/jonrohan)! - Adding [string-quotes](https://stylelint.io/user-guide/rules/list/string-quotes) rule to config
108
+
109
+ ### Patch Changes
110
+
111
+ - [#146](https://github.com/primer/stylelint-config/pull/146) [`214362c`](https://github.com/primer/stylelint-config/commit/214362c0e3c9449a5ff7d3bd047018493043d3c0) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump @primer/css from 13.2.0 to 16.3.0
112
+
113
+ ## 12.0.1
114
+
115
+ ### Patch Changes
116
+
117
+ - [#132](https://github.com/primer/stylelint-config/pull/132) [`b672367`](https://github.com/primer/stylelint-config/commit/b6723679606bb8d39e75025ae17ace9f1c3e2631) Thanks [@jonrohan](https://github.com/jonrohan)! - Updating no-deprecated-colors plugin for edge cases
118
+
119
+ ## 12.0.0
120
+
121
+ ### Major Changes
122
+
123
+ - [#129](https://github.com/primer/stylelint-config/pull/129) [`653d596`](https://github.com/primer/stylelint-config/commit/653d596072b897b265b093aac4cd5c143e61410e) Thanks [@jonrohan](https://github.com/jonrohan)! - Renaming the package to use org scope. This is a breaking change, you'll need to uninstall `stylelint-config-primer` and reinstall `@primer/stylelint-config`.
124
+
125
+ ### Patch Changes
126
+
127
+ - [#130](https://github.com/primer/stylelint-config/pull/130) [`f495a56`](https://github.com/primer/stylelint-config/commit/f495a563a9e809252630466088eb94177e6c0be4) Thanks [@jonrohan](https://github.com/jonrohan)! - Updating @primer/primitives to 5.0 release candidate
128
+
129
+ ## 11.1.1
130
+
131
+ ### Patch Changes
132
+
133
+ - [`3a4654b`](https://github.com/primer/stylelint-config/commit/3a4654b1b7920d71e1284ff78a3bedff932e66a3) [#111](https://github.com/primer/stylelint-config/pull/111) Thanks [@jonrohan](https://github.com/jonrohan)! - Fixing the primer/colors and primer/borders rules
134
+
135
+ ## 11.1.0
136
+
137
+ ### Minor Changes
138
+
139
+ - [`e83f61c`](https://github.com/primer/stylelint-config/commit/e83f61cef3bf1df1d9420662594040efdcb86c89) [#99](https://github.com/primer/stylelint-config/pull/99) Thanks [@jonrohan](https://github.com/jonrohan)! - Create a `no-deprecated-colors` rule that looks for deprecated css color variables from primer/primitives.
140
+
141
+ ### Patch Changes
142
+
143
+ - [`581f40a`](https://github.com/primer/stylelint-config/commit/581f40a4aacb45db5426b82d4a2434e81eb032e2) [#105](https://github.com/primer/stylelint-config/pull/105) Thanks [@jonrohan](https://github.com/jonrohan)! - Adding reporting to the linter to know how many variables are replaced
144
+
145
+ ## 10.0.1
146
+
147
+ ### Patch Changes
148
+
149
+ - [`aa76171`](https://github.com/primer/stylelint-config/commit/aa76171fc5c9c308fcd9d7f7285c8fbdb2c18a7b) [#90](https://github.com/primer/stylelint-config/pull/90) Thanks [@jonrohan](https://github.com/jonrohan)! - Updating the no-undefined-variables lint for the new color-variables mixin.
150
+
151
+ ## 10.0.0
152
+
153
+ ### Major Changes
154
+
155
+ - [`23a1f15`](https://github.com/primer/stylelint-config/commit/23a1f1599673f2a4f9f28c39da61f42871c05697) [#85](https://github.com/primer/stylelint-config/pull/85) Thanks [@koddsson](https://github.com/koddsson)! - Replace deprecated "blacklist" rules for "disallow list" rules.
156
+
157
+ See https://stylelint.io/user-guide/rules/at-rule-blacklist and http://stylelint.io/user-guide/rules/declaration-property-value-disallowed-list/
158
+
159
+ ### Patch Changes
160
+
161
+ - [`40d9bb8`](https://github.com/primer/stylelint-config/commit/40d9bb867194ae4335846953b5d8706dc7dc7d79) [#86](https://github.com/primer/stylelint-config/pull/86) Thanks [@koddsson](https://github.com/koddsson)! - Allow rules to optionally display a URL with their message.
162
+
163
+ ## 9.3.3
164
+
165
+ ### Patch Changes
166
+
167
+ - [`a339c69`](https://github.com/primer/stylelint-config/commit/a339c698b9ba7ccd01b8cb773dad7a3a14dd13a1) [#81](https://github.com/primer/stylelint-config/pull/81) Thanks [@BinaryMuse](https://github.com/BinaryMuse)! - Update globby to v11
168
+
169
+ ## 9.3.2
170
+
171
+ ### Patch Changes
172
+
173
+ - [`d18cfbf`](https://github.com/primer/stylelint-config/commit/d18cfbfefc25be6ae38f73132552d2f3c62c4d02) [#79](https://github.com/primer/stylelint-config/pull/79) Thanks [@BinaryMuse](https://github.com/BinaryMuse)! - Add additional verbose logging to `no-undefined-vars`
174
+
175
+ * [`d18cfbf`](https://github.com/primer/stylelint-config/commit/d18cfbfefc25be6ae38f73132552d2f3c62c4d02) [#79](https://github.com/primer/stylelint-config/pull/79) Thanks [@BinaryMuse](https://github.com/BinaryMuse)! - Fix handling of edge-cases in `no-undefined-vars`
176
+
177
+ - [`bb07673`](https://github.com/primer/stylelint-config/commit/bb076732aa216fcb56e411b8dd7477efc89f7f8a) [#76](https://github.com/primer/stylelint-config/pull/76) Thanks [@BinaryMuse](https://github.com/BinaryMuse)! - Set the default verbose option for `no-scale-colors` to false
178
+
179
+ ## 9.3.1
180
+
181
+ ### Patch Changes
182
+
183
+ - [`df11e2d`](https://github.com/primer/stylelint-config/commit/df11e2d912913346e0499f7eac901cdfcb83f38c) [#74](https://github.com/primer/stylelint-config/pull/74) Thanks [@BinaryMuse](https://github.com/BinaryMuse)! - Add primer/no-scale-colors to the list of exported plugins
184
+
185
+ ## 9.2.1
186
+
187
+ ### :bug: Bug fixes
188
+
189
+ - Fix slow runtime by caching variable definitions in `primer/no-undefined-vars` rule
190
+ - Fix duplicate errors in `primer/no-undefined-vars` rule
191
+
192
+ ## 9.2.0
193
+
194
+ ### :rocket: Enhancements
195
+
196
+ - New `primer/no-undefined-vars` to prohibit usages of undefined CSS variables
197
+
198
+ ## 9.1.0
199
+
200
+ ### :rocket: Enhancements
201
+
202
+ - The `primer/colors`, `primer/borders`, and `primer/box-shadow` rules now allow CSS color variables with the correct functional names (e.g. `var(--color-text-primary)`). #62
203
+
204
+ ## 9.0.0
205
+
206
+ ### :boom: Breaking Change
207
+
208
+ - `primer/variables` is no longer supported; please use the `primer/colors`, `primer/borders`, `primer/box-shadow`, `primer/spacing`, and `primer/typography` rules instead. #50
209
+
210
+ ### :rocket: Enhancements
211
+
212
+ - The new `primer/colors` rule enforces color variable usage in `color`, `background-color`, and `fill` properties
213
+ - The new `primer/borders` rule enforces border variable usage in border CSS props
214
+ - The new `primer/box-shadow` rule enforces `$box-shadow*` variables
215
+ - The new `primer/spacing` rule enforces `$spacer-*` variables in margin and padding props
216
+ - The new `primer/typography` rule enforces typography variable use in `font-family`, `line-height`, and `font-weight` props
217
+ - Variable replacements for autofixing are automatically detected in variable data from Primer CSS (see: https://github.com/primer/css/pull/949) #52
218
+ - It is now possible to define variable rules using functions that take the variables, as in:
219
+ ```js
220
+ module.exports = createVariableRule('primer/whatever', ({variables}) => {
221
+ /* do something with variables here */
222
+ })
223
+ ```
224
+ - It's also now possible to provide rule _overrides_ in local stylelint configs as functions:
225
+ ```js
226
+ module.exports = {
227
+ extends: '@primer/stylelint-config',
228
+ rules: {
229
+ 'primer/colors': [true, {
230
+ rules: ({variables, rules}) => {
231
+ /* do something with variables and/or rules here */
232
+ return rules
233
+ }]
234
+ }
235
+ })
236
+ ```
237
+ - This release adds support for an optional `singular: true` flag to rule configs, which skips the parsing of individual values in the matched properties. We use this in `primer/box-shadow` to prevent multiple warnings for a single value like `box-shadow: inset 0 1px $blue` (before there would be 4 separate ones!).
238
+
239
+ ### :bug: Bug fixes
240
+
241
+ - Use `requirePrimerFile()` when loading `dist/variables.json` so that we can access the right file when running _within_ the `@primer/css` repo.
242
+ - Walk only declarations (`prop: value`) in rules (blocks with selectors, _not_ `@rules`), and skip linting for declarations nested in `@each`, `@for`, `@function`, and `@mixin` blocks, since those can define their own variables and we can't reliably assert their values.
243
+ - Allow `$*-shadow` variable patterns in `primer/box-shadow` to match `$btn-active-shadow` and `$form-control-shadow`
244
+ - Allow `color: inherit` in `primer/colors`
245
+ - Allow `$em-spacer-*` in `padding` and `margin` properties
246
+ - Allow (and auto-fix!) negative spacer variables in `margin` properties
247
+ - Make `primer/colors` smarter re: `background` property shorthand values (allowing positions and image `url(*)` values)
248
+ - Remove `100%` from allowed values for `border-radius`, and suggest `50%` instead
249
+ - Prohibit negative spacer values in `padding` properties
250
+ - Allow `$h000-size` for marketing 😬
251
+
252
+ ## 2.0.0
253
+
254
+ :boom: **The following updates are breaking changes**, since code that disables the deprecated rule will now produce linting errors. Please update your `stylelint-disable` statements accordingly.
255
+
256
+ - Replaced `selector-no-id: true` with `selector-max-id: 0`
257
+ - Replaced `selector-no-type: true` with `selector-max-type: 0`
258
+
259
+ The rest of the changes should not introduce new linting errors:
260
+
261
+ - Updated: moved [browserslist](https://github.com/ai/browserslist) spec to `package.json`
262
+ - Updated: using the [`no-unsupported-browser-features` plugin](https://github.com/ismay/stylelint-no-unsupported-browser-features) instead of the deprecated `no-unsupported-browser-features` rule
263
+ - Removed: `media-feature-no-missing-punctuation`
264
+ - Updated: replaced `rule-nested-empty-line-before` and `rule-non-nested-empty-line-before` with `rule-empty-line-before`
265
+
266
+ ## 1.4.0
267
+
268
+ - Updated: Development dependencies are any version `*`
269
+ - Removed: `selector-class-pattern` from config. https://github.com/primer/stylelint-config/pull/11
270
+
271
+ ## 1.3.0
272
+
273
+ - Added: `length-zero-no-unit` to disallow zero values with units eg `0px`
274
+
275
+ ## 1.2.0
276
+
277
+ - Removed: We don't need `scss/at-extend-no-missing-placeholder` anymore taken care of by `at-rule-blacklist`
278
+ - Added: Adding `selector-no-type` to the rules
279
+
280
+ ## 1.0.0
281
+
282
+ - Creating a sharable config object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/stylelint-config",
3
- "version": "12.7.0",
3
+ "version": "12.7.1-rc.59e46db",
4
4
  "description": "Sharable stylelint config used by GitHub's CSS",
5
5
  "homepage": "http://primer.style/css/tools/linting",
6
6
  "author": "GitHub, Inc.",
@@ -27,7 +27,6 @@
27
27
  "dependencies": {
28
28
  "anymatch": "^3.1.1",
29
29
  "globby": "^11.0.1",
30
- "lodash.kebabcase": "^4.1.1",
31
30
  "postcss-scss": "^4.0.2",
32
31
  "postcss-value-parser": "^4.0.2",
33
32
  "string.prototype.matchall": "^4.0.2",
@@ -39,19 +38,19 @@
39
38
  "tap-map": "^1.0.0"
40
39
  },
41
40
  "devDependencies": {
42
- "@changesets/changelog-github": "0.4.4",
43
- "@changesets/cli": "2.22.0",
41
+ "@changesets/changelog-github": "0.4.7",
42
+ "@changesets/cli": "2.26.1",
44
43
  "@github/prettier-config": "0.0.4",
45
44
  "@primer/css": "^20.0.0",
46
45
  "@primer/primitives": "^7.8.3",
47
46
  "dedent": "0.7.0",
48
- "eslint": "8.18.0",
47
+ "eslint": "8.22.0",
49
48
  "eslint-plugin-github": "4.3.5",
50
- "eslint-plugin-jest": "26.5.3",
49
+ "eslint-plugin-jest": "27.0.1",
51
50
  "eslint-plugin-prettier": "4.2.1",
52
- "jest": "28.1.2",
53
- "jest-preset-stylelint": "5.0.3",
54
- "prettier": "2.6.2"
51
+ "jest": "29.4.3",
52
+ "jest-preset-stylelint": "6.1.0",
53
+ "prettier": "2.8.1"
55
54
  },
56
55
  "jest": {
57
56
  "preset": "jest-preset-stylelint",
@@ -1,20 +1,13 @@
1
1
  const stylelint = require('stylelint')
2
- const kebabCase = require('lodash.kebabcase')
3
2
  const matchAll = require('string.prototype.matchall')
4
3
 
5
4
  const ruleName = 'primer/no-deprecated-colors'
6
5
  const messages = stylelint.utils.ruleMessages(ruleName, {
7
6
  rejected: (varName, replacement) => {
8
7
  if (replacement === null) {
9
- return `${varName} is a deprecated color variable. Please consult the primer color docs for a replacement. https://primer.style/primitives`
8
+ return `${varName} is a deprecated color variable. Please consult the primer color docs for a replacement. https://primer.style/primitives/storybook/?path=/story/migration-tables`
10
9
  }
11
10
 
12
- if (Array.isArray(replacement)) {
13
- replacement = replacement.map(r => `--color-${kebabCase(r)}`)
14
- return `${varName} is a deprecated color variable. Please use one of (${replacement.join(', ')}).`
15
- }
16
-
17
- replacement = `--color-${kebabCase(replacement)}`
18
11
  return `${varName} is a deprecated color variable. Please use the replacement ${replacement}.`
19
12
  }
20
13
  })
@@ -39,20 +32,7 @@ module.exports = stylelint.createPlugin(ruleName, (enabled, options = {}, contex
39
32
  const seen = new WeakMap()
40
33
 
41
34
  // eslint-disable-next-line import/no-dynamic-require
42
- const deprecatedColors = require(options.deprecatedFile || '@primer/primitives/dist/deprecated/colors.json')
43
- // eslint-disable-next-line import/no-dynamic-require
44
- const removedColors = require(options.removedFile || '@primer/primitives/dist/removed/colors.json')
45
-
46
- const variableChecks = Object.assign(deprecatedColors, removedColors)
47
-
48
- const convertedCSSVars = Object.entries(variableChecks)
49
- .map(([k, v]) => {
50
- return [`--color-${kebabCase(k)}`, v]
51
- })
52
- .reduce((acc, [key, value]) => {
53
- acc[key] = value
54
- return acc
55
- }, {})
35
+ const variableChecks = require(options.deprecatedFile || '../__tests__/__fixtures__/primitives-v8.json')
56
36
 
57
37
  const lintResult = (root, result) => {
58
38
  // Walk all declarations
@@ -62,6 +42,7 @@ module.exports = stylelint.createPlugin(ruleName, (enabled, options = {}, contex
62
42
  } else {
63
43
  seen.set(node, true)
64
44
  }
45
+
65
46
  // walk these nodes
66
47
  if (!(node.type === 'decl' || node.type === 'atrule')) {
67
48
  return
@@ -71,11 +52,22 @@ module.exports = stylelint.createPlugin(ruleName, (enabled, options = {}, contex
71
52
  node.type === 'atrule' ? node.params : node.value,
72
53
  variableReferenceRegex
73
54
  )) {
74
- if (variableName in convertedCSSVars) {
75
- let replacement = convertedCSSVars[variableName]
55
+ if (variableName in variableChecks) {
56
+ let replacement = variableChecks[variableName]
57
+ if (typeof replacement === 'object') {
58
+ for (const property of Object.keys(replacement)) {
59
+ if (node.prop.includes(property)) {
60
+ replacement = replacement[property]
61
+ break
62
+ }
63
+ }
64
+ if (typeof replacement === 'object') {
65
+ replacement = null
66
+ }
67
+ }
76
68
 
77
- if (context.fix && replacement !== null && !Array.isArray(replacement)) {
78
- replacement = `--color-${kebabCase(replacement)}`
69
+ if (context.fix && replacement !== null) {
70
+ replacement = `${replacement}, var(${variableName})`
79
71
  replacedVars[variableName] = true
80
72
  newVars[replacement] = true
81
73
  if (node.type === 'atrule') {