diff --git a/sources/@roots/bud-preset-wordpress/config/stylelint.cjs b/sources/@roots/bud-preset-wordpress/config/stylelint.cjs index a71bc83bc4..e4622b1f48 100644 --- a/sources/@roots/bud-preset-wordpress/config/stylelint.cjs +++ b/sources/@roots/bud-preset-wordpress/config/stylelint.cjs @@ -3,6 +3,11 @@ */ module.exports = { rules: { - 'custom-property-pattern': null, + 'custom-property-pattern': [ + `^([a-z][a-z0-9]*)(-{1,2}[a-z0-9]+)*$`, + { + message: name => `Expected custom property name "${name}" to be kebab-case`, + }, + ], }, } diff --git a/sources/@roots/bud-preset-wordpress/test/stylelint-config.test.ts b/sources/@roots/bud-preset-wordpress/test/stylelint-config.test.ts new file mode 100644 index 0000000000..590fdc38ea --- /dev/null +++ b/sources/@roots/bud-preset-wordpress/test/stylelint-config.test.ts @@ -0,0 +1,39 @@ +import * as stylelint from 'stylelint' +import {describe, expect, it} from 'vitest' + +describe(`@roots/bud-preset-wordpress/stylelint`, () => { + it(`should error without rule`, async () => { + const result = await stylelint.lint({ + code: ` + .foo { + color: var(--wp--preset--color--primary); + } + `, + config: { + extends: [ + `@roots/bud-sass/stylelint-config`, + ], + }, + }) + + expect(result.errored).toBe(true) + }) + + it(`should not error with rule`, async () => { + const result = await stylelint.lint({ + code: ` + .foo { + color: var(--wp--preset--color--primary); + } + `, + config: { + extends: [ + `@roots/bud-sass/stylelint-config`, + `@roots/bud-preset-wordpress/stylelint`, + ], + }, + }) + + expect(result.errored).toBe(false) + }) +}) \ No newline at end of file