module.exports = { extends: [ "stylelint-config-standard", "stylelint-config-recommended-scss", "stylelint-config-recess-order", ], overrides: [ { files: ["**/*.{vue,html}"], customSyntax: "postcss-html", }, { files: ["**/*.{css,scss}"], customSyntax: "postcss-scss", }, ], rules: { "import-notation": "string", "selector-class-pattern": null, "custom-property-pattern": null, "keyframes-name-pattern": null, "no-descending-specificity": null, "no-empty-source": null, "property-no-vendor-prefix": null, "at-rule-empty-line-before": null, // 允许 placeholder mixin 中必要的浏览器前缀(:-ms-input-placeholder、::-webkit-input-placeholder) "selector-no-vendor-prefix": [ true, { ignoreSelectors: ["::-webkit-input-placeholder", ":-ms-input-placeholder"], }, ], // 允许 Vue SFC :deep() / ::deep / :global() / :slotted() 伪选择器 "selector-pseudo-class-no-unknown": [ true, { ignorePseudoClasses: ["global", "export", "deep", "slotted"], }, ], "selector-pseudo-element-no-unknown": [ true, { ignorePseudoElements: ["deep"], }, ], // 允许 SCSS + Tailwind CSS v4 专属 at-rules "at-rule-no-unknown": null, // 允许注释前无空行(section 分隔注释紧凑排版更清晰) "comment-empty-line-before": null, "scss/at-rule-no-unknown": [ true, { ignoreAtRules: [ "apply", "use", "mixin", "include", "extend", "each", "if", "else", "for", "while", "reference", "tailwind", "theme", "utility", "source", "custom-variant", "layer", "config", "plugin", ], }, ], }, };