module.exports = { root: true, plugins: ['stylelint-scss', 'stylelint-order'], customSyntax: 'postcss-scss', extends: ['stylelint-config-standard'], rules: { 'no-descending-specificity': null, 'function-url-quotes': 'always', 'string-quotes': ['single', { avoidEscape: false }], 'unit-case': null, 'color-hex-case': 'lower', 'color-hex-length': 'long', 'rule-empty-line-before': [ 'always', { ignore: ['first-nested'], }, ], 'font-family-no-missing-generic-family-keyword': null, 'block-opening-brace-space-before': 'always', 'property-no-unknown': null, 'no-empty-source': null, 'selector-class-pattern': null, 'value-list-comma-newline-after': 'never-multi-line', 'selector-pseudo-class-no-unknown': [ true, { ignorePseudoClasses: ['deep', 'global', ':deep', ':export', '::input-placeholder'], }, ], 'function-no-unknown': [ true, { ignoreFunctions: [ '/map.*/', 'getCssVar', 'boleGetCssVar', 'v-bind', 'getBorder', 'loginPx2Rem', 'parkScreenPx2Rem', 'getScreenCellMargin', ], }, ], 'function-name-case': null, 'annotation-no-unknown': [ true, { ignoreAnnotations: ['/^default/'], }, ], // indentation: 4, 'at-rule-no-unknown': [ true, { ignoreAtRules: [ 'responsive', 'screen', 'function', 'if', 'each', 'include', 'mixin', 'use', 'forward', 'return', 'else', ], }, ], 'order/properties-order': [ 'position', 'top', 'right', 'bottom', 'left', 'z-index', 'display', 'justify-content', 'align-items', 'float', 'clear', 'overflow', 'overflow-x', 'overflow-y', 'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'width', 'min-width', 'max-width', 'height', 'min-height', 'max-height', 'font-size', 'font-family', 'font-weight', 'border', 'border-style', 'border-width', 'border-color', 'border-top', 'border-top-style', 'border-top-width', 'border-top-color', 'border-right', 'border-right-style', 'border-right-width', 'border-right-color', 'border-bottom', 'border-bottom-style', 'border-bottom-width', 'border-bottom-color', 'border-left', 'border-left-style', 'border-left-width', 'border-left-color', 'border-radius', 'text-align', 'text-justify', 'text-indent', 'text-overflow', 'text-decoration', 'white-space', 'color', 'background', 'background-position', 'background-repeat', 'background-size', 'background-color', 'background-clip', 'opacity', 'filter', 'list-style', 'outline', 'visibility', 'box-shadow', 'text-shadow', 'resize', 'transition', ], }, ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'], overrides: [ { files: ['*.vue', '**/*.vue', '*.html', '**/*.html'], customSyntax: 'postcss-html', extends: ['stylelint-config-recommended', 'stylelint-config-html'], rules: { 'keyframes-name-pattern': null, 'selector-pseudo-class-no-unknown': [ true, { ignorePseudoClasses: ['deep', 'global'], }, ], 'selector-pseudo-element-no-unknown': [ true, { ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted', '::deep'], }, ], }, }, ], };