@wagtail/stylelint-config-wagtail
v0.8.0
Published
Shareable Stylelint config for CSS and SCSS, following Wagtail’s code style
Readme
@wagtail/stylelint-config-wagtail
Shareable stylelint config for CSS and SCSS, following Wagtail’s code style.
Usage
Our default export contains all of our Stylelint rules, along with specific plugins for SCSS syntax.
- Run
npm install stylelint @wagtail/stylelint-config-wagtail --save-dev - Add
"extends": "@wagtail/stylelint-config-wagtail"to your.stylelintrc
Links
Contribution Guidelines
Install
- Required Node
- We recommend using nvm
- Clone the project on to your computer
- Run
nvm installto ensure you have the correct Node version - Run
npm installto install project dependencies - Ensure your editor is set up to use editorconfig, Prettier, Eslint and Stylelint
Development
- Run
nvm useto set Node to the correct version - Run tests via
npm run test - Run linting via
npm run lint - Run updates to Readme (if rules have changed) via
npm run write-rules - Run preflight checks before committing final code via
npm run preflight - Note: When working with the rule set, only modify the
index.jsfile, not the.eslintrcfile as it is for local linting only
Rules
| Rule | Config |
| ------------------------------------------------------------ | ------------------------------------------------------------------- |
| block-no-empty | Enabled |
| color-hex-length | "short" |
| color-named | "never" |
| color-no-invalid-hex | Enabled |
| comment-no-empty | Enabled |
| custom-property-no-missing-var-function | Enabled |
| declaration-block-no-duplicate-custom-properties | Enabled |
| declaration-block-no-duplicate-properties | Enabled |
| declaration-block-no-redundant-longhand-properties | Enabled |
| declaration-block-no-shorthand-property-overrides | Enabled |
| declaration-block-single-line-max-declarations | 1 |
| declaration-no-important | Enabled |
| declaration-property-value-allowed-list | Enabled - see Config |
| declaration-property-value-disallowed-list | {"/^border/":["none"]}, {"severity":"error"} |
| font-family-no-duplicate-names | Enabled |
| font-family-no-missing-generic-family-keyword | Enabled |
| function-calc-no-unspaced-operator | Enabled |
| function-linear-gradient-no-nonstandard-direction | Enabled |
| function-url-quotes | "always" |
| keyframe-block-no-duplicate-selectors | Enabled |
| keyframe-declaration-no-important | Enabled |
| length-zero-no-unit | Enabled |
| max-nesting-depth | 3 |
| media-feature-name-no-unknown | Enabled |
| named-grid-areas-no-invalid | Enabled |
| no-descending-specificity | Enabled |
| no-duplicate-at-import-rules | Enabled |
| no-duplicate-selectors | Enabled |
| no-empty-source | Enabled |
| no-invalid-double-slash-comments | Enabled |
| no-invalid-position-at-import-rule | {"ignoreAtRules":["use","forward"]} |
| no-irregular-whitespace | Enabled |
| order/order | [{"name":"include","type":"at-rule"},"declarations"] |
| property-disallowed-list | ["/forced-color-adjust/","/left/","/right/","text-transform"] |
| property-no-unknown | Enabled |
| property-no-vendor-prefix | Enabled |
| rule-empty-line-before | "always", {"except":["after-single-line-comment","first-nested"]} |
| scale-unlimited/declaration-strict-value | Enabled - see Config |
| scss/at-extend-no-missing-placeholder | Enabled |
| scss/at-if-no-null | Enabled |
| scss/at-import-partial-extension-blacklist | "scss" |
| scss/at-rule-no-unknown | Enabled |
| scss/comment-no-empty | Enabled |
| scss/declaration-nested-properties-no-divided-groups | Enabled |
| scss/dollar-variable-no-missing-interpolation | Enabled |
| scss/function-quote-no-quoted-strings-inside | Enabled |
| scss/function-unquote-no-unquoted-strings-inside | Enabled |
| scss/load-no-partial-leading-underscore | Enabled |
| scss/media-feature-value-dollar-variable | "always", {"ignore":["keywords"]} |
| scss/no-duplicate-mixins | Enabled |
| scss/no-global-function-names | Enabled |
| scss/selector-no-redundant-nesting-selector | Enabled |
| scss/selector-no-union-class-name | Enabled |
| selector-anb-no-unmatchable | Enabled |
| selector-attribute-name-disallowed-list | "/^data-/" |
| selector-class-pattern | {}, {"resolveNestedSelectors":true} |
| selector-max-combinators | 3 |
| selector-max-id | 0 |
| selector-max-specificity | "0,3,3" |
| selector-no-qualifying-type | {"ignore":["attribute","class"]} |
| selector-pseudo-class-no-unknown | Enabled |
| selector-pseudo-element-no-unknown | Enabled |
| selector-type-no-unknown | Enabled |
| string-no-newline | Enabled |
| unit-no-unknown | Enabled |
| value-no-vendor-prefix | Enabled |
