@marwes-ui/presets 1.1.0 → 1.3.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.
Files changed (34) hide show
  1. package/README.md +4 -2
  2. package/dist/chunk-62D3F6GN.js +49 -0
  3. package/dist/chunk-62D3F6GN.js.map +1 -0
  4. package/dist/firstEdition/index.js +1 -1
  5. package/dist/index.js +1 -1
  6. package/package.json +2 -2
  7. package/src/firstEdition/accordion.css +4 -4
  8. package/src/firstEdition/avatar.css +19 -15
  9. package/src/firstEdition/badge.css +27 -59
  10. package/src/firstEdition/button.css +5 -5
  11. package/src/firstEdition/card.css +5 -5
  12. package/src/firstEdition/date-picker.css +228 -0
  13. package/src/firstEdition/dialog.css +1 -1
  14. package/src/firstEdition/index.ts +29 -1
  15. package/src/firstEdition/molecules/accordion-field.css +4 -5
  16. package/src/firstEdition/molecules/checkbox-field.css +1 -1
  17. package/src/firstEdition/molecules/checkbox-group-field.css +2 -2
  18. package/src/firstEdition/molecules/input-field.css +17 -20
  19. package/src/firstEdition/molecules/radio-group-field.css +2 -2
  20. package/src/firstEdition/molecules/slider-field.css +4 -4
  21. package/src/firstEdition/molecules/switch-field.css +2 -2
  22. package/src/firstEdition/radio.css +2 -2
  23. package/src/firstEdition/rich-text.css +1 -1
  24. package/src/firstEdition/select.css +41 -2
  25. package/src/firstEdition/skeleton.css +95 -0
  26. package/src/firstEdition/slider.css +1 -1
  27. package/src/firstEdition/spinner.css +149 -2
  28. package/src/firstEdition/stat-tile.css +170 -0
  29. package/src/firstEdition/styles.css +3 -0
  30. package/src/firstEdition/switch.css +2 -2
  31. package/src/firstEdition/tab.css +9 -9
  32. package/src/firstEdition/toast.css +137 -82
  33. package/dist/chunk-2JNIKK66.js +0 -21
  34. package/dist/chunk-2JNIKK66.js.map +0 -1
@@ -24,23 +24,22 @@
24
24
  }
25
25
 
26
26
  .mw-accordion-field__description {
27
- opacity: 0.6;
28
27
  font-size: 0.875em;
29
- color: var(--mw-color-text-muted, #6b7280);
28
+ color: var(--mw-color-text-muted, #595959);
30
29
  }
31
30
 
32
31
  .mw-accordion-field__error {
33
32
  font-size: 0.875em;
34
- color: var(--mw-color-danger-base, #dc2626);
33
+ color: var(--mw-color-danger-base, #d90429);
35
34
  }
36
35
 
37
36
  /* State modifiers */
38
37
  .mw-accordion-field--disabled {
39
- opacity: 0.7;
38
+ color: var(--mw-color-text-disabled, #595959);
40
39
  cursor: not-allowed;
41
40
  }
42
41
 
43
42
  .mw-accordion-field--invalid .mw-accordion-field__label .mw-p,
44
43
  .mw-accordion-field--invalid .mw-accordion-field__error .mw-p {
45
- color: var(--mw-color-danger-base, #dc2626);
44
+ color: var(--mw-color-danger-base, #d90429);
46
45
  }
@@ -43,7 +43,7 @@
43
43
  var(--mw-density-gap) /* checkbox size + margin + spacing to textfield */
44
44
  );
45
45
  font-size: var(--mw-density-font-size-sm);
46
- color: var(--mw-color-danger-base, #dc2626);
46
+ color: var(--mw-color-danger-base, #d90429);
47
47
  }
48
48
 
49
49
  /* Optional state hooks */
@@ -42,7 +42,7 @@
42
42
 
43
43
  .mw-checkbox-group-field__error {
44
44
  font-size: var(--mw-density-font-size-sm);
45
- color: var(--mw-color-danger-base, #dc2626);
45
+ color: var(--mw-color-danger-base, #d90429);
46
46
  }
47
47
 
48
48
  .mw-checkbox-group-field--disabled .mw-checkbox-group-field__option {
@@ -52,7 +52,7 @@
52
52
 
53
53
  .mw-checkbox-group-field--invalid .mw-checkbox-group-field__label .mw-p,
54
54
  .mw-checkbox-group-field--invalid .mw-checkbox-group-field__error .mw-p {
55
- color: var(--mw-color-danger-base, #dc2626);
55
+ color: var(--mw-color-danger-base, #d90429);
56
56
  }
57
57
 
58
58
  @supports selector(:has(*)) {
@@ -16,7 +16,6 @@
16
16
  border: none;
17
17
  cursor: pointer;
18
18
  user-select: none;
19
- opacity: 0.6;
20
19
  transition: opacity 0.2s ease;
21
20
  text-align: left;
22
21
  font: inherit;
@@ -55,22 +54,22 @@
55
54
  background: transparent;
56
55
  border: none;
57
56
  cursor: pointer;
58
- color: var(--mw-color-text-muted, #6b7280);
57
+ color: var(--mw-color-text-muted, #595959);
59
58
  transition: color 0.2s ease;
60
59
  border-radius: var(--mw-ui-radius, 4px);
61
60
 
62
61
  &:hover {
63
- color: var(--mw-color-text, #111827);
64
- background: var(--mw-color-surface, #f3f4f6);
62
+ color: var(--mw-color-text, #141414);
63
+ background: var(--mw-color-surface, #f5f5f5);
65
64
  }
66
65
 
67
66
  &:focus {
68
- outline: 2px solid var(--mw-color-primary-base, #3b82f6);
67
+ outline: 2px solid var(--mw-color-primary-base, #2f31fc);
69
68
  outline-offset: 2px;
70
69
  }
71
70
 
72
71
  &:active {
73
- background: var(--mw-color-border-subtle, #e5e7eb);
72
+ background: var(--mw-color-border-subtle, #d8d8d8);
74
73
  }
75
74
  }
76
75
 
@@ -81,7 +80,7 @@
81
80
  align-items: center;
82
81
  justify-content: center;
83
82
  padding: 6px; /* off-scale — no token */
84
- color: var(--mw-color-text-muted, #6b7280);
83
+ color: var(--mw-color-text-muted, #595959);
85
84
  pointer-events: none;
86
85
  }
87
86
 
@@ -95,22 +94,22 @@
95
94
  background: transparent;
96
95
  border: none;
97
96
  cursor: pointer;
98
- color: var(--mw-color-text-muted, #6b7280);
97
+ color: var(--mw-color-text-muted, #595959);
99
98
  transition: color 0.2s ease;
100
99
  border-radius: var(--mw-ui-radius, 4px);
101
100
 
102
101
  &:hover {
103
- color: var(--mw-color-text, #111827);
104
- background: var(--mw-color-surface, #f3f4f6);
102
+ color: var(--mw-color-text, #141414);
103
+ background: var(--mw-color-surface, #f5f5f5);
105
104
  }
106
105
 
107
106
  &:focus {
108
- outline: 2px solid var(--mw-color-primary-base, #3b82f6);
107
+ outline: 2px solid var(--mw-color-primary-base, #2f31fc);
109
108
  outline-offset: 2px;
110
109
  }
111
110
 
112
111
  &:active {
113
- background: var(--mw-color-border-subtle, #e5e7eb);
112
+ background: var(--mw-color-border-subtle, #d8d8d8);
114
113
  }
115
114
  }
116
115
 
@@ -120,7 +119,7 @@
120
119
  justify-content: center;
121
120
  padding-left: var(--mw-spacing-sp-16);
122
121
  white-space: nowrap;
123
- color: var(--mw-color-text-muted, #6b7280);
122
+ color: var(--mw-color-text-muted, #595959);
124
123
  pointer-events: none;
125
124
  font-weight: 400;
126
125
  font-family: var(--mw-font-primary, inherit);
@@ -193,7 +192,6 @@
193
192
 
194
193
  /* Disabled — wrapper when symbol is present */
195
194
  .mw-input-field__input-wrapper:has(.mw-input-field__leading-symbol):has(:disabled) {
196
- opacity: 0.2;
197
195
  cursor: not-allowed;
198
196
  pointer-events: none;
199
197
  border-color: var(--mw-color-border-disabled);
@@ -227,26 +225,25 @@
227
225
  }
228
226
 
229
227
  .mw-input-field__helper {
230
- opacity: 0.6;
231
228
  font-size: 0.875em;
232
- color: var(--mw-color-text-muted, #6b7280);
229
+ color: var(--mw-color-text-muted, #595959);
233
230
  }
234
231
 
235
232
  .mw-input-field__error {
236
233
  font-size: 0.875em;
237
- color: var(--mw-color-danger-base, #dc2626);
234
+ color: var(--mw-color-danger-base, #d90429);
238
235
  }
239
236
 
240
237
  /* State modifiers */
241
238
  .mw-input-field--disabled .mw-input-field__label {
242
239
  cursor: not-allowed;
243
- opacity: 0.6;
240
+ color: var(--mw-color-text-disabled, #595959);
244
241
  }
245
242
 
246
243
  /* Disabled state overwrite hover/focus states */
247
244
  .mw-input-field--disabled:hover .mw-input-field__label,
248
245
  .mw-input-field--disabled:focus-within .mw-input-field__label {
249
- opacity: 0.6;
246
+ color: var(--mw-color-text-disabled, #595959);
250
247
  }
251
248
 
252
249
  .mw-input-field--readonly .mw-input-field__label {
@@ -256,5 +253,5 @@
256
253
  .mw-input-field--invalid .mw-input-field__label .mw-p,
257
254
  .mw-input-field--invalid .mw-input-field__error .mw-p {
258
255
  /* Label styling when field has error - could add red accent if needed */
259
- color: var(--mw-color-danger-base, #dc2626);
256
+ color: var(--mw-color-danger-base, #d90429);
260
257
  }
@@ -44,7 +44,7 @@
44
44
 
45
45
  .mw-radio-group-field__error {
46
46
  font-size: var(--mw-density-font-size-sm);
47
- color: var(--mw-color-danger-base, #dc2626);
47
+ color: var(--mw-color-danger-base, #d90429);
48
48
  }
49
49
 
50
50
  /* State modifiers */
@@ -55,5 +55,5 @@
55
55
 
56
56
  .mw-radio-group-field--invalid .mw-radio-group-field__label .mw-p,
57
57
  .mw-radio-group-field--invalid .mw-radio-group-field__error .mw-p {
58
- color: var(--mw-color-danger-base, #dc2626);
58
+ color: var(--mw-color-danger-base, #d90429);
59
59
  }
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .mw-slider-field__description {
41
- opacity: 0.75;
41
+ color: var(--mw-color-text-muted, #595959);
42
42
  font-size: var(--mw-density-font-size-sm);
43
43
  }
44
44
 
@@ -65,11 +65,11 @@
65
65
 
66
66
  .mw-slider-field__error {
67
67
  font-size: var(--mw-density-font-size-sm);
68
- color: var(--mw-color-danger-base, #dc2626);
68
+ color: var(--mw-color-danger-base, #d90429);
69
69
  }
70
70
 
71
71
  .mw-slider-field--disabled {
72
- opacity: 0.7;
72
+ color: var(--mw-color-text-disabled, #595959);
73
73
  }
74
74
 
75
75
  .mw-slider-field--disabled .mw-slider-field__label,
@@ -79,5 +79,5 @@
79
79
 
80
80
  .mw-slider-field--invalid .mw-slider-field__label .mw-p,
81
81
  .mw-slider-field--invalid .mw-slider-field__error .mw-p {
82
- color: var(--mw-color-danger-base, #dc2626);
82
+ color: var(--mw-color-danger-base, #d90429);
83
83
  }
@@ -23,7 +23,7 @@
23
23
  .mw-switch-field__error {
24
24
  margin-left: calc(var(--mw-spacing-sp-24) + var(--mw-density-gap));
25
25
  font-size: var(--mw-density-font-size-sm);
26
- color: var(--mw-color-danger-base, #dc2626);
26
+ color: var(--mw-color-danger-base, #d90429);
27
27
  }
28
28
 
29
29
  .mw-switch-field--disabled .mw-switch-field__label {
@@ -33,5 +33,5 @@
33
33
 
34
34
  .mw-switch-field--invalid .mw-switch-field__label .mw-p,
35
35
  .mw-switch-field--invalid .mw-switch-field__error .mw-p {
36
- color: var(--mw-color-danger-base, #dc2626);
36
+ color: var(--mw-color-danger-base, #d90429);
37
37
  }
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Tokens (from Figma nodes.json):
6
6
  * radio/surface (light): #f9fafb (dark): #141414
7
- * radio/border (light): #e5e7eb (dark): #374151
8
- * radio/dot (light): #2f31fc (dark): #2f31fc (= primary-base)
7
+ * radio/border (light): #d8d8d8 (dark): #474747
8
+ * radio/dot (light): #2f31fc (dark): #5859fc (= primary-base)
9
9
  * radio/label (light): #141414 (dark): #f9fafb (= text)
10
10
  * Dimensions: 18×18px circle, 10px inner dot (from Figma)
11
11
  */
@@ -72,7 +72,7 @@
72
72
  }
73
73
 
74
74
  .mw-rich-text__toolbar-button:hover:not(:disabled) {
75
- background: var(--mw-color-surface-elevated, #f3f4f6);
75
+ background: var(--mw-color-surface-elevated, #f5f5f5);
76
76
  color: var(--mw-color-text);
77
77
  }
78
78
 
@@ -100,8 +100,8 @@
100
100
  --mw-dropdown-list-surface: var(--mw-color-surface-elevated);
101
101
  --mw-dropdown-list-border: var(--mw-color-border);
102
102
  --mw-dropdown-item-surface: var(--mw-color-surface-elevated);
103
- --mw-dropdown-item-surface-hover: var(--mw-color-surface-subtle, #f3f4f6);
104
- --mw-dropdown-item-surface-pressed: var(--mw-color-border-subtle, #e5e7eb);
103
+ --mw-dropdown-item-surface-hover: var(--mw-color-surface-subtle, #f5f5f5);
104
+ --mw-dropdown-item-surface-pressed: var(--mw-color-border-subtle, #d8d8d8);
105
105
  --mw-dropdown-item-label: var(--mw-color-text);
106
106
  --mw-dropdown-item-check: var(--mw-color-primary-base);
107
107
  position: relative;
@@ -335,3 +335,42 @@
335
335
  .mw-theme--dark .mw-select-field__list {
336
336
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.4);
337
337
  }
338
+
339
+ .mw-input-field--select-date {
340
+ gap: 4px; /* Figma date field frame spacing */
341
+ }
342
+
343
+ .mw-input-field--select-date .mw-input-field__label {
344
+ opacity: 1;
345
+ }
346
+
347
+ .mw-input-field--select-date .mw-input-field__label p {
348
+ font-size: 14px;
349
+ font-weight: 500;
350
+ line-height: 16px;
351
+ }
352
+
353
+ .mw-input-field--select-date .mw-input-field__helper p,
354
+ .mw-input-field--select-date .mw-input-field__error p {
355
+ font-size: 12px;
356
+ font-weight: 500;
357
+ line-height: 16px;
358
+ }
359
+
360
+ .mw-input-field--select-date .mw-select-field__trigger {
361
+ min-height: 40px;
362
+ padding: 12px 16px;
363
+ border-color: var(--mw-color-border-subtle, #d8d8d8);
364
+ border-radius: var(--mw-ui-radius, 4px);
365
+ color: var(--mw-color-text-muted, #595959);
366
+ font-size: 14px;
367
+ font-weight: 500;
368
+ letter-spacing: -0.42px;
369
+ line-height: 16px;
370
+ }
371
+
372
+ .mw-input-field--select-date .mw-select-field__trigger-icon {
373
+ inline-size: 16px;
374
+ block-size: 16px;
375
+ color: var(--mw-color-icon-muted, #a3a3a3);
376
+ }
@@ -0,0 +1,95 @@
1
+ /*
2
+ * Skeleton styles
3
+ * Figma reference:
4
+ * - page frame: .figma/marwes/pages/skeleton/skeleton_1921-34816.json
5
+ * - text: 120×12, radius 4, black 4% opacity
6
+ * - dark mode: lifted neutral fill against dark surfaces
7
+ * - circular: 40×40, radius 100
8
+ * - rectangular: 120×120, radius 4
9
+ */
10
+
11
+ .mw-skeleton {
12
+ --mw-skeleton-base-color: color-mix(in srgb, var(--mw-color-text, #141414) 4%, transparent);
13
+ --mw-skeleton-highlight-color: color-mix(
14
+ in srgb,
15
+ var(--mw-color-text-inverted, #ffffff) 24%,
16
+ var(--mw-skeleton-base-color)
17
+ );
18
+
19
+ display: inline-block;
20
+ inline-size: var(--mw-skeleton-width, 120px);
21
+ block-size: var(--mw-skeleton-height, 12px);
22
+ min-inline-size: 1px;
23
+ min-block-size: 1px;
24
+ border-radius: var(--mw-skeleton-radius, 4px);
25
+ background: var(--mw-skeleton-base-color);
26
+ overflow: hidden;
27
+ vertical-align: middle;
28
+ flex: none;
29
+ }
30
+
31
+ .mw-theme--dark .mw-skeleton {
32
+ --mw-skeleton-base-color: color-mix(
33
+ in srgb,
34
+ var(--mw-color-text, #f9fafb) 12%,
35
+ var(--mw-color-surface-elevated, #2b2b2b)
36
+ );
37
+ --mw-skeleton-highlight-color: color-mix(
38
+ in srgb,
39
+ var(--mw-color-text, #f9fafb) 24%,
40
+ var(--mw-skeleton-base-color)
41
+ );
42
+ }
43
+
44
+ .mw-skeleton--text {
45
+ transform-origin: 0 55%;
46
+ }
47
+
48
+ .mw-skeleton--circular {
49
+ border-radius: 9999px;
50
+ }
51
+
52
+ .mw-skeleton--pulse {
53
+ animation: mw-skeleton-pulse 1400ms ease-in-out 500ms infinite;
54
+ }
55
+
56
+ .mw-skeleton--wave {
57
+ position: relative;
58
+ }
59
+
60
+ .mw-skeleton--wave::after {
61
+ position: absolute;
62
+ inset: 0;
63
+ transform: translateX(-100%);
64
+ background: linear-gradient(90deg, transparent, var(--mw-skeleton-highlight-color), transparent);
65
+ animation: mw-skeleton-wave 1600ms linear 500ms infinite;
66
+ content: "";
67
+ }
68
+
69
+ @keyframes mw-skeleton-pulse {
70
+ 0% {
71
+ opacity: 1;
72
+ }
73
+ 50% {
74
+ opacity: 0.48;
75
+ }
76
+ 100% {
77
+ opacity: 1;
78
+ }
79
+ }
80
+
81
+ @keyframes mw-skeleton-wave {
82
+ 100% {
83
+ transform: translateX(100%);
84
+ }
85
+ }
86
+
87
+ @media (prefers-reduced-motion: reduce) {
88
+ .mw-skeleton--pulse {
89
+ animation-duration: 2400ms;
90
+ }
91
+
92
+ .mw-skeleton--wave::after {
93
+ animation-duration: 2600ms;
94
+ }
95
+ }
@@ -153,7 +153,7 @@
153
153
  }
154
154
 
155
155
  .mw-slider--disabled {
156
- --mw-slider-track-background: var(--mw-color-border-disabled, #d1d5db);
156
+ --mw-slider-track-background: var(--mw-color-border-disabled, #a3a3a3);
157
157
  --mw-slider-track-fill: var(--mw-color-primary-disabled, rgba(47, 49, 252, 0.5));
158
158
  --mw-slider-thumb-border: var(--mw-color-primary-disabled, rgba(47, 49, 252, 0.5));
159
159
 
@@ -34,10 +34,17 @@
34
34
  transform-origin: center;
35
35
  }
36
36
 
37
- .mw-spinner--cross .mw-spinner__svg {
37
+ /* ── Segment-shift variants (no SVG rotation, individual opacity cycling) ── */
38
+
39
+ .mw-spinner--cross .mw-spinner__svg,
40
+ .mw-spinner--dots-round .mw-spinner__svg,
41
+ .mw-spinner--dots-square .mw-spinner__svg,
42
+ .mw-spinner--lines .mw-spinner__svg {
38
43
  animation: none;
39
44
  }
40
45
 
46
+ /* Cross — 4 segments */
47
+
41
48
  .mw-spinner--cross .mw-spinner__svg rect {
42
49
  animation: mw-spinner-cross-shift var(--mw-spinner-rotation-duration) steps(4, end) infinite;
43
50
  }
@@ -54,6 +61,108 @@
54
61
  animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.25);
55
62
  }
56
63
 
64
+ /* Dots-round — 8 circle segments */
65
+
66
+ .mw-spinner--dots-round .mw-spinner__svg circle {
67
+ animation: mw-spinner-segment-shift-8 var(--mw-spinner-rotation-duration) steps(8, end) infinite;
68
+ }
69
+
70
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(2) {
71
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.875);
72
+ }
73
+
74
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(3) {
75
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.75);
76
+ }
77
+
78
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(4) {
79
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.625);
80
+ }
81
+
82
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(5) {
83
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.5);
84
+ }
85
+
86
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(6) {
87
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.375);
88
+ }
89
+
90
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(7) {
91
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.25);
92
+ }
93
+
94
+ .mw-spinner--dots-round .mw-spinner__svg circle:nth-child(8) {
95
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.125);
96
+ }
97
+
98
+ /* Dots-square — 8 rect segments */
99
+
100
+ .mw-spinner--dots-square .mw-spinner__svg rect {
101
+ animation: mw-spinner-segment-shift-8 var(--mw-spinner-rotation-duration) steps(8, end) infinite;
102
+ }
103
+
104
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(2) {
105
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.875);
106
+ }
107
+
108
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(3) {
109
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.75);
110
+ }
111
+
112
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(4) {
113
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.625);
114
+ }
115
+
116
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(5) {
117
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.5);
118
+ }
119
+
120
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(6) {
121
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.375);
122
+ }
123
+
124
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(7) {
125
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.25);
126
+ }
127
+
128
+ .mw-spinner--dots-square .mw-spinner__svg rect:nth-child(8) {
129
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.125);
130
+ }
131
+
132
+ /* Lines — 8 rect segments */
133
+
134
+ .mw-spinner--lines .mw-spinner__svg rect {
135
+ animation: mw-spinner-segment-shift-8 var(--mw-spinner-rotation-duration) steps(8, end) infinite;
136
+ }
137
+
138
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(2) {
139
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.875);
140
+ }
141
+
142
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(3) {
143
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.75);
144
+ }
145
+
146
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(4) {
147
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.625);
148
+ }
149
+
150
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(5) {
151
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.5);
152
+ }
153
+
154
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(6) {
155
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.375);
156
+ }
157
+
158
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(7) {
159
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.25);
160
+ }
161
+
162
+ .mw-spinner--lines .mw-spinner__svg rect:nth-child(8) {
163
+ animation-delay: calc(var(--mw-spinner-rotation-duration) * -0.125);
164
+ }
165
+
57
166
  @keyframes mw-spinner-rotate {
58
167
  from {
59
168
  transform: rotate(0deg);
@@ -83,12 +192,50 @@
83
192
  }
84
193
  }
85
194
 
195
+ @keyframes mw-spinner-segment-shift-8 {
196
+ 0%,
197
+ 100% {
198
+ opacity: 1;
199
+ }
200
+
201
+ 12.5% {
202
+ opacity: 0.875;
203
+ }
204
+
205
+ 25% {
206
+ opacity: 0.75;
207
+ }
208
+
209
+ 37.5% {
210
+ opacity: 0.625;
211
+ }
212
+
213
+ 50% {
214
+ opacity: 0.5;
215
+ }
216
+
217
+ 62.5% {
218
+ opacity: 0.375;
219
+ }
220
+
221
+ 75% {
222
+ opacity: 0.25;
223
+ }
224
+
225
+ 87.5% {
226
+ opacity: 0.125;
227
+ }
228
+ }
229
+
86
230
  @media (prefers-reduced-motion: reduce) {
87
231
  .mw-spinner__svg {
88
232
  animation-duration: 1600ms;
89
233
  }
90
234
 
91
- .mw-spinner--cross .mw-spinner__svg rect {
235
+ .mw-spinner--cross .mw-spinner__svg rect,
236
+ .mw-spinner--dots-round .mw-spinner__svg circle,
237
+ .mw-spinner--dots-square .mw-spinner__svg rect,
238
+ .mw-spinner--lines .mw-spinner__svg rect {
92
239
  animation-duration: 1600ms;
93
240
  }
94
241
  }