@plumeria/eslint-plugin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,557 @@
1
+ // reference: [https://github.com/stormwarning/stylelint-config-recess-order/blob/main/groups.js]
2
+ /**
3
+ * @typedef {Object} Group
4
+ * @property {Array<string>} properties
5
+ */
6
+
7
+ /** @type {Group[]} */
8
+ const propertyGroups = [
9
+ {
10
+ properties: ['composes'],
11
+ },
12
+ // Cascade and inheritance.
13
+ {
14
+ properties: ['all'],
15
+ },
16
+ // Positioned layout.
17
+ {
18
+ properties: [
19
+ 'position',
20
+ 'inset',
21
+ 'insetBlock',
22
+ 'insetBlockStart',
23
+ 'insetBlockEnd',
24
+ 'insetInline',
25
+ 'insetInlineStart',
26
+ 'insetInlineEnd',
27
+ 'top',
28
+ 'right',
29
+ 'bottom',
30
+ 'left',
31
+ 'zIndex',
32
+ 'float',
33
+ 'clear',
34
+ ],
35
+ },
36
+ // Display.
37
+ {
38
+ properties: ['boxSizing', 'display', 'visibility'],
39
+ },
40
+ // Flexible box layout.
41
+ {
42
+ properties: [
43
+ 'flex',
44
+ 'flexGrow',
45
+ 'flexShrink',
46
+ 'flexBasis',
47
+ 'flexFlow',
48
+ 'flexDirection',
49
+ 'flexWrap',
50
+ 'WebkitBoxOrient',
51
+ ],
52
+ },
53
+ // Grid layout.
54
+ {
55
+ properties: [
56
+ 'grid',
57
+ 'gridArea',
58
+ 'gridTemplate',
59
+ 'gridTemplateAreas',
60
+ 'gridTemplateRows',
61
+ 'gridTemplateColumns',
62
+ 'gridRow',
63
+ 'gridRowStart',
64
+ 'gridRowEnd',
65
+ 'gridColumn',
66
+ 'gridColumnStart',
67
+ 'gridColumnEnd',
68
+ 'gridAutoRows',
69
+ 'gridAutoColumns',
70
+ 'gridAutoFlow',
71
+ 'gridGap',
72
+ 'gridRowGap',
73
+ 'gridColumnGap',
74
+ ],
75
+ },
76
+ // Box alignment. Relates to both Flexbox and Grid layout.
77
+ {
78
+ properties: [
79
+ 'gap',
80
+ 'rowGap',
81
+ 'columnGap',
82
+ 'placeContent',
83
+ 'placeItems',
84
+ 'placeSelf',
85
+ 'alignContent',
86
+ 'alignItems',
87
+ 'alignSelf',
88
+ 'justifyContent',
89
+ 'justifyItems',
90
+ 'justifySelf',
91
+ ],
92
+ },
93
+ // Order.
94
+ {
95
+ properties: ['order'],
96
+ },
97
+ // Box sizing.
98
+ {
99
+ properties: [
100
+ 'inlineSize',
101
+ 'minInlineSize',
102
+ 'maxInlineSize',
103
+ 'width',
104
+ 'minWidth',
105
+ 'maxWidth',
106
+ 'blockSize',
107
+ 'minBlockSize',
108
+ 'maxBlockSize',
109
+ 'height',
110
+ 'minHeight',
111
+ 'maxHeight',
112
+ 'aspectRatio',
113
+ ],
114
+ },
115
+ // Box model.
116
+ {
117
+ properties: [
118
+ 'padding',
119
+ 'paddingBlock',
120
+ 'paddingBlockStart',
121
+ 'paddingBlockEnd',
122
+ 'paddingInline',
123
+ 'paddingInlineStart',
124
+ 'paddingInlineEnd',
125
+ 'paddingTop',
126
+ 'paddingRight',
127
+ 'paddingBottom',
128
+ 'paddingLeft',
129
+ 'margin',
130
+ 'marginBlock',
131
+ 'marginBlockStart',
132
+ 'marginBlockEnd',
133
+ 'marginInline',
134
+ 'marginInlineStart',
135
+ 'marginInlineEnd',
136
+ 'marginTop',
137
+ 'marginRight',
138
+ 'marginBottom',
139
+ 'marginLeft',
140
+ ],
141
+ },
142
+ // Overflow.
143
+ {
144
+ properties: [
145
+ 'overflow',
146
+ 'overflowInline',
147
+ 'overflowBlock',
148
+ 'overflowX',
149
+ 'overflowY',
150
+ 'scrollbarGutter',
151
+ 'WebkitOverflowScrolling',
152
+ 'msOverflowX',
153
+ 'msOverflowY',
154
+ 'msOverflowStyle',
155
+ 'textOverflow',
156
+ 'WebkitLineClamp',
157
+ 'lineClamp',
158
+ 'scrollBehaviour',
159
+ ],
160
+ },
161
+ // Overscroll behavior.
162
+ {
163
+ properties: [
164
+ 'overscrollBehavior',
165
+ 'overscrollBehaviorInline',
166
+ 'overscrollBehaviorBlock',
167
+ 'overscrollBehaviorX',
168
+ 'overscrollBehaviorY',
169
+ ],
170
+ },
171
+ // Fonts.
172
+ {
173
+ properties: [
174
+ 'font',
175
+ 'fontFamily',
176
+ 'fontSize',
177
+ 'fontSizeAdjust',
178
+ 'fontVariationSettings',
179
+ 'fontStyle',
180
+ 'fontWeight',
181
+ 'fontOpticalSizing',
182
+ 'fontStretch',
183
+ 'fontFeatureSettings',
184
+ 'fontKerning',
185
+ 'fontVariant',
186
+ 'fontVariantLigatures',
187
+ 'fontVariantCaps',
188
+ 'fontVariantAlternates',
189
+ 'fontVariantNumeric',
190
+ 'fontVariantEastAsian',
191
+ 'fontVariantPosition',
192
+ 'WebkitFontSmoothing',
193
+ 'MozOsxFontSmoothing',
194
+ 'fontSmooth',
195
+ ],
196
+ },
197
+ // Inline layout.
198
+ {
199
+ properties: [
200
+ 'lineHeight',
201
+ 'verticalAlign',
202
+ 'alignmentBaseline',
203
+ 'baselineShift',
204
+ 'dominantBaseline',
205
+ ],
206
+ },
207
+ // Colors.
208
+ {
209
+ properties: [
210
+ 'color',
211
+ 'WebkitTextFillColor',
212
+ 'WebkitTextStroke',
213
+ 'WebkitTextStrokeWidth',
214
+ 'WebkitTextStrokeColor',
215
+ ],
216
+ },
217
+ // Text.
218
+ {
219
+ properties: [
220
+ 'textAlign',
221
+ 'textAlignLast',
222
+ 'textJustify',
223
+ 'textIndent',
224
+ 'textTransform',
225
+ 'wordSpacing',
226
+ 'letterSpacing',
227
+ 'hyphens',
228
+ 'wordBreak',
229
+ 'textWrap',
230
+ 'wordWrap',
231
+ 'overflowWrap',
232
+ 'tabSize',
233
+ 'whiteSpace',
234
+ ],
235
+ },
236
+ // Text decoration.
237
+ {
238
+ properties: [
239
+ 'textEmphasis',
240
+ 'textEmphasisColor',
241
+ 'textEmphasisStyle',
242
+ 'textEmphasisPosition',
243
+ 'textDecoration',
244
+ 'textDecorationLine',
245
+ 'textDecorationThickness',
246
+ 'textDecorationStyle',
247
+ 'textDecorationColor',
248
+ 'textUnderlinePosition',
249
+ 'textUnderlineOffset',
250
+ 'textShadow',
251
+ ],
252
+ },
253
+ // Font loading.
254
+ {
255
+ properties: [
256
+ 'src',
257
+ 'fontDisplay',
258
+ 'unicodeRange',
259
+ 'sizeAdjust',
260
+ 'ascentOverride',
261
+ 'descentOverride',
262
+ 'lineGapOverride',
263
+ ],
264
+ },
265
+ // Basic user interface.
266
+ {
267
+ properties: [
268
+ 'appearance',
269
+ 'accentColor',
270
+ 'pointerEvents',
271
+ 'msTouchAction',
272
+ 'touchAction',
273
+ 'cursor',
274
+ 'caretColor',
275
+ 'zoom',
276
+ 'resize',
277
+ 'userSelect',
278
+ 'WebkitUserSelect',
279
+ 'navIndex',
280
+ 'navUp',
281
+ 'navRight',
282
+ 'navDown',
283
+ 'navLeft',
284
+ 'outline',
285
+ 'outlineWidth',
286
+ 'outlineStyle',
287
+ 'outlineColor',
288
+ 'outlineOffset',
289
+ ],
290
+ },
291
+ // Color adjustment.
292
+ {
293
+ properties: ['colorScheme'],
294
+ },
295
+ // Table.
296
+ {
297
+ properties: [
298
+ 'tableLayout',
299
+ 'emptyCells',
300
+ 'captionSide',
301
+ 'borderSpacing',
302
+ 'borderCollapse',
303
+ ],
304
+ },
305
+ // Generated content.
306
+ {
307
+ properties: ['content', 'quotes'],
308
+ },
309
+ // Lists and counters.
310
+ {
311
+ properties: [
312
+ 'listStyle',
313
+ 'listStylePosition',
314
+ 'listStyleType',
315
+ 'listStyleImage',
316
+ 'counterReset',
317
+ 'counterSet',
318
+ 'counterIncrement',
319
+ ],
320
+ },
321
+ // Scroll snap.
322
+ {
323
+ properties: [
324
+ 'scrollSnapType',
325
+ 'scrollSnapAlign',
326
+ 'scrollSnapStop',
327
+ 'scrollPadding',
328
+ 'scrollPaddingBlock',
329
+ 'scrollPaddingBlockStart',
330
+ 'scrollPaddingBlockEnd',
331
+ 'scrollPaddingInline',
332
+ 'scrollPaddingInlineStart',
333
+ 'scrollPaddingInlineEnd',
334
+ 'scrollPaddingTop',
335
+ 'scrollPaddingRight',
336
+ 'scrollPaddingBottom',
337
+ 'scrollPaddingLeft',
338
+ 'scrollMargin',
339
+ 'scrollMarginBlock',
340
+ 'scrollMarginBlockStart',
341
+ 'scrollMarginBlockEnd',
342
+ 'scrollMarginInline',
343
+ 'scrollMarginInlineStart',
344
+ 'scrollMarginInlineEnd',
345
+ 'scrollMarginTop',
346
+ 'scrollMarginRight',
347
+ 'scrollMarginBottom',
348
+ 'scrollMarginLeft',
349
+ ],
350
+ },
351
+ // Scrollbars styling.
352
+ {
353
+ properties: ['scrollbarColor', 'scrollbarWidth'],
354
+ },
355
+
356
+ // Images.
357
+ {
358
+ properties: [
359
+ 'objectFit',
360
+ 'objectPosition',
361
+ 'msInterpolationMode',
362
+ 'imageOrientation',
363
+ 'imageRendering',
364
+ 'imageResolution',
365
+ ],
366
+ },
367
+ // Backgrounds and borders.
368
+ {
369
+ properties: [
370
+ 'background',
371
+ 'backgroundColor',
372
+ 'backgroundImage',
373
+ 'backgroundRepeat',
374
+ 'backgroundAttachment',
375
+ 'backgroundPosition',
376
+ 'backgroundPositionX',
377
+ 'backgroundPositionY',
378
+ 'backgroundClip',
379
+ 'backgroundOrigin',
380
+ 'backgroundSize',
381
+ 'border',
382
+ 'borderColor',
383
+ 'borderStyle',
384
+ 'borderWidth',
385
+ 'borderBlock',
386
+ 'borderBlockStart',
387
+ 'borderBlockStartColor',
388
+ 'borderBlockStartStyle',
389
+ 'borderBlockStartWidth',
390
+ 'borderBlockEnd',
391
+ 'borderBlockEndColor',
392
+ 'borderBlockEndStyle',
393
+ 'borderBlockEndWidth',
394
+ 'borderInline',
395
+ 'borderInlineStart',
396
+ 'borderInlineStartColor',
397
+ 'borderInlineStartStyle',
398
+ 'borderInlineStartWidth',
399
+ 'borderInlineEnd',
400
+ 'borderInlineEndColor',
401
+ 'borderInlineEndStyle',
402
+ 'borderInlineEndWidth',
403
+ 'borderTop',
404
+ 'borderTopColor',
405
+ 'borderTopStyle',
406
+ 'borderTopWidth',
407
+ 'borderRight',
408
+ 'borderRightColor',
409
+ 'borderRightStyle',
410
+ 'borderRightWidth',
411
+ 'borderBottom',
412
+ 'borderBottomColor',
413
+ 'borderBottomStyle',
414
+ 'borderBottomWidth',
415
+ 'borderLeft',
416
+ 'borderLeftColor',
417
+ 'borderLeftStyle',
418
+ 'borderLeftWidth',
419
+ 'borderRadius',
420
+ 'borderStartStartRadius',
421
+ 'borderStartEndRadius',
422
+ 'borderEndStartRadius',
423
+ 'borderEndEndRadius',
424
+ 'borderTopLeftRadius',
425
+ 'borderTopRightRadius',
426
+ 'borderBottomRightRadius',
427
+ 'borderBottomLeftRadius',
428
+ 'borderImage',
429
+ 'borderImageSource',
430
+ 'borderImageSlice',
431
+ 'borderImageWidth',
432
+ 'borderImageOutset',
433
+ 'borderImageRepeat',
434
+ 'boxShadow',
435
+ ],
436
+ },
437
+
438
+ // Compositing and blending.
439
+ {
440
+ properties: ['backgroundBlendMode', 'isolation', 'mixBlendMode'],
441
+ },
442
+
443
+ // Filter effects.
444
+ {
445
+ properties: ['filter', 'backdropFilter'],
446
+ },
447
+
448
+ // Masking.
449
+ {
450
+ properties: [
451
+ 'clip',
452
+ 'clipPath',
453
+ 'maskBorder',
454
+ 'maskBorderSource',
455
+ 'maskBorderSlice',
456
+ 'maskBorderWidth',
457
+ 'maskBorderOutset',
458
+ 'maskBorderRepeat',
459
+ 'maskBorderMode',
460
+ 'mask',
461
+ 'maskImage',
462
+ 'maskMode',
463
+ 'maskRepeat',
464
+ 'maskPosition',
465
+ 'maskClip',
466
+ 'maskOrigin',
467
+ 'maskSize',
468
+ 'maskComposite',
469
+ ],
470
+ },
471
+ // Writing modes.
472
+ {
473
+ properties: ['writingMode'],
474
+ },
475
+
476
+ // SVG presentation attributes.
477
+ {
478
+ properties: [
479
+ 'textAnchor',
480
+ 'fill',
481
+ 'fillRule',
482
+ 'fillOpacity',
483
+ 'stroke',
484
+ 'strokeOpacity',
485
+ 'strokeWidth',
486
+ 'strokeLinecap',
487
+ 'strokeLinejoin',
488
+ 'strokeMiterlimit',
489
+ 'strokeDasharray',
490
+ 'strokeDashoffset',
491
+ 'colorInterpolation',
492
+ 'colorInterpolationFilters',
493
+ 'floodColor',
494
+ 'floodOpacity',
495
+ 'lightingColor',
496
+ 'markerStart',
497
+ 'markerMid',
498
+ 'markerEnd',
499
+ 'stopColor',
500
+ 'stopOpacity',
501
+ 'shapeRendering',
502
+ ],
503
+ },
504
+ // Transforms.
505
+ {
506
+ properties: [
507
+ 'transform',
508
+ 'transformOrigin',
509
+ 'rotate',
510
+ 'scale',
511
+ 'translate',
512
+ 'perspective',
513
+ 'perspectiveOrigin',
514
+ ],
515
+ },
516
+ // Transitions.
517
+ {
518
+ properties: [
519
+ 'transition',
520
+ 'transitionDelay',
521
+ 'transitionTimingFunction',
522
+ 'transitionDuration',
523
+ 'transitionProperty',
524
+ ],
525
+ },
526
+
527
+ // Animations.
528
+ {
529
+ properties: [
530
+ 'animation',
531
+ 'animationName',
532
+ 'animationDuration',
533
+ 'animationTimingFunction',
534
+ 'animationDelay',
535
+ 'animationIterationCount',
536
+ 'animationDirection',
537
+ 'animationPlayState',
538
+ ],
539
+ },
540
+ // Will change.
541
+ {
542
+ properties: ['willChange'],
543
+ },
544
+
545
+ // Fragmentation.
546
+ {
547
+ properties: [
548
+ 'breakBefore',
549
+ 'breakAfter',
550
+ 'breakInside',
551
+ 'widows',
552
+ 'orphans',
553
+ ],
554
+ },
555
+ ]
556
+
557
+ module.exports = propertyGroups
@@ -0,0 +1,42 @@
1
+ const unitData = [
2
+ // AbsoluteCSSUnit
3
+ 'px',
4
+ 'cm',
5
+ 'mm',
6
+ 'Q',
7
+ 'in',
8
+ 'pc',
9
+ 'pt',
10
+ // LocalFontRelativeCSSUnit
11
+ 'cap',
12
+ 'ch',
13
+ 'em',
14
+ 'ex',
15
+ 'ic',
16
+ 'lh',
17
+ // RootFontRelativeCSSUnit
18
+ 'rcap',
19
+ 'rch',
20
+ 'rem',
21
+ 'rex',
22
+ 'ric',
23
+ 'rlh',
24
+ // ViewportCSSUnit
25
+ 'vh',
26
+ 'vw',
27
+ 'vmin',
28
+ 'vmax',
29
+ 'vb',
30
+ 'vi',
31
+ // RespectCSSUnit
32
+ 'svw',
33
+ 'svh',
34
+ 'lvw',
35
+ 'lvh',
36
+ 'dvw',
37
+ 'dvh',
38
+ // PercentageCSSUnit
39
+ // '%',
40
+ ];
41
+
42
+ module.exports = unitData;