uui-build/linting/stylelintrc.base.js (94 lines of code) (raw):
const { uuiRoot } = require('../utils/constants');
const path = require('path');
const stylelintCustomRules = path.resolve(uuiRoot, './uui-build/linting/stylelintCustomRules/index.js');
const SCSS_COMMON_RULES = {
// start - migrated stylistic rules
'scss/at-extend-no-missing-placeholder': null,
'block-opening-brace-space-before': 'always',
'declaration-bang-space-after': 'never',
'declaration-bang-space-before': 'always',
'declaration-block-semicolon-newline-after': 'always',
'declaration-block-semicolon-space-before': 'never',
'declaration-block-trailing-semicolon': 'always',
'declaration-colon-space-after': 'always-single-line',
'declaration-colon-space-before': 'never',
'function-comma-space-after': 'always-single-line',
'function-parentheses-space-inside': 'never',
'media-feature-parentheses-space-inside': 'never',
'no-missing-end-of-source-newline': null,
'number-leading-zero': 'always',
'number-no-trailing-zeros': true,
'selector-list-comma-newline-after': null,
'string-quotes': 'single',
indentation: 4,
'color-hex-case': 'upper',
// end - migrated stylistic rules
'order/properties-alphabetical-order': null,
'max-nesting-depth': null,
'color-named': null,
'selector-max-compound-selectors': null,
'shorthand-property-no-redundant-values': null,
'color-hex-length': null,
'selector-class-pattern': null,
'selector-no-vendor-prefix': null,
'property-no-vendor-prefix': null,
'selector-no-qualifying-type': null,
//
'declaration-empty-line-before': 'never',
'property-no-unknown': [true, { ignoreProperties: ['composes'] }],
'declaration-property-value-disallowed-list': [
{
border: ['none'],
'border-top': ['none'],
'border-right': ['none'],
'border-bottom': ['none'],
'border-left': ['none'],
}, { message: 'E.g.: border: none can be replaced by "border: 0 none;"' },
],
'unit-no-unknown': true,
'media-feature-name-no-unknown': true,
'color-no-invalid-hex': true,
'declaration-block-no-duplicate-properties': [
true, {
ignore: ['consecutive-duplicates-with-different-values'],
},
],
'no-empty-source': true,
'order/order': [
[
'dollar-variables',
'custom-properties',
{
type: 'at-rule',
name: 'extend',
},
'declarations',
'rules',
],
],
'scss/at-mixin-pattern': null,
'scss/at-import-partial-extension-blacklist': null,
'scss/selector-no-redundant-nesting-selector': null,
'scss/dollar-variable-pattern': null,
'scss/no-global-function-names': null,
'length-zero-no-unit': [
true, {
ignore: ['custom-properties'],
ignoreFunctions: ['var', '/^--/'],
},
],
};
module.exports = {
reportInvalidScopeDisables: true,
reportNeedlessDisables: true,
plugins: [
'stylelint-order',
stylelintCustomRules,
],
overrides: [
{
extends: ['stylelint-config-sass-guidelines'],
files: ['**/*.scss'],
rules: {
...SCSS_COMMON_RULES,
},
},
],
};