maverick-wave 4.27.0 → 5.0.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 (140) hide show
  1. package/.claude/settings.local.json +29 -1
  2. package/.claude/skills/mw-maverick-wave/SKILL.md +42 -25
  3. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +16 -4
  4. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +13 -4
  5. package/.claude/skills/mw-maverick-wave/references/components.md +90 -5
  6. package/.claude/skills/mw-maverick-wave/references/forms.md +14 -2
  7. package/.claude/skills/mw-maverick-wave/references/javascript.md +18 -4
  8. package/.claude/skills/mw-maverick-wave/references/layout.md +53 -19
  9. package/.claude/skills/mw-maverick-wave/references/theming.md +38 -1
  10. package/.impeccable/config.local.json +5 -0
  11. package/.impeccable/hook.cache.json +1 -0
  12. package/CHANGELOG.md +17 -0
  13. package/CLAUDE.md +5 -5
  14. package/README.md +48 -4
  15. package/index.html +19 -38
  16. package/maverick-wave.min.css +14 -12
  17. package/maverick-wave.min.js +1 -1
  18. package/package.json +2 -2
  19. package/scripts/verify.js +27 -2
  20. package/src/js/main.js +266 -75
  21. package/src/partials/accordions-container.html +6 -10
  22. package/src/partials/alerts-container.html +6 -6
  23. package/src/partials/announcement-container.html +5 -5
  24. package/src/partials/avatars-container.html +85 -17
  25. package/src/partials/badges-container.html +6 -6
  26. package/src/partials/blog-posts-container.html +11 -12
  27. package/src/partials/buttons-container.html +3 -3
  28. package/src/partials/cards-container.html +26 -9
  29. package/src/partials/code-container.html +5 -5
  30. package/src/partials/content-slider-container.html +5 -4
  31. package/src/partials/divider-container.html +7 -7
  32. package/src/partials/dropdown-container.html +2 -2
  33. package/src/partials/empty-state-container.html +5 -5
  34. package/src/partials/footer-container.html +21 -18
  35. package/src/partials/form-elements-container.html +14 -14
  36. package/src/partials/gallery-container.html +16 -8
  37. package/src/partials/get-started-container.html +4 -8
  38. package/src/partials/header-container.html +18 -7
  39. package/src/partials/header-utilities-container.html +192 -5
  40. package/src/partials/home-container.html +10 -20
  41. package/src/partials/input-group-container.html +11 -2
  42. package/src/partials/kbd-container.html +1 -1
  43. package/src/partials/login-container.html +5 -1
  44. package/src/partials/media-container.html +2 -2
  45. package/src/partials/modals-container.html +22 -32
  46. package/src/partials/pricing-container.html +9 -9
  47. package/src/partials/skeleton-container.html +6 -6
  48. package/src/partials/stepper-container.html +2 -2
  49. package/src/partials/tables-container.html +12 -12
  50. package/src/partials/tabs-container.html +17 -27
  51. package/src/partials/tags-container.html +23 -17
  52. package/src/partials/techstack-bucket-container.html +13 -0
  53. package/src/partials/tiles-container.html +26 -9
  54. package/src/partials/typography-container.html +7 -6
  55. package/src/partials/utilities-container.html +35 -15
  56. package/src/scss/_layers.scss +10 -0
  57. package/src/scss/abstracts/_index.scss +6 -0
  58. package/src/scss/abstracts/_mixins.scss +61 -153
  59. package/src/scss/abstracts/_variables.scss +123 -319
  60. package/src/scss/base/_base.scss +170 -190
  61. package/src/scss/base/_reset.scss +106 -104
  62. package/src/scss/base/_typography.scss +153 -151
  63. package/src/scss/components/_accordions.scss +97 -97
  64. package/src/scss/components/_alerts.scss +71 -70
  65. package/src/scss/components/_announcement.scss +71 -70
  66. package/src/scss/components/_avatars.scss +130 -142
  67. package/src/scss/components/_badge.scss +131 -132
  68. package/src/scss/components/_blog-post.scss +223 -220
  69. package/src/scss/components/_breadcrumbs.scss +93 -92
  70. package/src/scss/components/_button-bar.scss +102 -110
  71. package/src/scss/components/_buttons.scss +319 -324
  72. package/src/scss/components/_calendar.scss +251 -252
  73. package/src/scss/components/_cards.scss +359 -386
  74. package/src/scss/components/_code.scss +190 -194
  75. package/src/scss/components/_coming-soon.scss +77 -75
  76. package/src/scss/components/_content-slider.scss +90 -89
  77. package/src/scss/components/_divider.scss +55 -53
  78. package/src/scss/components/_dropdown.scss +179 -185
  79. package/src/scss/components/_empty-state.scss +57 -57
  80. package/src/scss/components/_flag.scss +325 -0
  81. package/src/scss/components/_gallery.scss +131 -133
  82. package/src/scss/components/_index.scss +2 -0
  83. package/src/scss/components/_info.scss +151 -167
  84. package/src/scss/components/_kanban.scss +332 -341
  85. package/src/scss/components/_kbd.scss +40 -38
  86. package/src/scss/components/_lang-switch.scss +108 -0
  87. package/src/scss/components/_links.scss +21 -28
  88. package/src/scss/components/_lists.scss +510 -514
  89. package/src/scss/components/_localhost-indicator.scss +26 -24
  90. package/src/scss/components/_media.scss +22 -20
  91. package/src/scss/components/_meta-info.scss +35 -33
  92. package/src/scss/components/_modals.scss +277 -186
  93. package/src/scss/components/_pagination.scss +81 -87
  94. package/src/scss/components/_panels.scss +99 -97
  95. package/src/scss/components/_pricing.scss +183 -241
  96. package/src/scss/components/_progress.scss +112 -89
  97. package/src/scss/components/_prose.scss +35 -33
  98. package/src/scss/components/_ratings.scss +40 -38
  99. package/src/scss/components/_segmented.scss +82 -84
  100. package/src/scss/components/_skeleton.scss +66 -72
  101. package/src/scss/components/_spinners.scss +155 -159
  102. package/src/scss/components/_stepper.scss +116 -116
  103. package/src/scss/components/_tables.scss +155 -148
  104. package/src/scss/components/_tabs.scss +232 -141
  105. package/src/scss/components/_tags.scss +109 -107
  106. package/src/scss/components/_techstack-bucket.scss +123 -122
  107. package/src/scss/components/_testimonial.scss +72 -70
  108. package/src/scss/components/_theme-toggle.scss +53 -51
  109. package/src/scss/components/_tiles.scss +174 -174
  110. package/src/scss/components/_timelines.scss +282 -280
  111. package/src/scss/components/_toasts.scss +66 -72
  112. package/src/scss/form-elements/_checkbox.scss +117 -132
  113. package/src/scss/form-elements/_form.scss +149 -115
  114. package/src/scss/form-elements/_input-group.scss +99 -103
  115. package/src/scss/form-elements/_input.scss +74 -74
  116. package/src/scss/form-elements/_login.scss +48 -48
  117. package/src/scss/form-elements/_prefilled.scss +53 -51
  118. package/src/scss/form-elements/_radio.scss +95 -107
  119. package/src/scss/form-elements/_select.scss +42 -42
  120. package/src/scss/form-elements/_slider.scss +117 -132
  121. package/src/scss/form-elements/_textarea.scss +68 -54
  122. package/src/scss/form-elements/_toggle.scss +127 -140
  123. package/src/scss/layout/_footer.scss +172 -171
  124. package/src/scss/layout/_grid.scss +268 -302
  125. package/src/scss/layout/_header.scss +426 -427
  126. package/src/scss/layout/_home.scss +28 -27
  127. package/src/scss/layout/_main.scss +275 -238
  128. package/src/scss/layout/_page-header.scss +38 -36
  129. package/src/scss/layout/_section.scss +150 -124
  130. package/src/scss/main.scss +1 -1
  131. package/src/scss/utilities/_accessibility.scss +46 -45
  132. package/src/scss/utilities/_aspect.scss +22 -20
  133. package/src/scss/utilities/_corner.scss +23 -5
  134. package/src/scss/utilities/_display.scss +76 -70
  135. package/src/scss/utilities/_elevation.scss +13 -11
  136. package/src/scss/utilities/_flex.scss +83 -85
  137. package/src/scss/utilities/_reveal.scss +40 -63
  138. package/src/scss/utilities/_spacing.scss +63 -64
  139. package/src/scss/utilities/_text.scss +139 -141
  140. package/src/scss/utilities/_touch-targets.scss +130 -147
@@ -0,0 +1,325 @@
1
+ @use '../abstracts' as *;
2
+
3
+ @layer mw.components {
4
+ // Drawn in CSS gradients, not emoji: Windows ships no flag glyphs at all, and an
5
+ // emoji cannot be sized to line up with text. Every flag gets the same 4:3 box
6
+ // whatever its real ratio, or a column of switcher rows stops lining up.
7
+ //
8
+ // For anything not in the set below the class is a slot - put an <img> or an
9
+ // inline <svg> inside and it inherits the box, the corner and the hairline.
10
+
11
+ // Shape values, in px - these draw a picture and have nothing to do with the
12
+ // spacing scale
13
+ $_flag-width: 20px;
14
+ $_flag-height: 15px;
15
+
16
+ .mw-flag {
17
+ display: inline-block;
18
+ width: $_flag-width;
19
+ height: $_flag-height;
20
+ flex-shrink: 0;
21
+ border-radius: radius('xs');
22
+ overflow: hidden;
23
+ // Drawn on top rather than as a border: a border would shrink the painting
24
+ // area and shift every gradient stop inward by a pixel. Two rings, because
25
+ // each theme loses a different edge - the dark one keeps white flags (Japan,
26
+ // Poland) off a light card, the light one keeps the black band of Germany and
27
+ // Belgium off a dark header. Each is invisible where it is not needed.
28
+ box-shadow:
29
+ inset 0 0 0 1px rgb(0 0 0 / 0.2),
30
+ 0 0 0 1px rgb(255 255 255 / 0.14);
31
+ background-repeat: no-repeat;
32
+ background-size: 100% 100%;
33
+ vertical-align: middle;
34
+
35
+ // The slot: a real flag asset fills the same box
36
+ > img,
37
+ > svg {
38
+ display: block;
39
+ width: 100%;
40
+ height: 100%;
41
+ object-fit: cover;
42
+ }
43
+ }
44
+
45
+ // --- Three horizontal bands ------------------------------------------------
46
+ .mw-flag-de {
47
+ background-image: linear-gradient(
48
+ to bottom,
49
+ #000 0 33.34%,
50
+ #dd0000 33.34% 66.67%,
51
+ #ffce00 66.67%
52
+ );
53
+ }
54
+
55
+ .mw-flag-at {
56
+ background-image: linear-gradient(
57
+ to bottom,
58
+ #ed2939 0 33.34%,
59
+ #fff 33.34% 66.67%,
60
+ #ed2939 66.67%
61
+ );
62
+ }
63
+
64
+ .mw-flag-nl {
65
+ background-image: linear-gradient(
66
+ to bottom,
67
+ #ae1c28 0 33.34%,
68
+ #fff 33.34% 66.67%,
69
+ #21468b 66.67%
70
+ );
71
+ }
72
+
73
+ .mw-flag-hu {
74
+ background-image: linear-gradient(
75
+ to bottom,
76
+ #ce2939 0 33.34%,
77
+ #fff 33.34% 66.67%,
78
+ #477050 66.67%
79
+ );
80
+ }
81
+
82
+ .mw-flag-bg {
83
+ background-image: linear-gradient(
84
+ to bottom,
85
+ #fff 0 33.34%,
86
+ #00966e 33.34% 66.67%,
87
+ #d62612 66.67%
88
+ );
89
+ }
90
+
91
+ // Spain's bands are 1:2:1, not equal thirds - the civil flag, without the arms
92
+ .mw-flag-es {
93
+ background-image: linear-gradient(
94
+ to bottom,
95
+ #aa151b 0 25%,
96
+ #f1bf00 25% 75%,
97
+ #aa151b 75%
98
+ );
99
+ }
100
+
101
+ // --- Three vertical bands --------------------------------------------------
102
+ .mw-flag-fr {
103
+ background-image: linear-gradient(
104
+ to right,
105
+ #002654 0 33.34%,
106
+ #fff 33.34% 66.67%,
107
+ #ed2939 66.67%
108
+ );
109
+ }
110
+
111
+ .mw-flag-it {
112
+ background-image: linear-gradient(
113
+ to right,
114
+ #009246 0 33.34%,
115
+ #fff 33.34% 66.67%,
116
+ #ce2b37 66.67%
117
+ );
118
+ }
119
+
120
+ .mw-flag-be {
121
+ background-image: linear-gradient(
122
+ to right,
123
+ #000 0 33.34%,
124
+ #fae042 33.34% 66.67%,
125
+ #ed2939 66.67%
126
+ );
127
+ }
128
+
129
+ .mw-flag-ro {
130
+ background-image: linear-gradient(
131
+ to right,
132
+ #002b7f 0 33.34%,
133
+ #fcd116 33.34% 66.67%,
134
+ #ce1126 66.67%
135
+ );
136
+ }
137
+
138
+ .mw-flag-ie {
139
+ background-image: linear-gradient(
140
+ to right,
141
+ #169b62 0 33.34%,
142
+ #fff 33.34% 66.67%,
143
+ #ff883e 66.67%
144
+ );
145
+ }
146
+
147
+ // --- Two bands -------------------------------------------------------------
148
+ .mw-flag-pl {
149
+ background-image: linear-gradient(to bottom, #fff 0 50%, #dc143c 50%);
150
+ }
151
+
152
+ .mw-flag-ua {
153
+ background-image: linear-gradient(to bottom, #0057b7 0 50%, #ffd700 50%);
154
+ }
155
+
156
+ // --- Nordic cross ----------------------------------------------------------
157
+ // The arm sits left of centre, as it does on the real flags. Two bars laid over
158
+ // a solid field: the horizontal one first so the intersection is one colour.
159
+ @mixin nordic-cross($field, $cross) {
160
+ background-image:
161
+ linear-gradient(
162
+ to bottom,
163
+ transparent 40%,
164
+ $cross 40% 60%,
165
+ transparent 60%
166
+ ),
167
+ linear-gradient(
168
+ to right,
169
+ transparent 26%,
170
+ $cross 26% 46%,
171
+ transparent 46%
172
+ ),
173
+ linear-gradient($field 0 0);
174
+ }
175
+
176
+ .mw-flag-se {
177
+ @include nordic-cross(#005293, #fecb00);
178
+ }
179
+
180
+ .mw-flag-dk {
181
+ @include nordic-cross(#c8102e, #fff);
182
+ }
183
+
184
+ .mw-flag-fi {
185
+ @include nordic-cross(#fff, #003580);
186
+ }
187
+
188
+ // Norway's blue cross sits inside the white one, so it takes a second, thinner
189
+ // pair of bars on top
190
+ .mw-flag-no {
191
+ background-image:
192
+ linear-gradient(
193
+ to bottom,
194
+ transparent 44%,
195
+ #00205b 44% 56%,
196
+ transparent 56%
197
+ ),
198
+ linear-gradient(
199
+ to right,
200
+ transparent 30%,
201
+ #00205b 30% 42%,
202
+ transparent 42%
203
+ ),
204
+ linear-gradient(
205
+ to bottom,
206
+ transparent 40%,
207
+ #fff 40% 60%,
208
+ transparent 60%
209
+ ),
210
+ linear-gradient(to right, transparent 26%, #fff 26% 46%, transparent 46%),
211
+ linear-gradient(#ba0c2f 0 0);
212
+ }
213
+
214
+ // Switzerland is square in reality; in a 4:3 box the arms are widened so the
215
+ // cross still reads as one
216
+ .mw-flag-ch {
217
+ background-image:
218
+ linear-gradient(
219
+ to bottom,
220
+ transparent 36%,
221
+ #fff 36% 64%,
222
+ transparent 64%
223
+ ),
224
+ linear-gradient(to right, transparent 39%, #fff 39% 61%, transparent 61%),
225
+ linear-gradient(#d52b1e 0 0);
226
+ }
227
+
228
+ // --- Everything else -------------------------------------------------------
229
+ // The Union Jack, from the back forward: white diagonals, red diagonals over
230
+ // them, then the white and red arms of St George's cross on top. The
231
+ // counterchange of the red diagonals is dropped - at 20px nobody sees it, and
232
+ // it would cost four more layers.
233
+ .mw-flag-gb {
234
+ background-image:
235
+ linear-gradient(
236
+ to right,
237
+ transparent 42%,
238
+ #c8102e 42% 58%,
239
+ transparent 58%
240
+ ),
241
+ linear-gradient(
242
+ to bottom,
243
+ transparent 38%,
244
+ #c8102e 38% 62%,
245
+ transparent 62%
246
+ ),
247
+ linear-gradient(to right, transparent 36%, #fff 36% 64%, transparent 64%),
248
+ linear-gradient(
249
+ to bottom,
250
+ transparent 30%,
251
+ #fff 30% 70%,
252
+ transparent 70%
253
+ ),
254
+ linear-gradient(
255
+ to bottom right,
256
+ transparent 45%,
257
+ #c8102e 45% 55%,
258
+ transparent 55%
259
+ ),
260
+ linear-gradient(
261
+ to bottom left,
262
+ transparent 45%,
263
+ #c8102e 45% 55%,
264
+ transparent 55%
265
+ ),
266
+ linear-gradient(
267
+ to bottom right,
268
+ transparent 38%,
269
+ #fff 38% 62%,
270
+ transparent 62%
271
+ ),
272
+ linear-gradient(
273
+ to bottom left,
274
+ transparent 38%,
275
+ #fff 38% 62%,
276
+ transparent 62%
277
+ ),
278
+ linear-gradient(#012169 0 0);
279
+ }
280
+
281
+ // 13 stripes and the canton. The stars are left out - at 15px tall they would
282
+ // be a grey smear, and the blue block already says which flag this is.
283
+ .mw-flag-us {
284
+ background-image:
285
+ linear-gradient(#3c3b6e 0 0),
286
+ repeating-linear-gradient(
287
+ to bottom,
288
+ #b31942 0 7.693%,
289
+ #fff 7.693% 15.385%
290
+ );
291
+ background-size:
292
+ 40% 53.85%,
293
+ 100% 100%;
294
+ background-position:
295
+ top left,
296
+ top left;
297
+ }
298
+
299
+ .mw-flag-jp {
300
+ background-image:
301
+ radial-gradient(circle at 50% 50%, #bc002d 0 29%, transparent 30%),
302
+ linear-gradient(#fff 0 0);
303
+ }
304
+
305
+ // Two overlapping circles make the crescent; the star is dropped for the same
306
+ // reason as the US stars
307
+ .mw-flag-tr {
308
+ background-image:
309
+ radial-gradient(circle at 47% 50%, #e30a17 0 20%, transparent 21%),
310
+ radial-gradient(circle at 40% 50%, #fff 0 25%, transparent 26%),
311
+ linear-gradient(#e30a17 0 0);
312
+ }
313
+
314
+ // Portugal without the armillary sphere - the ring alone carries it at this size
315
+ .mw-flag-pt {
316
+ background-image:
317
+ radial-gradient(
318
+ circle at 40% 50%,
319
+ transparent 0 12%,
320
+ #ffe900 13% 21%,
321
+ transparent 22%
322
+ ),
323
+ linear-gradient(to right, #046a38 0 40%, #da291c 40%);
324
+ }
325
+ }
@@ -1,163 +1,161 @@
1
1
  @use '../abstracts' as *;
2
2
 
3
- .mw-gallery-container {
4
- max-width: 1100px;
5
- margin: spacing('1') auto;
6
- }
7
-
8
- .mw-gallery {
9
- position: relative;
10
- overflow: hidden;
11
- width: 100%;
12
- border-radius: radius('md');
13
-
14
- &-track {
15
- display: flex;
16
- transition: transform var(--mw-duration-zoom) var(--mw-ease-in-out);
17
-
18
- @media (prefers-reduced-motion: reduce) {
19
- transition: none;
20
- }
3
+ @layer mw.components {
4
+ .mw-gallery-container {
5
+ max-width: 1100px;
6
+ margin: spacing('1') auto;
21
7
  }
22
8
 
23
- &-slide {
9
+ .mw-gallery {
10
+ position: relative;
11
+ overflow: hidden;
24
12
  width: 100%;
25
- flex-shrink: 0;
26
- aspect-ratio: 16 / 9;
27
-
28
- img {
29
- width: 100%;
30
- height: 100%;
31
- object-fit: cover;
32
- display: block;
33
- }
34
- }
35
-
36
- &-navi {
37
- position: absolute;
38
- top: 50%;
39
- transform: translateY(-50%);
40
- width: 52px;
41
- height: 108px;
42
- display: flex;
43
- align-items: center;
44
- justify-content: center;
45
- padding: spacing('0');
46
- border: none;
47
13
  border-radius: radius('md');
48
- background: rgb(0 0 0 / 40%);
49
- color: $fixed-surface-text;
50
- font-size: font-size('xl');
51
- line-height: 1;
52
- cursor: pointer;
53
- z-index: z-index('lift');
54
- user-select: none;
55
- transition: var(--mw-transition);
56
- @include tappable;
57
-
58
- &:active {
59
- transform: translateY(-50%) scale(0.9);
60
- transition-duration: var(--mw-duration-instant);
61
- }
62
14
 
63
- &::before {
64
- content: '';
65
- position: absolute;
66
- inset: -8px;
67
- border-radius: inherit;
15
+ &-track {
16
+ display: flex;
17
+ transition: transform var(--mw-duration-zoom) var(--mw-ease-in-out);
68
18
  }
69
19
 
70
- &:hover {
71
- background: rgb(0 0 0 / 85%);
20
+ &-slide {
21
+ width: 100%;
22
+ flex-shrink: 0;
23
+ aspect-ratio: 16 / 9;
24
+
25
+ img {
26
+ width: 100%;
27
+ height: 100%;
28
+ object-fit: cover;
29
+ display: block;
30
+ }
72
31
  }
73
32
 
74
- @include focus-ring;
33
+ &-navi {
34
+ position: absolute;
35
+ top: 50%;
36
+ transform: translateY(-50%);
37
+ width: 52px;
38
+ height: 108px;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ padding: spacing('0');
43
+ border: none;
44
+ border-radius: radius('md');
45
+ background: rgb(0 0 0 / 40%);
46
+ color: $fixed-surface-text;
47
+ font-size: font-size('xl');
48
+ line-height: 1;
49
+ cursor: pointer;
50
+ z-index: z-index('lift');
51
+ user-select: none;
52
+ transition: var(--mw-transition);
53
+ @include tappable;
54
+
55
+ &:active {
56
+ transform: translateY(-50%) scale(0.9);
57
+ transition-duration: var(--mw-duration-instant);
58
+ }
75
59
 
76
- &-prev {
77
- left: spacing('4');
78
- }
60
+ &::before {
61
+ content: '';
62
+ position: absolute;
63
+ inset: -8px;
64
+ border-radius: inherit;
65
+ }
79
66
 
80
- &-next {
81
- right: spacing('4');
82
- }
83
- }
67
+ &:hover {
68
+ background: rgb(0 0 0 / 85%);
69
+ }
84
70
 
85
- &-desc {
86
- text-align: left;
87
- padding: spacing('2') spacing('3');
88
- margin-top: spacing('2');
89
- background: var(--mw-card-background);
90
- border-radius: radius('md');
91
- border: 1px solid var(--mw-border-accent);
92
- }
71
+ @include focus-ring;
93
72
 
94
- &-dots {
95
- text-align: center;
96
- margin-top: spacing('5');
97
- display: flex;
98
- align-items: center;
99
- justify-content: center;
100
- gap: spacing('4');
101
- }
73
+ &-prev {
74
+ left: spacing('4');
75
+ }
102
76
 
103
- &-dot {
104
- display: inline-block;
105
- width: 11px;
106
- height: 11px;
107
- padding: 0;
108
- border: 0;
109
- appearance: none;
110
- border-radius: radius('full');
111
- background: var(--mw-gray-color);
112
- cursor: pointer;
113
- transition: var(--mw-transition-fast);
114
-
115
- @include tappable;
116
- @include focus-ring;
117
-
118
- &.mw-active {
119
- transform: scale(1.5);
120
- background: var(--mw-primary-color);
77
+ &-next {
78
+ right: spacing('4');
79
+ }
121
80
  }
122
- }
123
- }
124
81
 
125
- @include media-down('md') {
126
- .mw-gallery {
127
82
  &-desc {
128
- font-size: font-size('sm');
83
+ text-align: left;
84
+ padding: spacing('2') spacing('3');
85
+ margin-top: spacing('2');
86
+ background: var(--mw-card-background);
87
+ border-radius: radius('md');
88
+ border: 1px solid var(--mw-border-accent);
89
+ }
90
+
91
+ &-dots {
92
+ text-align: center;
93
+ margin-top: spacing('5');
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ gap: spacing('4');
129
98
  }
99
+
130
100
  &-dot {
131
- width: 10px;
132
- height: 10px;
101
+ display: inline-block;
102
+ width: 11px;
103
+ height: 11px;
104
+ padding: 0;
105
+ border: 0;
106
+ appearance: none;
107
+ border-radius: radius('full');
108
+ background: var(--mw-gray-color);
109
+ cursor: pointer;
110
+ transition: var(--mw-transition-fast);
111
+
112
+ @include tappable;
113
+ @include focus-ring;
114
+
133
115
  &.mw-active {
134
- transform: scale(1.4);
116
+ transform: scale(1.5);
117
+ background: var(--mw-primary-color);
135
118
  }
136
119
  }
137
120
  }
138
- }
139
121
 
140
- @include media-down('sm') {
141
- .mw-gallery {
142
- &-slide {
143
- aspect-ratio: 4 / 3;
144
- }
145
- &-navi {
146
- width: 46px;
147
- height: 88px;
148
- }
149
- &-desc {
150
- font-size: font-size('xs');
151
- }
152
- &-dots {
153
- gap: spacing('2');
154
- margin-top: spacing('4');
122
+ @include media-down('md') {
123
+ .mw-gallery {
124
+ &-desc {
125
+ font-size: font-size('sm');
126
+ }
127
+ &-dot {
128
+ width: 10px;
129
+ height: 10px;
130
+ &.mw-active {
131
+ transform: scale(1.4);
132
+ }
133
+ }
155
134
  }
156
- &-dot {
157
- width: 9px;
158
- height: 9px;
159
- &.mw-active {
160
- transform: scale(1.3);
135
+ }
136
+
137
+ @include media-down('sm') {
138
+ .mw-gallery {
139
+ &-slide {
140
+ aspect-ratio: 4 / 3;
141
+ }
142
+ &-navi {
143
+ width: 46px;
144
+ height: 88px;
145
+ }
146
+ &-desc {
147
+ font-size: font-size('xs');
148
+ }
149
+ &-dots {
150
+ gap: spacing('2');
151
+ margin-top: spacing('4');
152
+ }
153
+ &-dot {
154
+ width: 9px;
155
+ height: 9px;
156
+ &.mw-active {
157
+ transform: scale(1.3);
158
+ }
161
159
  }
162
160
  }
163
161
  }
@@ -15,10 +15,12 @@
15
15
  @forward 'divider';
16
16
  @forward 'dropdown';
17
17
  @forward 'empty-state';
18
+ @forward 'flag';
18
19
  @forward 'gallery';
19
20
  @forward 'info';
20
21
  @forward 'kanban';
21
22
  @forward 'kbd';
23
+ @forward 'lang-switch';
22
24
  @forward 'links';
23
25
  @forward 'lists';
24
26
  @forward 'localhost-indicator';