32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
/** @type {import('stylelint').Config} */
|
|
const config = {
|
|
extends: ['stylelint-config-standard'],
|
|
rules: {
|
|
// CSS custom properties (design tokens) — allowed anywhere
|
|
'custom-property-pattern': null,
|
|
// CSS Modules compose pattern
|
|
'value-keyword-case': ['lower', { camelCaseSvgKeywords: true }],
|
|
// Allow CSS nesting (supported by PostCSS preset-env)
|
|
'no-descending-specificity': null,
|
|
},
|
|
overrides: [
|
|
{
|
|
files: ['**/*.module.css'],
|
|
rules: {
|
|
// CSS Modules classes are accessed as JS identifiers, so camelCase is idiomatic
|
|
'selector-class-pattern': [
|
|
'^[a-z][a-zA-Z0-9]*$',
|
|
{ message: 'Expected class selector to be camelCase (CSS Modules)' },
|
|
],
|
|
// :local() and :global() selectors in CSS Modules
|
|
'selector-pseudo-class-no-unknown': [
|
|
true,
|
|
{ ignorePseudoClasses: ['local', 'global'] },
|
|
],
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export default config;
|