maverick-wave 3.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 (141) hide show
  1. package/.claude/commands/mw.md +580 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/maverick-wave.iml +12 -0
  6. package/.idea/modules.xml +8 -0
  7. package/.idea/prettier.xml +6 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.prettierignore +6 -0
  10. package/.prettierrc.json +7 -0
  11. package/CHANGELOG.md +420 -0
  12. package/CLAUDE.md +53 -0
  13. package/LICENSE +21 -0
  14. package/README.md +191 -0
  15. package/gulpfile.js +158 -0
  16. package/index.html +472 -0
  17. package/maverick-wave.min.css +1 -0
  18. package/maverick-wave.min.js +1 -0
  19. package/package.json +52 -0
  20. package/release.sh +17 -0
  21. package/src/assets/favicon/android-chrome-192x192.png +0 -0
  22. package/src/assets/favicon/android-chrome-512x512.png +0 -0
  23. package/src/assets/favicon/apple-touch-icon.png +0 -0
  24. package/src/assets/favicon/favicon-16x16.png +0 -0
  25. package/src/assets/favicon/favicon-32x32.png +0 -0
  26. package/src/assets/favicon/site.webmanifest +1 -0
  27. package/src/assets/favicon.ico +0 -0
  28. package/src/assets/header-logo.svg +24 -0
  29. package/src/js/main.js +587 -0
  30. package/src/partials/accordions-container.html +163 -0
  31. package/src/partials/alerts-container.html +120 -0
  32. package/src/partials/avatars-container.html +84 -0
  33. package/src/partials/blog-posts-container.html +157 -0
  34. package/src/partials/breadcrumbs-container.html +126 -0
  35. package/src/partials/button-bar-container.html +168 -0
  36. package/src/partials/buttons-container.html +133 -0
  37. package/src/partials/cards-container.html +508 -0
  38. package/src/partials/code-container.html +194 -0
  39. package/src/partials/colors-container.html +125 -0
  40. package/src/partials/coming-soon-container.html +6 -0
  41. package/src/partials/content-slider-container.html +47 -0
  42. package/src/partials/divider-container.html +52 -0
  43. package/src/partials/documentation-container.html +161 -0
  44. package/src/partials/empty-state-container.html +74 -0
  45. package/src/partials/footer-container.html +113 -0
  46. package/src/partials/form-container.html +257 -0
  47. package/src/partials/form-elements-container.html +595 -0
  48. package/src/partials/form-field-container.html +141 -0
  49. package/src/partials/gallery-container.html +49 -0
  50. package/src/partials/get-started-container.html +294 -0
  51. package/src/partials/grid-container.html +171 -0
  52. package/src/partials/header-container.html +49 -0
  53. package/src/partials/header-utilities-container.html +80 -0
  54. package/src/partials/home-container.html +48 -0
  55. package/src/partials/html-lists-container.html +58 -0
  56. package/src/partials/info-container.html +87 -0
  57. package/src/partials/input-group-container.html +285 -0
  58. package/src/partials/item-lists-container.html +413 -0
  59. package/src/partials/login-container.html +61 -0
  60. package/src/partials/meta-info-container.html +16 -0
  61. package/src/partials/modals-container.html +136 -0
  62. package/src/partials/pagination-container.html +27 -0
  63. package/src/partials/panels-container.html +196 -0
  64. package/src/partials/progress-container.html +226 -0
  65. package/src/partials/ratings-container.html +104 -0
  66. package/src/partials/skeleton-container.html +82 -0
  67. package/src/partials/spinners-container.html +92 -0
  68. package/src/partials/stepper-container.html +107 -0
  69. package/src/partials/tables-container.html +120 -0
  70. package/src/partials/tabs-container.html +263 -0
  71. package/src/partials/tags-container.html +168 -0
  72. package/src/partials/techstack-bucket-container.html +174 -0
  73. package/src/partials/tiles-container.html +245 -0
  74. package/src/partials/timelines-container.html +196 -0
  75. package/src/partials/typography-container.html +66 -0
  76. package/src/partials/utilities-container.html +85 -0
  77. package/src/scss/abstracts/_functions.scss +37 -0
  78. package/src/scss/abstracts/_index.scss +3 -0
  79. package/src/scss/abstracts/_mixins.scss +45 -0
  80. package/src/scss/abstracts/_variables.scss +222 -0
  81. package/src/scss/base/_base.scss +165 -0
  82. package/src/scss/base/_index.scss +3 -0
  83. package/src/scss/base/_reset.scss +75 -0
  84. package/src/scss/base/_typography.scss +230 -0
  85. package/src/scss/components/_accordions.scss +91 -0
  86. package/src/scss/components/_alerts.scss +105 -0
  87. package/src/scss/components/_avatars.scss +123 -0
  88. package/src/scss/components/_blog-post.scss +268 -0
  89. package/src/scss/components/_breadcrumbs.scss +108 -0
  90. package/src/scss/components/_button-bar.scss +139 -0
  91. package/src/scss/components/_buttons.scss +164 -0
  92. package/src/scss/components/_cards.scss +316 -0
  93. package/src/scss/components/_code.scss +252 -0
  94. package/src/scss/components/_coming-soon.scss +92 -0
  95. package/src/scss/components/_content-slider.scss +119 -0
  96. package/src/scss/components/_divider.scss +70 -0
  97. package/src/scss/components/_empty-state.scss +73 -0
  98. package/src/scss/components/_gallery.scss +158 -0
  99. package/src/scss/components/_index.scss +33 -0
  100. package/src/scss/components/_info.scss +143 -0
  101. package/src/scss/components/_lists.scss +653 -0
  102. package/src/scss/components/_localhost-indicator.scss +29 -0
  103. package/src/scss/components/_meta-info.scss +34 -0
  104. package/src/scss/components/_modals.scss +118 -0
  105. package/src/scss/components/_pagination.scss +99 -0
  106. package/src/scss/components/_panels.scss +112 -0
  107. package/src/scss/components/_progress.scss +107 -0
  108. package/src/scss/components/_ratings.scss +47 -0
  109. package/src/scss/components/_skeleton.scss +90 -0
  110. package/src/scss/components/_spinners.scss +208 -0
  111. package/src/scss/components/_stepper.scss +145 -0
  112. package/src/scss/components/_tables.scss +127 -0
  113. package/src/scss/components/_tabs.scss +146 -0
  114. package/src/scss/components/_tags.scss +93 -0
  115. package/src/scss/components/_techstack-bucket.scss +145 -0
  116. package/src/scss/components/_theme-toggle.scss +50 -0
  117. package/src/scss/components/_tiles.scss +217 -0
  118. package/src/scss/components/_timelines.scss +339 -0
  119. package/src/scss/form-elements/_checkbox.scss +174 -0
  120. package/src/scss/form-elements/_form.scss +122 -0
  121. package/src/scss/form-elements/_index.scss +10 -0
  122. package/src/scss/form-elements/_input-group.scss +103 -0
  123. package/src/scss/form-elements/_input.scss +72 -0
  124. package/src/scss/form-elements/_login.scss +62 -0
  125. package/src/scss/form-elements/_radio.scss +144 -0
  126. package/src/scss/form-elements/_select.scss +56 -0
  127. package/src/scss/form-elements/_slider.scss +174 -0
  128. package/src/scss/form-elements/_textarea.scss +74 -0
  129. package/src/scss/form-elements/_toggle.scss +174 -0
  130. package/src/scss/layout/_footer.scss +214 -0
  131. package/src/scss/layout/_grid.scss +287 -0
  132. package/src/scss/layout/_header.scss +441 -0
  133. package/src/scss/layout/_home.scss +40 -0
  134. package/src/scss/layout/_index.scss +6 -0
  135. package/src/scss/layout/_main.scss +116 -0
  136. package/src/scss/layout/_section.scss +89 -0
  137. package/src/scss/main.scss +5 -0
  138. package/src/scss/utilities/_display.scss +35 -0
  139. package/src/scss/utilities/_flex.scss +66 -0
  140. package/src/scss/utilities/_index.scss +3 -0
  141. package/src/scss/utilities/_spacing.scss +78 -0
@@ -0,0 +1,441 @@
1
+ @use '../abstracts' as *;
2
+
3
+ .mw-header {
4
+ position: fixed;
5
+ top: spacing('0');
6
+ left: spacing('0');
7
+ width: 100%;
8
+ z-index: z-index('header');
9
+ background: var(--mw-header-background);
10
+ backdrop-filter: blur(7px);
11
+ border-bottom: 1px solid var(--mw-header-border);
12
+ padding: spacing('3') spacing('0');
13
+ transition: var(--mw-transition);
14
+
15
+ .mw-container {
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ }
20
+
21
+ .mw-logo {
22
+ display: flex;
23
+ align-items: center;
24
+ z-index: z-index('header') + 5;
25
+ position: relative;
26
+ flex-shrink: 0;
27
+
28
+ button {
29
+ display: inline-block;
30
+ text-decoration: none;
31
+ }
32
+
33
+ img {
34
+ height: 42px;
35
+ width: auto;
36
+ max-width: 100%;
37
+ display: block;
38
+ }
39
+ }
40
+
41
+ .mw-header-actions {
42
+ display: flex;
43
+ align-items: center;
44
+ gap: spacing('2');
45
+ }
46
+
47
+ // Login button styling
48
+ .mw-login-btn {
49
+ background: var(--mw-primary-color);
50
+ color: var(--mw-primary-text-color);
51
+ border: none;
52
+ border-radius: radius('md');
53
+ font-size: font-size('md');
54
+ cursor: pointer;
55
+ transition: var(--mw-transition);
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ height: 40px;
60
+ width: 50px;
61
+ flex-shrink: 0;
62
+
63
+ &:hover:not(:disabled) {
64
+ background: var(--mw-primary-color-hover);
65
+ transform: translateY(-1px);
66
+ }
67
+
68
+ &:disabled {
69
+ color: var(--mw-text-muted-color);
70
+ cursor: not-allowed;
71
+ }
72
+ }
73
+
74
+ // Updated burger button to look like primary button
75
+ .mw-menu-btn {
76
+ background: var(--mw-primary-color);
77
+ border: none;
78
+ cursor: pointer;
79
+ outline: none;
80
+ border-radius: radius('md');
81
+ transition: var(--mw-transition);
82
+ height: 40px;
83
+ width: 50px;
84
+ display: none;
85
+ position: relative;
86
+ flex-shrink: 0;
87
+
88
+ // iOS
89
+ -webkit-tap-highlight-color: transparent;
90
+ -webkit-touch-callout: none;
91
+ user-select: none;
92
+ touch-action: manipulation;
93
+
94
+ &:hover {
95
+ background: var(--mw-primary-color-hover);
96
+ transform: translateY(-1px);
97
+ }
98
+
99
+ &:active {
100
+ transform: translateY(0);
101
+ }
102
+
103
+ &:focus-visible {
104
+ outline: 2px solid var(--mw-primary-color);
105
+ outline-offset: 2px;
106
+ }
107
+
108
+ &.open {
109
+ background: var(--mw-secondary-color);
110
+ position: fixed;
111
+ top: 14px;
112
+ right: 6%;
113
+ z-index: z-index('header') + 10;
114
+
115
+ &:hover {
116
+ background: var(--mw-secondary-color-hover);
117
+ }
118
+
119
+ // Transform the burger to X
120
+ .mw-menu-btn-burger {
121
+ background: transparent;
122
+
123
+ &::before {
124
+ top: 0;
125
+ transform: rotate(45deg);
126
+ }
127
+
128
+ &::after {
129
+ bottom: 0;
130
+ transform: rotate(-45deg);
131
+ }
132
+ }
133
+ }
134
+ }
135
+
136
+ .mw-menu-btn-burger {
137
+ width: 18px;
138
+ height: 2px;
139
+ background: var(--mw-primary-text-color);
140
+ border-radius: 1px;
141
+ position: relative;
142
+ transition: all 0.3s ease;
143
+
144
+ &::before,
145
+ &::after {
146
+ content: '';
147
+ position: absolute;
148
+ left: 0;
149
+ width: 18px;
150
+ height: 2px;
151
+ background: var(--mw-primary-text-color);
152
+ border-radius: 1px;
153
+ transition: all 0.3s ease;
154
+ }
155
+
156
+ &::before {
157
+ top: -6px;
158
+ }
159
+
160
+ &::after {
161
+ bottom: -6px;
162
+ }
163
+ }
164
+ }
165
+
166
+ // Navbar with built-in auto-detection
167
+ .mw-navbar {
168
+ display: flex;
169
+
170
+ &-list {
171
+ display: flex;
172
+ list-style: none;
173
+ margin: spacing('0');
174
+ padding: spacing('0');
175
+ gap: spacing('4');
176
+ align-items: center;
177
+ flex-wrap: nowrap;
178
+ overflow: visible;
179
+
180
+ @include media-down('lg') {
181
+ gap: spacing('2');
182
+ }
183
+ }
184
+
185
+ &-item {
186
+ position: relative;
187
+ flex-shrink: 0;
188
+ white-space: nowrap;
189
+ }
190
+
191
+ &-link {
192
+ position: relative;
193
+ font-weight: font-weight('medium');
194
+ font-size: inherit;
195
+ transition: var(--mw-transition);
196
+ color: var(--mw-header-navbar-list-color);
197
+ padding-bottom: 3px;
198
+
199
+ &::after {
200
+ content: '';
201
+ position: absolute;
202
+ left: 10%;
203
+ bottom: 0;
204
+ width: 80%;
205
+ height: 2px;
206
+ background: currentColor;
207
+ transform: scaleX(0);
208
+ transform-origin: center;
209
+ transition:
210
+ transform 0.2s,
211
+ opacity 0.2s;
212
+ opacity: 0;
213
+ }
214
+
215
+ &:hover,
216
+ &.active {
217
+ color: var(--mw-header-navbar-list-active-color);
218
+ }
219
+
220
+ &:hover::after,
221
+ &.active::after {
222
+ transform: scaleX(1) !important;
223
+ opacity: 1 !important;
224
+ }
225
+ }
226
+
227
+ // Auto-responsive behavior based on nav item count
228
+ // Default behavior (1-3 items): collapse at md
229
+ @include media-down('md') {
230
+ .mw-navbar-list {
231
+ display: none;
232
+ }
233
+
234
+ &.open {
235
+ position: fixed;
236
+ top: 0;
237
+ right: 0;
238
+ width: 80%;
239
+ max-width: 280px;
240
+ height: 100dvh;
241
+ background: var(--mw-header-background);
242
+ transform: translateX(0);
243
+ transition: transform 0.3s ease;
244
+ z-index: z-index('header') + 3;
245
+ border-left: 1px solid var(--mw-header-border);
246
+
247
+ .mw-navbar-list {
248
+ display: flex;
249
+ flex-direction: column;
250
+ align-items: flex-start;
251
+ gap: spacing('0');
252
+ padding-top: 80px;
253
+ padding-left: spacing('3');
254
+ padding-right: spacing('3');
255
+ height: 100%;
256
+ overflow-y: auto;
257
+ }
258
+
259
+ .mw-navbar-item {
260
+ width: 100%;
261
+ margin: spacing('0');
262
+ }
263
+
264
+ .mw-navbar-link {
265
+ display: block;
266
+ padding: spacing('3') spacing('0');
267
+ border-bottom: 1px solid var(--mw-header-border);
268
+ width: 100%;
269
+ text-align: left;
270
+
271
+ &::after {
272
+ display: none;
273
+ }
274
+
275
+ &.active {
276
+ color: var(--mw-header-navbar-list-active-color);
277
+ font-weight: font-weight('medium');
278
+ }
279
+ }
280
+ }
281
+ }
282
+
283
+ // Medium (4-5 items): collapse at lg
284
+ &.mw-navbar-medium {
285
+ @include media-down('lg') {
286
+ .mw-navbar-list {
287
+ display: none;
288
+ }
289
+
290
+ &.open {
291
+ position: fixed;
292
+ top: 0;
293
+ right: 0;
294
+ width: 80%;
295
+ max-width: 280px;
296
+ height: 100dvh;
297
+ background: var(--mw-header-background);
298
+ transform: translateX(0);
299
+ transition: transform 0.3s ease;
300
+ z-index: z-index('header') + 3;
301
+ border-left: 1px solid var(--mw-header-border);
302
+
303
+ .mw-navbar-list {
304
+ display: flex;
305
+ flex-direction: column;
306
+ align-items: flex-start;
307
+ gap: spacing('0');
308
+ padding-top: 80px;
309
+ padding-left: spacing('3');
310
+ padding-right: spacing('3');
311
+ height: 100%;
312
+ overflow-y: auto;
313
+ }
314
+
315
+ .mw-navbar-item {
316
+ width: 100%;
317
+ margin: spacing('0');
318
+ }
319
+
320
+ .mw-navbar-link {
321
+ display: block;
322
+ padding: spacing('3') spacing('0');
323
+ border-bottom: 1px solid var(--mw-header-border);
324
+ width: 100%;
325
+ text-align: left;
326
+
327
+ &::after {
328
+ display: none;
329
+ }
330
+
331
+ &.active {
332
+ color: var(--mw-header-navbar-list-active-color);
333
+ font-weight: font-weight('medium');
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+
340
+ // Large (6+ items): collapse at xl
341
+ &.mw-navbar-large {
342
+ @include media-down('xl') {
343
+ .mw-navbar-list {
344
+ display: none;
345
+ }
346
+
347
+ &.open {
348
+ position: fixed;
349
+ top: 0;
350
+ right: 0;
351
+ width: 80%;
352
+ max-width: 280px;
353
+ height: 100dvh;
354
+ background: var(--mw-header-background);
355
+ transform: translateX(0);
356
+ transition: transform 0.3s ease;
357
+ z-index: z-index('header') + 3;
358
+ border-left: 1px solid var(--mw-header-border);
359
+
360
+ .mw-navbar-list {
361
+ display: flex;
362
+ flex-direction: column;
363
+ align-items: flex-start;
364
+ gap: spacing('0');
365
+ padding-top: 80px;
366
+ padding-left: spacing('3');
367
+ padding-right: spacing('3');
368
+ height: 100%;
369
+ overflow-y: auto;
370
+ }
371
+
372
+ .mw-navbar-item {
373
+ width: 100%;
374
+ margin: spacing('0');
375
+ }
376
+
377
+ .mw-navbar-link {
378
+ display: block;
379
+ padding: spacing('3') spacing('0');
380
+ border-bottom: 1px solid var(--mw-header-border);
381
+ width: 100%;
382
+ text-align: left;
383
+
384
+ &::after {
385
+ display: none;
386
+ }
387
+
388
+ &.active {
389
+ color: var(--mw-header-navbar-list-active-color);
390
+ font-weight: font-weight('medium');
391
+ }
392
+ }
393
+ }
394
+ }
395
+ }
396
+ }
397
+
398
+ // Show burger button based on navbar size
399
+ .mw-navbar {
400
+ // Default (1-3 items): show burger at md
401
+ @include media-down('md') {
402
+ ~ .mw-menu-btn {
403
+ display: flex;
404
+ align-items: center;
405
+ justify-content: center;
406
+ }
407
+ }
408
+
409
+ &.mw-navbar-medium {
410
+ // 4-5 items: show burger at lg
411
+ @include media-down('lg') {
412
+ ~ .mw-menu-btn {
413
+ display: flex;
414
+ align-items: center;
415
+ justify-content: center;
416
+ }
417
+ }
418
+ }
419
+
420
+ &.mw-navbar-large {
421
+ // 6+ items: show burger at xl
422
+ @include media-down('xl') {
423
+ ~ .mw-menu-btn {
424
+ display: flex;
425
+ align-items: center;
426
+ justify-content: center;
427
+ }
428
+ }
429
+ }
430
+ }
431
+
432
+ @keyframes fadeIn {
433
+ from {
434
+ opacity: 0;
435
+ transform: translateY(-10px);
436
+ }
437
+ to {
438
+ opacity: 1;
439
+ transform: translateY(0);
440
+ }
441
+ }
@@ -0,0 +1,40 @@
1
+ @use '../abstracts' as *;
2
+
3
+ .mw-home {
4
+ justify-items: center;
5
+ align-items: center;
6
+ text-align: center;
7
+
8
+ &-content {
9
+ padding: spacing('6') spacing('4');
10
+ @include media-down('sm') {
11
+ padding: spacing('9') spacing('3');
12
+ }
13
+
14
+ // choose mw-home-content or mw-home-content-fade
15
+ &-fade {
16
+ @extend .mw-home-content;
17
+ animation: fadeIn 1.7s ease-in;
18
+ }
19
+ }
20
+
21
+ &-text {
22
+ width: min(75%, 700px);
23
+ position: relative;
24
+ margin: spacing('0') auto spacing('4');
25
+ @include media-down('sm') {
26
+ width: 85%;
27
+ }
28
+ }
29
+ }
30
+
31
+ @keyframes fadeIn {
32
+ from {
33
+ opacity: 0;
34
+ transform: translateX(-8px) translateY(-23px);
35
+ }
36
+ to {
37
+ opacity: 1;
38
+ transform: translateY(0);
39
+ }
40
+ }
@@ -0,0 +1,6 @@
1
+ @forward 'footer';
2
+ @forward 'grid';
3
+ @forward 'header';
4
+ @forward 'home';
5
+ @forward 'main';
6
+ @forward 'section';
@@ -0,0 +1,116 @@
1
+ @use '../abstracts' as *;
2
+
3
+ .mw-main {
4
+ margin: spacing('0');
5
+ padding: spacing('0');
6
+ min-height: 100dvh;
7
+ display: flex;
8
+ flex-direction: column;
9
+ }
10
+
11
+ .mw-container {
12
+ width: min(1200px, 89%);
13
+ margin: spacing('0') auto;
14
+ padding: spacing('0');
15
+
16
+ // add a hero part for a full size background picture
17
+ @supports (selector(:has(.mw-hero))) {
18
+ // if it has *any* descendant .mw-hero
19
+ &:has(.mw-hero) {
20
+ position: relative;
21
+ width: 100%;
22
+ min-height: 100dvh;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ background-size: cover;
27
+ background-position: center;
28
+ background-image: var(--mw-hero-background);
29
+
30
+ // the “overlay”
31
+ &::before {
32
+ content: '';
33
+ position: absolute;
34
+ inset: 0;
35
+ background: var(--mw-hero-overlay-background);
36
+ backdrop-filter: blur(2px);
37
+ z-index: z-index('lift');
38
+ pointer-events: none;
39
+ }
40
+
41
+ // your actual content should sit above the overlay
42
+ > * {
43
+ position: relative;
44
+ z-index: z-index('card');
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ .mw-content {
51
+ flex: 1;
52
+ padding-top: spacing('7');
53
+ }
54
+
55
+ .mw-content-centered {
56
+ min-height: 100dvh;
57
+ display: flex;
58
+ flex-direction: column;
59
+ justify-content: center;
60
+ }
61
+
62
+ // tooltip - use it everywhere you want
63
+ [data-tooltip] {
64
+ position: relative;
65
+
66
+ &::before {
67
+ content: attr(data-tooltip);
68
+ position: absolute;
69
+ bottom: 100%;
70
+ left: 50%;
71
+ transform: translateX(-50%) translateY(-10px);
72
+ background: var(--mw-gray-color);
73
+ color: var(--mw-white-color);
74
+ padding: spacing('1') spacing('2');
75
+ font-size: font-size('xs');
76
+ border-radius: radius('xs');
77
+ white-space: nowrap;
78
+ pointer-events: none;
79
+ opacity: 0;
80
+ visibility: hidden;
81
+ transition:
82
+ opacity 0.2s,
83
+ transform 0.2s;
84
+ margin-bottom: spacing('2');
85
+ z-index: z-index('tooltip');
86
+ box-shadow: 0 2px 5px var(--mw-shadow);
87
+ }
88
+
89
+ // small triangle on the bottom
90
+ &::after {
91
+ content: '';
92
+ position: absolute;
93
+ bottom: 100%;
94
+ left: 50%;
95
+ transform: translateX(-50%) translateY(-10px);
96
+ border: 6px solid transparent;
97
+ border-top-color: var(--mw-gray-color);
98
+ opacity: 0;
99
+ visibility: hidden;
100
+ transition:
101
+ opacity 0.2s,
102
+ transform 0.2s;
103
+ margin-bottom: -4px;
104
+ z-index: z-index('tooltip');
105
+ }
106
+
107
+ // Hover effect
108
+ &:hover {
109
+ &::before,
110
+ &::after {
111
+ opacity: 1;
112
+ visibility: visible;
113
+ transform: translateX(-50%) translateY(0);
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,89 @@
1
+ @use '../abstracts' as *;
2
+
3
+ .mw-section-title {
4
+ font-size: font-size('3xl');
5
+ margin-bottom: spacing('7');
6
+ text-align: center;
7
+ position: relative;
8
+
9
+ &::after {
10
+ content: '';
11
+ position: absolute;
12
+ bottom: spacing('-2');
13
+ left: 50%;
14
+ transform: translateX(-50%);
15
+ width: 80px;
16
+ height: 5px;
17
+ background: var(--mw-primary-color);
18
+ }
19
+
20
+ @include media-down('sm') {
21
+ font-size: font-size('2xl');
22
+ }
23
+ }
24
+
25
+ .mw-section-subtitle {
26
+ font-size: font-size('2xl');
27
+ margin: spacing('8') spacing('0') spacing('6') spacing('0');
28
+ text-align: center;
29
+ position: relative;
30
+
31
+ &::after {
32
+ content: '';
33
+ position: absolute;
34
+ bottom: spacing('-2');
35
+ left: 50%;
36
+ transform: translateX(-50%);
37
+ width: 100px;
38
+ height: 2px;
39
+ background: var(--mw-secondary-color);
40
+ }
41
+
42
+ @include media-down('sm') {
43
+ font-size: font-size('xl');
44
+ }
45
+ }
46
+
47
+ .mw-section-nav {
48
+ max-width: 90%;
49
+ margin: spacing('-3') auto spacing('-5') auto;
50
+ display: flex;
51
+ flex-wrap: wrap;
52
+ justify-content: center;
53
+ gap: spacing('3');
54
+ }
55
+
56
+ // Responsive adjustments
57
+ @include media-down('sm') {
58
+ .mw-section-nav {
59
+ flex-direction: column;
60
+ width: 100%;
61
+ max-width: 300px;
62
+ margin-left: auto;
63
+ margin-right: auto;
64
+ }
65
+
66
+ .mw-section-btn {
67
+ width: 90%;
68
+ margin: spacing('0') auto;
69
+ text-align: center;
70
+ }
71
+ }
72
+
73
+ // additional spacing for the whole section
74
+ // Pattern variants for sections
75
+ section {
76
+ padding: spacing('7') spacing('0');
77
+ position: relative;
78
+
79
+ &.mw-section-alternate {
80
+ --s: 5px; // size
81
+ --c1: var(--mw-page-background);
82
+ --c2: var(--mw-section-alternate-pattern);
83
+ --g: var(--c2) -5% 5%, var(--c1) 0 45%;
84
+ background:
85
+ linear-gradient(0deg, #0000 10%, var(--c1) 0 40%, #0000 0),
86
+ repeating-linear-gradient(-45deg, var(--g)) var(--c1);
87
+ background-size: var(--s) var(--s);
88
+ }
89
+ }
@@ -0,0 +1,5 @@
1
+ @use 'base';
2
+ @use 'components';
3
+ @use 'form-elements';
4
+ @use 'layout';
5
+ @use 'utilities';