@kununu/stylelint-config
Version:
kununu's stylelint config
65 lines (63 loc) • 2.26 kB
JavaScript
const {propertyOrdering, selectorOrdering} = require('stylelint-semantic-groups');
module.exports = {
extends: [
'stylelint-config-standard-scss',
'stylelint-prettier/recommended',
],
plugins: [
'stylelint-scss',
'stylelint-order',
],
rules: {
'alpha-value-notation': 'number',
'at-rule-no-unknown': null,
'at-rule-no-vendor-prefix': true,
'color-function-notation': 'legacy',
'color-hex-length': 'long',
'color-named': 'never',
'comment-empty-line-before': ['always', {except: ['first-nested'], ignore: ['after-comment', 'stylelint-commands']}],
'comment-whitespace-inside': 'always',
'function-url-quotes': 'always',
'media-feature-name-no-vendor-prefix': true,
'media-feature-range-notation': 'prefix',
'no-descending-specificity': null, // clashing with order/order
'no-duplicate-selectors': true,
'order/order': selectorOrdering, // to fine-tune configuration use selectorOrderFactory
'order/properties-order': propertyOrdering.map((entry) => entry.map((group) => {
// This fixes prettier and css group issues
if (typeof group === 'object' && group.emptyLineBefore === 'always') {
group.emptyLineBefore = 'never';
}
return group
})),
'prettier/prettier': [
true,
{
'arrowParens': 'avoid',
'bracketSpacing': false,
'semi': true,
'singleQuote': true,
'trailingComma': 'all',
},
],
'property-no-unknown': [
true,
{
ignoreSelectors: [':export'],
},
],
'property-no-vendor-prefix': true,
'rule-empty-line-before': ['always', {except: ['after-single-line-comment', 'first-nested']}],
'scss/at-mixin-pattern': '^([a-z][a-z0-9]*)(-[a-z0-9]+)*$', // kebab-case
'scss/at-rule-no-unknown': true,
'selector-attribute-quotes': 'always',
'selector-class-pattern': '^[a-z][a-zA-Z0-9]+$', // camelCase
'selector-max-id': [0, {severity: 'warning'}],
'selector-no-vendor-prefix': true,
'selector-pseudo-element-colon-notation': 'single',
'selector-pseudo-class-no-unknown': [true, {
ignorePseudoClasses: ['global', 'export', 'import', 'local'],
}],
'value-no-vendor-prefix': true,
},
};