diff --git a/.sass-lint.yml b/.sass-lint.yml deleted file mode 100644 index 22d07f5b8..000000000 --- a/.sass-lint.yml +++ /dev/null @@ -1,178 +0,0 @@ -# sass-lint config to match the AirBNB style guide -files: - include: '**/client/src/**/*.scss' - ignore: - - 'client/src/styles/legacy/*' - - 'admin/client/src/styles/legacy/*' -options: - formatter: stylish - merge-default-rules: false -rules: - # Warnings - # Things that require actual refactoring are marked as warnings - class-name-format: - - 1 - - convention: hyphenatedbem - placeholder-name-format: - - 1 - - convention: hyphenatedlowercase - nesting-depth: - - 1 - - max-depth: 3 - no-ids: 1 - no-important: 1 - no-misspelled-properties: - - 1 - - extra-properties: - - "-moz-border-radius-topleft" - - "-moz-border-radius-topright" - - "-moz-border-radius-bottomleft" - - "-moz-border-radius-bottomright" - variable-name-format: - - 1 - - allow-leading-underscore: true - convention: hyphenatedlowercase - no-extends: 1 - - # Warnings: these things are preferential rather than mandatory - no-css-comments: 1 - - # Errors - # Things that can be easily fixed are marked as errors - indentation: - - 2 - - size: 2 - final-newline: - - 2 - - include: true - no-trailing-whitespace: 2 - border-zero: - - 2 - - convention: '0' - brace-style: - - 2 - - allow-single-line: true - clean-import-paths: - - 2 - - filename-extension: false - leading-underscore: false - no-debug: 2 - no-empty-rulesets: 2 - no-invalid-hex: 2 - no-mergeable-selectors: 2 - # no-qualifying-elements: - # - 1 - # - allow-element-with-attribute: false - # allow-element-with-class: false - # allow-element-with-id: false - no-trailing-zero: 2 - no-url-protocols: 2 - quotes: - - 2 - - style: double - space-after-bang: - - 2 - - include: false - space-after-colon: - - 2 - - include: true - space-after-comma: - - 2 - - include: true - space-before-bang: - - 2 - - include: true - space-before-brace: - - 2 - - include: true - space-before-colon: 2 - space-between-parens: - - 2 - - include: false - trailing-semicolon: 2 - url-quotes: 2 - zero-unit: 2 - single-line-per-selector: 2 - one-declaration-per-line: 2 - empty-line-between-blocks: - - 2 - - ignore-single-line-rulesets: true - - - # Missing rules - # There are no sass-lint rules for the following AirBNB style items, but thess - # - Put comments on their own line - # - Put property delcarations before mixins - - # Disabled rules - - # These are other rules that we may wish to consider using in the future - # They are not part of the AirBNB CSS standard but they would introduce some strictness - # bem-depth: 0 - # variable-for-property: 0 - # no-transition-all: 0 - # hex-length: - # - 1 - # - style: short - # hex-notation: - # - 1 - # - style: lowercase - # property-units: - # - 1 - # - global: - # - ch - # - em - # - ex - # - rem - # - cm - # - in - # - mm - # - pc - # - pt - # - px - # - q - # - vh - # - vw - # - vmin - # - vmax - # - deg - # - grad - # - rad - # - turn - # - ms - # - s - # - Hz - # - kHz - # - dpi - # - dpcm - # - dppx - # - '%' - # per-property: {} - # force-attribute-nesting: 1 - # force-element-nesting: 1 - # force-pseudo-nesting: 1 - # function-name-format: - # - 1 - # - allow-leading-underscore: true - # convention: hyphenatedlowercase - # no-color-literals: 1 - # no-duplicate-properties: 1 - # mixin-name-format: - # - 1 - # - allow-leading-underscore: true - # convention: hyphenatedlowercase - # shorthand-values: - # - 1 - # - allowed-shorthands: - # - 1 - # - 2 - # - 3 - # leading-zero: - # - 1 - # - include: false - # no-vendor-prefixes: - # - 1 - # - additional-identifiers: [] - # excluded-identifiers: [] - # placeholder-in-extend: 1 - # no-color-keywords: 2 diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 000000000..2e0c05ab5 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,2 @@ +client/src/styles/legacy/* +admin/client/src/styles/legacy/* diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 000000000..ef7353b7b --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1 @@ +module.exports = require('@silverstripe/eslint-config/.stylelintrc'); diff --git a/package.json b/package.json index 68115a623..212294aae 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ "test": "jest", "coverage": "jest --coverage", "lock": "npm-shrinkwrap --dev", - "lint": "eslint client/src && sass-lint client/src", + "lint": "eslint client/src && yarn lint-sass", "lint-js": "eslint client/src", "lint-js-fix": "eslint client/src --fix", - "lint-sass": "sass-lint client/src" + "lint-sass": "stylelint **/client/src/**/*.scss" }, "jest": { "testEnvironment": "jsdom", @@ -48,8 +48,8 @@ } }, "devDependencies": { - "@silverstripe/eslint-config": "^1.1.0", - "@silverstripe/webpack-config": "^2.0.0", + "@silverstripe/eslint-config": "^1.2.1", + "@silverstripe/webpack-config": "^2.1.0", "@storybook/addon-actions": "^7.0.18", "@testing-library/react": "^14.0.0", "babel-jest": "^29.3.0",