lint-defaults-stylelint.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. 'use strict';
  2. window.linterConfig.defaults.stylelint = (defaultSeverity => ({
  3. // 'sugarss' is a indent-based syntax like Sass or Stylus
  4. // ref: https://github.com/postcss/postcss#syntaxes
  5. syntax: 'sugarss',
  6. // ** recommended rules **
  7. // ref: https://github.com/stylelint/stylelint-config-recommended/blob/master/index.js
  8. rules: {
  9. 'at-rule-no-unknown': [true, defaultSeverity],
  10. 'block-no-empty': [true, defaultSeverity],
  11. 'color-no-invalid-hex': [true, defaultSeverity],
  12. 'declaration-block-no-duplicate-properties': [true, {
  13. 'ignore': ['consecutive-duplicates-with-different-values'],
  14. 'severity': 'warning'
  15. }],
  16. 'declaration-block-no-shorthand-property-overrides': [true, defaultSeverity],
  17. 'font-family-no-duplicate-names': [true, defaultSeverity],
  18. 'function-calc-no-unspaced-operator': [true, defaultSeverity],
  19. 'function-linear-gradient-no-nonstandard-direction': [true, defaultSeverity],
  20. 'keyframe-declaration-no-important': [true, defaultSeverity],
  21. 'media-feature-name-no-unknown': [true, defaultSeverity],
  22. /* recommended true */
  23. 'no-empty-source': false,
  24. 'no-extra-semicolons': [true, defaultSeverity],
  25. 'no-invalid-double-slash-comments': [true, defaultSeverity],
  26. 'property-no-unknown': [true, defaultSeverity],
  27. 'selector-pseudo-class-no-unknown': [true, defaultSeverity],
  28. 'selector-pseudo-element-no-unknown': [true, defaultSeverity],
  29. 'selector-type-no-unknown': false, // for scss/less/stylus-lang
  30. 'string-no-newline': [true, defaultSeverity],
  31. 'unit-no-unknown': [true, defaultSeverity],
  32. // ** non-essential rules
  33. 'comment-no-empty': false,
  34. 'declaration-block-no-redundant-longhand-properties': false,
  35. 'shorthand-property-no-redundant-values': false,
  36. // ** stylistic rules **
  37. /*
  38. 'at-rule-empty-line-before': [
  39. 'always',
  40. {
  41. 'except': [
  42. 'blockless-after-same-name-blockless',
  43. 'first-nested'
  44. ],
  45. 'ignore': [
  46. 'after-comment'
  47. ]
  48. }
  49. ],
  50. 'at-rule-name-case': 'lower',
  51. 'at-rule-name-space-after': 'always-single-line',
  52. 'at-rule-semicolon-newline-after': 'always',
  53. 'block-closing-brace-empty-line-before': 'never',
  54. 'block-closing-brace-newline-after': 'always',
  55. 'block-closing-brace-newline-before': 'always-multi-line',
  56. 'block-closing-brace-space-before': 'always-single-line',
  57. 'block-opening-brace-newline-after': 'always-multi-line',
  58. 'block-opening-brace-space-after': 'always-single-line',
  59. 'block-opening-brace-space-before': 'always',
  60. 'color-hex-case': 'lower',
  61. 'color-hex-length': 'short',
  62. 'comment-empty-line-before': [
  63. 'always',
  64. {
  65. 'except': [
  66. 'first-nested'
  67. ],
  68. 'ignore': [
  69. 'stylelint-commands'
  70. ]
  71. }
  72. ],
  73. 'comment-whitespace-inside': 'always',
  74. 'custom-property-empty-line-before': [
  75. 'always',
  76. {
  77. 'except': [
  78. 'after-custom-property',
  79. 'first-nested'
  80. ],
  81. 'ignore': [
  82. 'after-comment',
  83. 'inside-single-line-block'
  84. ]
  85. }
  86. ],
  87. 'declaration-bang-space-after': 'never',
  88. 'declaration-bang-space-before': 'always',
  89. 'declaration-block-semicolon-newline-after': 'always-multi-line',
  90. 'declaration-block-semicolon-space-after': 'always-single-line',
  91. 'declaration-block-semicolon-space-before': 'never',
  92. 'declaration-block-single-line-max-declarations': 1,
  93. 'declaration-block-trailing-semicolon': 'always',
  94. 'declaration-colon-newline-after': 'always-multi-line',
  95. 'declaration-colon-space-after': 'always-single-line',
  96. 'declaration-colon-space-before': 'never',
  97. 'declaration-empty-line-before': [
  98. 'always',
  99. {
  100. 'except': [
  101. 'after-declaration',
  102. 'first-nested'
  103. ],
  104. 'ignore': [
  105. 'after-comment',
  106. 'inside-single-line-block'
  107. ]
  108. }
  109. ],
  110. 'function-comma-newline-after': 'always-multi-line',
  111. 'function-comma-space-after': 'always-single-line',
  112. 'function-comma-space-before': 'never',
  113. 'function-max-empty-lines': 0,
  114. 'function-name-case': 'lower',
  115. 'function-parentheses-newline-inside': 'always-multi-line',
  116. 'function-parentheses-space-inside': 'never-single-line',
  117. 'function-whitespace-after': 'always',
  118. 'indentation': 2,
  119. 'length-zero-no-unit': true,
  120. 'max-empty-lines': 1,
  121. 'media-feature-colon-space-after': 'always',
  122. 'media-feature-colon-space-before': 'never',
  123. 'media-feature-name-case': 'lower',
  124. 'media-feature-parentheses-space-inside': 'never',
  125. 'media-feature-range-operator-space-after': 'always',
  126. 'media-feature-range-operator-space-before': 'always',
  127. 'media-query-list-comma-newline-after': 'always-multi-line',
  128. 'media-query-list-comma-space-after': 'always-single-line',
  129. 'media-query-list-comma-space-before': 'never',
  130. 'no-eol-whitespace': true,
  131. 'no-missing-end-of-source-newline': true,
  132. 'number-leading-zero': 'always',
  133. 'number-no-trailing-zeros': true,
  134. 'property-case': 'lower',
  135. 'rule-empty-line-before': [
  136. 'always-multi-line',
  137. {
  138. 'except': [
  139. 'first-nested'
  140. ],
  141. 'ignore': [
  142. 'after-comment'
  143. ]
  144. }
  145. ],
  146. 'selector-attribute-brackets-space-inside': 'never',
  147. 'selector-attribute-operator-space-after': 'never',
  148. 'selector-attribute-operator-space-before': 'never',
  149. 'selector-combinator-space-after': 'always',
  150. 'selector-combinator-space-before': 'always',
  151. 'selector-descendant-combinator-no-non-space': true,
  152. 'selector-list-comma-newline-after': 'always',
  153. 'selector-list-comma-space-before': 'never',
  154. 'selector-max-empty-lines': 0,
  155. 'selector-pseudo-class-case': 'lower',
  156. 'selector-pseudo-class-parentheses-space-inside': 'never',
  157. 'selector-pseudo-element-case': 'lower',
  158. 'selector-pseudo-element-colon-notation': 'double',
  159. 'selector-type-case': 'lower',
  160. 'unit-case': 'lower',
  161. 'value-list-comma-newline-after': 'always-multi-line',
  162. 'value-list-comma-space-after': 'always-single-line',
  163. 'value-list-comma-space-before': 'never',
  164. 'value-list-max-empty-lines': 0
  165. */
  166. }
  167. }))({severity: 'warning'});