summaryrefslogtreecommitdiffstats
path: root/stylelint.config.js
blob: 18f9af68b7ea514e0f7f6e76d931cbeea3b09d4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
import {fileURLToPath} from 'node:url';

const cssVarFiles = [
  fileURLToPath(new URL('web_src/css/base.css', import.meta.url)),
  fileURLToPath(new URL('web_src/css/themes/theme-gitea-light.css', import.meta.url)),
  fileURLToPath(new URL('web_src/css/themes/theme-gitea-dark.css', import.meta.url)),
];

/** @type {import('stylelint').Config} */
export default {
  plugins: [
    'stylelint-declaration-strict-value',
    'stylelint-declaration-block-no-ignored-properties',
    'stylelint-value-no-unknown-custom-properties',
    '@stylistic/stylelint-plugin',
  ],
  ignoreFiles: [
    '**/*.go',
    '/web_src/fomantic',
  ],
  overrides: [
    {
      files: ['**/chroma/*', '**/codemirror/*', '**/standalone/*', '**/console.css', 'font_i18n.css'],
      rules: {
        'scale-unlimited/declaration-strict-value': null,
      },
    },
    {
      files: ['**/chroma/*', '**/codemirror/*'],
      rules: {
        'block-no-empty': null,
      },
    },
    {
      files: ['**/*.vue'],
      customSyntax: 'postcss-html',
    },
  ],
  rules: {
    '@stylistic/at-rule-name-case': null,
    '@stylistic/at-rule-name-newline-after': null,
    '@stylistic/at-rule-name-space-after': null,
    '@stylistic/at-rule-semicolon-newline-after': null,
    '@stylistic/at-rule-semicolon-space-before': null,
    '@stylistic/block-closing-brace-empty-line-before': null,
    '@stylistic/block-closing-brace-newline-after': null,
    '@stylistic/block-closing-brace-newline-before': null,
    '@stylistic/block-closing-brace-space-after': null,
    '@stylistic/block-closing-brace-space-before': null,
    '@stylistic/block-opening-brace-newline-after': null,
    '@stylistic/block-opening-brace-newline-before': null,
    '@stylistic/block-opening-brace-space-after': null,
    '@stylistic/block-opening-brace-space-before': 'always',
    '@stylistic/color-hex-case': 'lower',
    '@stylistic/declaration-bang-space-after': 'never',
    '@stylistic/declaration-bang-space-before': null,
    '@stylistic/declaration-block-semicolon-newline-after': null,
    '@stylistic/declaration-block-semicolon-newline-before': null,
    '@stylistic/declaration-block-semicolon-space-after': null,
    '@stylistic/declaration-block-semicolon-space-before': 'never',
    '@stylistic/declaration-block-trailing-semicolon': null,
    '@stylistic/declaration-colon-newline-after': null,
    '@stylistic/declaration-colon-space-after': null,
    '@stylistic/declaration-colon-space-before': 'never',
    '@stylistic/function-comma-newline-after': null,
    '@stylistic/function-comma-newline-before': null,
    '@stylistic/function-comma-space-after': null,
    '@stylistic/function-comma-space-before': null,
    '@stylistic/function-max-empty-lines': 0,
    '@stylistic/function-parentheses-newline-inside': 'never-multi-line',
    '@stylistic/function-parentheses-space-inside': null,
    '@stylistic/function-whitespace-after': null,
    '@stylistic/indentation': 2,
    '@stylistic/linebreaks': null,
    '@stylistic/max-empty-lines': 1,
    '@stylistic/max-line-length': null,
    '@stylistic/media-feature-colon-space-after': null,
    '@stylistic/media-feature-colon-space-before': 'never',
    '@stylistic/media-feature-name-case': null,
    '@stylistic/media-feature-parentheses-space-inside': null,
    '@stylistic/media-feature-range-operator-space-after': 'always',
    '@stylistic/media-feature-range-operator-space-before': 'always',
    '@stylistic/media-query-list-comma-newline-after': null,
    '@stylistic/media-query-list-comma-newline-before': null,
    '@stylistic/media-query-list-comma-space-after': null,
    '@stylistic/media-query-list-comma-space-before': null,
    '@stylistic/named-grid-areas-alignment': null,
    '@stylistic/no-empty-first-line': null,
    '@stylistic/no-eol-whitespace': true,
    '@stylistic/no-extra-semicolons': true,
    '@stylistic/no-missing-end-of-source-newline': null,
    '@stylistic/number-leading-zero': null,
    '@stylistic/number-no-trailing-zeros': null,
    '@stylistic/property-case': 'lower',
    '@stylistic/selector-attribute-brackets-space-inside': null,
    '@stylistic/selector-attribute-operator-space-after': null,
    '@stylistic/selector-attribute-operator-space-before': null,
    '@stylistic/selector-combinator-space-after': null,
    '@stylistic/selector-combinator-space-before': null,
    '@stylistic/selector-descendant-combinator-no-non-space': null,
    '@stylistic/selector-list-comma-newline-after': null,
    '@stylistic/selector-list-comma-newline-before': null,
    '@stylistic/selector-list-comma-space-after': 'always-single-line',
    '@stylistic/selector-list-comma-space-before': 'never-single-line',
    '@stylistic/selector-max-empty-lines': 0,
    '@stylistic/selector-pseudo-class-case': 'lower',
    '@stylistic/selector-pseudo-class-parentheses-space-inside': 'never',
    '@stylistic/selector-pseudo-element-case': 'lower',
    '@stylistic/string-quotes': 'double',
    '@stylistic/unicode-bom': null,
    '@stylistic/unit-case': 'lower',
    '@stylistic/value-list-comma-newline-after': null,
    '@stylistic/value-list-comma-newline-before': null,
    '@stylistic/value-list-comma-space-after': null,
    '@stylistic/value-list-comma-space-before': null,
    '@stylistic/value-list-max-empty-lines': 0,
    'alpha-value-notation': null,
    'annotation-no-unknown': true,
    'at-rule-allowed-list': null,
    'at-rule-disallowed-list': null,
    'at-rule-empty-line-before': null,
    'at-rule-no-unknown': [true, {ignoreAtRules: ['tailwind']}],
    'at-rule-no-vendor-prefix': true,
    'at-rule-property-required-list': null,
    'block-no-empty': true,
    'color-function-notation': null,
    'color-hex-alpha': null,
    'color-hex-length': null,
    'color-named': null,
    'color-no-hex': null,
    'color-no-invalid-hex': true,
    'comment-empty-line-before': null,
    'comment-no-empty': true,
    'comment-pattern': null,
    'comment-whitespace-inside': null,
    'comment-word-disallowed-list': null,
    'csstools/value-no-unknown-custom-properties': [true, {importFrom: cssVarFiles}],
    'custom-media-pattern': null,
    'custom-property-empty-line-before': null,
    'custom-property-no-missing-var-function': true,
    'custom-property-pattern': null,
    'declaration-block-no-duplicate-custom-properties': true,
    'declaration-block-no-duplicate-properties': [true, {ignore: ['consecutive-duplicates-with-different-values']}],
    'declaration-block-no-redundant-longhand-properties': [true, {ignoreShorthands: ['flex-flow', 'overflow']}],
    'declaration-block-no-shorthand-property-overrides': null,
    'declaration-block-single-line-max-declarations': null,
    'declaration-empty-line-before': null,
    'declaration-no-important': null,
    'declaration-property-max-values': null,
    'declaration-property-unit-allowed-list': null,
    'declaration-property-unit-disallowed-list': {'line-height': ['em']},
    'declaration-property-value-allowed-list': null,
    'declaration-property-value-disallowed-list': {'word-break': ['break-word']},
    'declaration-property-value-no-unknown': true,
    'font-family-name-quotes': 'always-where-recommended',
    'font-family-no-duplicate-names': true,
    'font-family-no-missing-generic-family-keyword': true,
    'font-weight-notation': null,
    'function-allowed-list': null,
    'function-calc-no-unspaced-operator': true,
    'function-disallowed-list': null,
    'function-linear-gradient-no-nonstandard-direction': true,
    'function-name-case': 'lower',
    'function-no-unknown': true,
    'function-url-no-scheme-relative': null,
    'function-url-quotes': 'always',
    'function-url-scheme-allowed-list': null,
    'function-url-scheme-disallowed-list': null,
    'hue-degree-notation': null,
    'import-notation': 'string',
    'keyframe-block-no-duplicate-selectors': true,
    'keyframe-declaration-no-important': true,
    'keyframe-selector-notation': null,
    'keyframes-name-pattern': null,
    'length-zero-no-unit': [true, {ignore: ['custom-properties']}, {ignoreFunctions: ['var']}],
    'max-nesting-depth': null,
    'media-feature-name-allowed-list': null,
    'media-feature-name-disallowed-list': null,
    'media-feature-name-no-unknown': true,
    'media-feature-name-no-vendor-prefix': true,
    'media-feature-name-unit-allowed-list': null,
    'media-feature-name-value-allowed-list': null,
    'media-feature-name-value-no-unknown': true,
    'media-feature-range-notation': null,
    'media-query-no-invalid': true,
    'named-grid-areas-no-invalid': true,
    'no-descending-specificity': null,
    'no-duplicate-at-import-rules': true,
    'no-duplicate-selectors': true,
    'no-empty-source': true,
    'no-invalid-double-slash-comments': true,
    'no-invalid-position-at-import-rule': [true, {ignoreAtRules: ['tailwind']}],
    'no-irregular-whitespace': true,
    'no-unknown-animations': null,
    'no-unknown-custom-properties': null,
    'number-max-precision': null,
    'plugin/declaration-block-no-ignored-properties': true,
    'property-allowed-list': null,
    'property-disallowed-list': null,
    'property-no-unknown': true,
    'property-no-vendor-prefix': null,
    'rule-empty-line-before': null,
    'rule-selector-property-disallowed-list': null,
    'scale-unlimited/declaration-strict-value': [['/color$/', 'font-weight'], {ignoreValues: '/^(inherit|transparent|unset|initial|currentcolor|none)$/', ignoreFunctions: false, disableFix: true, expandShorthand: true}],
    'selector-anb-no-unmatchable': true,
    'selector-attribute-name-disallowed-list': null,
    'selector-attribute-operator-allowed-list': null,
    'selector-attribute-operator-disallowed-list': null,
    'selector-attribute-quotes': 'always',
    'selector-class-pattern': null,
    'selector-combinator-allowed-list': null,
    'selector-combinator-disallowed-list': null,
    'selector-disallowed-list': null,
    'selector-id-pattern': null,
    'selector-max-attribute': null,
    'selector-max-class': null,
    'selector-max-combinators': null,
    'selector-max-compound-selectors': null,
    'selector-max-id': null,
    'selector-max-pseudo-class': null,
    'selector-max-specificity': null,
    'selector-max-type': null,
    'selector-max-universal': null,
    'selector-nested-pattern': null,
    'selector-no-qualifying-type': null,
    'selector-no-vendor-prefix': true,
    'selector-not-notation': null,
    'selector-pseudo-class-allowed-list': null,
    'selector-pseudo-class-disallowed-list': null,
    'selector-pseudo-class-no-unknown': true,
    'selector-pseudo-element-allowed-list': null,
    'selector-pseudo-element-colon-notation': 'double',
    'selector-pseudo-element-disallowed-list': null,
    'selector-pseudo-element-no-unknown': true,
    'selector-type-case': 'lower',
    'selector-type-no-unknown': [true, {ignore: ['custom-elements']}],
    'shorthand-property-no-redundant-values': true,
    'string-no-newline': true,
    'time-min-milliseconds': null,
    'unit-allowed-list': null,
    'unit-disallowed-list': null,
    'unit-no-unknown': true,
    'value-keyword-case': null,
    'value-no-vendor-prefix': [true, {ignoreValues: ['box', 'inline-box']}],
  },
};