stylelint.config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. module.exports = {
  2. root: true,
  3. extends: [
  4. "stylelint-config-standard",
  5. "stylelint-config-html/vue",
  6. "stylelint-config-recess-order"
  7. ],
  8. plugins: ["stylelint-order", "stylelint-prettier", "stylelint-scss"],
  9. overrides: [
  10. {
  11. files: ["**/*.(css|html|vue)"],
  12. customSyntax: "postcss-html"
  13. },
  14. {
  15. files: ["*.scss", "**/*.scss"],
  16. customSyntax: "postcss-scss",
  17. extends: [
  18. "stylelint-config-standard-scss",
  19. "stylelint-config-recommended-vue/scss"
  20. ]
  21. }
  22. ],
  23. rules: {
  24. "selector-class-pattern": null,
  25. "no-descending-specificity": null,
  26. "scss/dollar-variable-pattern": null,
  27. "selector-pseudo-class-no-unknown": [
  28. true,
  29. {
  30. ignorePseudoClasses: ["deep", "global"]
  31. }
  32. ],
  33. "selector-pseudo-element-no-unknown": [
  34. true,
  35. {
  36. ignorePseudoElements: ["v-deep", "v-global", "v-slotted"]
  37. }
  38. ],
  39. "at-rule-no-unknown": [
  40. true,
  41. {
  42. ignoreAtRules: [
  43. "tailwind",
  44. "apply",
  45. "variants",
  46. "responsive",
  47. "screen",
  48. "function",
  49. "if",
  50. "each",
  51. "include",
  52. "mixin",
  53. "use"
  54. ]
  55. }
  56. ],
  57. "rule-empty-line-before": [
  58. "always",
  59. {
  60. ignore: ["after-comment", "first-nested"]
  61. }
  62. ],
  63. "unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
  64. "order/order": [
  65. [
  66. "dollar-variables",
  67. "custom-properties",
  68. "at-rules",
  69. "declarations",
  70. {
  71. type: "at-rule",
  72. name: "supports"
  73. },
  74. {
  75. type: "at-rule",
  76. name: "media"
  77. },
  78. "rules"
  79. ],
  80. { severity: "warning" }
  81. ]
  82. },
  83. ignoreFiles: ["**/*.js", "**/*.ts", "**/*.jsx", "**/*.tsx"]
  84. };