@dataengineeringformachinelearning/viking-ui 4.0.1 → 4.0.3

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 +7 -5
  2. package/dist/README.md +7 -5
  3. package/dist/deml-components.css +23 -0
  4. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +182 -23
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
  6. package/dist/package.json +7 -1
  7. package/dist/src/web/card/viking-card-wc.ts +5 -1
  8. package/dist/src/web/core/styles.ts +125 -2
  9. package/dist/src/web/suite-header/viking-suite-header-wc.ts +15 -0
  10. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +2 -1
  11. package/dist/viking-components.css +425 -31
  12. package/dist/viking-ui-elements.js +180 -42
  13. package/dist/viking-ui.css +1 -1
  14. package/dist/web-components.js +145 -3
  15. package/package.json +7 -1
  16. package/src/index.ts +1 -1
  17. package/src/lib/auth-panel/auth-panel.ts +9 -9
  18. package/src/lib/button/button.scss +23 -0
  19. package/src/lib/card/card.ts +33 -5
  20. package/src/lib/site-drakkar/site-navbar.ts +14 -4
  21. package/src/styles/_buttons.scss +92 -7
  22. package/src/styles/_layout-enforcement.scss +66 -3
  23. package/src/styles/components/icon-inline.scss +23 -0
  24. package/src/styles/components.scss +276 -9
  25. package/src/styles/static-navbar.scss +43 -4
  26. package/src/styles/surfaces/backend.scss +22 -10
  27. package/src/styles/surfaces/docs-shell.scss +40 -15
  28. package/src/styles/surfaces/docs-showcase.scss +132 -30
  29. package/src/styles/surfaces/marketing-landing.scss +311 -45
  30. package/src/styles/surfaces/swagger-ui.scss +9 -8
  31. package/src/styles/viking-ui.scss +12 -12
  32. package/src/web/card/viking-card-wc.ts +5 -1
  33. package/src/web/core/styles.ts +125 -2
  34. package/src/web/suite-header/viking-suite-header-wc.ts +15 -0
@@ -216,7 +216,7 @@
216
216
 
217
217
  viking-button,
218
218
  viking-button-wc {
219
- min-width: auto;
219
+ min-width: var(--viking-btn-min-width, 120px) !important;
220
220
  }
221
221
  }
222
222
 
@@ -488,7 +488,7 @@ button.auth-btn {
488
488
  align-items: center !important;
489
489
  justify-content: center !important;
490
490
  gap: var(--viking-space-1, 8px) !important;
491
- min-width: auto !important;
491
+ min-width: var(--viking-btn-min-width, 120px) !important;
492
492
  height: var(--viking-control-height, 40px) !important;
493
493
  min-height: var(--viking-control-height, 40px) !important;
494
494
  padding: 0 var(--viking-space-2, 16px) !important;
@@ -499,6 +499,23 @@ button.auth-btn {
499
499
  line-height: 1 !important;
500
500
  }
501
501
 
502
+ .auth-btn::part(control),
503
+ viking-button.auth-btn::part(control),
504
+ viking-button.auth-btn viking-button-wc::part(control),
505
+ viking-button.auth-btn viking-button-wc,
506
+ viking-button-wc.auth-btn::part(control),
507
+ .auth-btn.viking-full::part(control) {
508
+ display: inline-flex !important;
509
+ align-items: center !important;
510
+ justify-content: center !important;
511
+ gap: var(--viking-space-1, 8px) !important;
512
+ min-width: var(--viking-btn-min-width, 120px) !important;
513
+ min-height: var(--viking-control-height, 40px) !important;
514
+ height: var(--viking-control-height, 40px) !important;
515
+ padding: 0 var(--viking-space-2, 16px) !important;
516
+ box-sizing: border-box !important;
517
+ }
518
+
502
519
  .auth-signout-btn {
503
520
  background: transparent !important;
504
521
  color: var(--text-muted) !important;
@@ -522,6 +539,19 @@ button.auth-btn {
522
539
  display: none !important;
523
540
  }
524
541
 
542
+ .auth-btn [data-viking-icon],
543
+ .auth-btn [data-viking-icon] svg,
544
+ .auth-signout-btn [data-viking-icon],
545
+ .auth-signout-btn [data-viking-icon] svg {
546
+ margin: 0 !important;
547
+ display: inline-flex !important;
548
+ align-items: center !important;
549
+ justify-content: center !important;
550
+ width: 16px !important;
551
+ height: 16px !important;
552
+ line-height: 1 !important;
553
+ }
554
+
525
555
  .auth-signout-btn:hover {
526
556
  color: var(--text-color) !important;
527
557
  border-color: var(--viking-crimson-500) !important;
@@ -554,12 +584,17 @@ button.auth-btn {
554
584
  z-index: 49;
555
585
  gap: var(--viking-space-half, 4px);
556
586
 
557
- viking-button {
587
+ viking-button,
588
+ viking-button-wc,
589
+ .mobile-auth-btn {
558
590
  width: 100%;
559
591
  }
560
592
 
561
593
  .mobile-auth-btn,
562
- .auth-signout-btn {
594
+ .auth-signout-btn,
595
+ .mobile-auth-btn::part(control),
596
+ .mobile-auth-btn.auth-btn::part(control),
597
+ .mobile-auth-btn.auth-signout-btn::part(control) {
563
598
  flex-shrink: 0;
564
599
  width: 100%;
565
600
  }
@@ -1136,6 +1171,10 @@ button.auth-btn {
1136
1171
  display: none !important;
1137
1172
  }
1138
1173
 
1174
+ .mobile-menu.open {
1175
+ display: none !important;
1176
+ }
1177
+
1139
1178
  .navbar-right {
1140
1179
  gap: var(--viking-space-2, 16px);
1141
1180
  }
@@ -14,7 +14,13 @@ body {
14
14
  body {
15
15
  background-color: var(--viking-bg, var(--bg-color));
16
16
  color: var(--viking-text, var(--text-color));
17
- font-family: var(--viking-font-family, "Inter", ui-sans-serif, system-ui, sans-serif);
17
+ font-family: var(
18
+ --viking-font-family,
19
+ "Inter",
20
+ ui-sans-serif,
21
+ system-ui,
22
+ sans-serif
23
+ );
18
24
  -webkit-font-smoothing: antialiased;
19
25
  -moz-osx-font-smoothing: grayscale;
20
26
  }
@@ -23,7 +29,7 @@ body {
23
29
  .backend-landing-shell {
24
30
  display: flex;
25
31
  flex-direction: column;
26
- gap: var(--viking-page-section-gap, var(--viking-space-7, 56px));
32
+ gap: var(--viking-space-8);
27
33
  min-height: calc(100vh - var(--viking-navbar-height, 64px));
28
34
  }
29
35
 
@@ -32,6 +38,7 @@ body {
32
38
  align-items: center;
33
39
  max-width: var(--viking-content-readable-max-width, 48rem);
34
40
  margin-inline: auto;
41
+ padding-block: var(--viking-space-7);
35
42
  box-shadow: var(--viking-shadow-sm);
36
43
  }
37
44
 
@@ -51,13 +58,16 @@ body {
51
58
 
52
59
  @keyframes backend-status-pulse {
53
60
  0% {
54
- box-shadow: 0 0 0 0 color-mix(in srgb, var(--viking-success) 70%, transparent);
61
+ box-shadow: 0 0 0 0
62
+ color-mix(in srgb, var(--viking-success) 70%, transparent);
55
63
  }
56
64
  70% {
57
- box-shadow: 0 0 0 var(--viking-space-1) color-mix(in srgb, var(--viking-success) 0%, transparent);
65
+ box-shadow: 0 0 0 var(--viking-space-1)
66
+ color-mix(in srgb, var(--viking-success) 0%, transparent);
58
67
  }
59
68
  100% {
60
- box-shadow: 0 0 0 0 color-mix(in srgb, var(--viking-success) 0%, transparent);
69
+ box-shadow: 0 0 0 0
70
+ color-mix(in srgb, var(--viking-success) 0%, transparent);
61
71
  }
62
72
  }
63
73
 
@@ -68,28 +78,28 @@ body {
68
78
 
69
79
  .backend-hero-cta {
70
80
  justify-content: center;
71
- margin-top: var(--viking-space-1);
81
+ margin-top: var(--viking-space-3);
72
82
  }
73
83
 
74
84
  /* ── Feature cards (VikingCard WC + icon tile) ─────────────────────────────── */
75
85
  .backend-feature-grid {
76
86
  display: flex;
77
87
  flex-direction: column;
78
- gap: var(--viking-space-3);
88
+ gap: var(--viking-space-4);
79
89
  width: 100%;
80
90
  }
81
91
 
82
92
  .backend-feature-cards {
83
93
  display: grid;
84
94
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
85
- gap: var(--viking-space-3);
95
+ gap: var(--viking-space-4);
86
96
  width: 100%;
87
97
  }
88
98
 
89
99
  .backend-feature-card-body {
90
100
  display: flex;
91
101
  flex-direction: column;
92
- gap: var(--viking-space-2);
102
+ gap: var(--viking-space-3);
93
103
  }
94
104
 
95
105
  .backend-feature-icon {
@@ -119,7 +129,9 @@ body.backend-404 .backend-error-logo {
119
129
  max-width: 100px;
120
130
  width: 100%;
121
131
  margin: 0 auto var(--viking-space-3);
122
- filter: drop-shadow(0 4px 12px color-mix(in srgb, var(--viking-black) 15%, transparent));
132
+ filter: drop-shadow(
133
+ 0 4px 12px color-mix(in srgb, var(--viking-black) 15%, transparent)
134
+ );
123
135
  }
124
136
 
125
137
  body.backend-404 .backend-error-card .viking-heading-xl {
@@ -114,9 +114,14 @@
114
114
  justify-content: center;
115
115
  width: var(--viking-control-height, 40px);
116
116
  height: var(--viking-control-height, 40px);
117
- border: 1px solid color-mix(in srgb, var(--viking-accent) 32%, var(--viking-border-strong));
117
+ border: 1px solid
118
+ color-mix(in srgb, var(--viking-accent) 32%, var(--viking-border-strong));
118
119
  border-radius: var(--viking-radius);
119
- background: color-mix(in srgb, var(--viking-accent) 8%, var(--viking-surface));
120
+ background: color-mix(
121
+ in srgb,
122
+ var(--viking-accent) 8%,
123
+ var(--viking-surface)
124
+ );
120
125
  color: var(--viking-accent-strong, var(--viking-teal-400));
121
126
  box-shadow: var(--viking-shadow-sm);
122
127
  cursor: pointer;
@@ -125,7 +130,11 @@
125
130
 
126
131
  .theme-toggle-btn:hover {
127
132
  border-color: var(--viking-accent-strong, var(--viking-teal-400));
128
- background: color-mix(in srgb, var(--viking-accent) 14%, var(--viking-surface));
133
+ background: color-mix(
134
+ in srgb,
135
+ var(--viking-accent) 14%,
136
+ var(--viking-surface)
137
+ );
129
138
  color: var(--viking-accent-strong, var(--viking-teal-400));
130
139
  box-shadow: var(--viking-shadow-md);
131
140
  }
@@ -135,10 +144,18 @@
135
144
  outline-offset: 2px;
136
145
  }
137
146
 
138
- html[data-theme='dark'] .theme-icon-sun { display: block; }
139
- html[data-theme='dark'] .theme-icon-moon { display: none; }
140
- html[data-theme='light'] .theme-icon-sun { display: none; }
141
- html[data-theme='light'] .theme-icon-moon { display: block; }
147
+ html[data-theme="dark"] .theme-icon-sun {
148
+ display: block;
149
+ }
150
+ html[data-theme="dark"] .theme-icon-moon {
151
+ display: none;
152
+ }
153
+ html[data-theme="light"] .theme-icon-sun {
154
+ display: none;
155
+ }
156
+ html[data-theme="light"] .theme-icon-moon {
157
+ display: block;
158
+ }
142
159
 
143
160
  /* ── Horizontal sub-navigation (replaces sidebar) ── */
144
161
  .showcase-subnav {
@@ -191,8 +208,16 @@ html[data-theme='light'] .theme-icon-moon { display: block; }
191
208
 
192
209
  .showcase-subnav-link.is-active {
193
210
  color: var(--viking-accent);
194
- border-color: color-mix(in srgb, var(--viking-accent) 28%, var(--viking-border));
195
- background: color-mix(in srgb, var(--viking-accent) 10%, var(--viking-surface));
211
+ border-color: color-mix(
212
+ in srgb,
213
+ var(--viking-accent) 28%,
214
+ var(--viking-border)
215
+ );
216
+ background: color-mix(
217
+ in srgb,
218
+ var(--viking-accent) 10%,
219
+ var(--viking-surface)
220
+ );
196
221
  }
197
222
 
198
223
  .docs-layout {
@@ -213,12 +238,12 @@ html[data-theme='light'] .theme-icon-moon { display: block; }
213
238
 
214
239
  .docs-content {
215
240
  flex: 1;
216
- padding: var(--viking-space-4) var(--viking-space-2);
241
+ padding: 0;
217
242
  }
218
243
 
219
244
  @media (min-width: 768px) {
220
245
  .docs-content {
221
- padding: var(--viking-space-5) var(--viking-space-4);
246
+ padding: 0;
222
247
  }
223
248
  }
224
249
 
@@ -394,19 +419,19 @@ html[data-theme='light'] .theme-icon-moon { display: block; }
394
419
  .contribute-steps {
395
420
  display: flex;
396
421
  flex-direction: column;
397
- gap: var(--viking-space-2);
422
+ gap: var(--viking-page-stack-gap);
398
423
  counter-reset: step;
399
424
  }
400
425
 
401
426
  .contribute-step {
402
- padding: var(--viking-space-3);
427
+ padding: var(--viking-card-padding);
403
428
  border: 1px solid var(--viking-border);
404
429
  border-radius: var(--viking-radius-lg);
405
- background: var(--viking-surface);
430
+ background: var(--viking-surface-recipe, var(--viking-surface));
406
431
  }
407
432
 
408
433
  .contribute-step h3::before {
409
434
  counter-increment: step;
410
- content: counter(step, decimal-leading-zero) '';
435
+ content: counter(step, decimal-leading-zero) "";
411
436
  color: var(--viking-accent);
412
437
  }
@@ -15,12 +15,28 @@
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  gap: var(--viking-page-section-gap, var(--viking-space-5));
18
- padding-block: var(--viking-space-4);
18
+ padding-block: var(--viking-space-6);
19
+ position: relative;
20
+
21
+ &::before {
22
+ content: "";
23
+ position: absolute;
24
+ inset: 0;
25
+ pointer-events: none;
26
+ background:
27
+ linear-gradient(
28
+ 90deg,
29
+ transparent,
30
+ color-mix(in srgb, var(--viking-accent) 10%, transparent),
31
+ transparent
32
+ );
33
+ opacity: 0.03;
34
+ }
19
35
  }
20
36
 
21
37
  @media (min-width: 768px) {
22
38
  .showcase-page {
23
- padding-block: var(--viking-space-5);
39
+ padding-block: var(--viking-space-8);
24
40
  }
25
41
  }
26
42
 
@@ -29,6 +45,21 @@
29
45
  display: grid;
30
46
  gap: var(--viking-space-5);
31
47
  align-items: center;
48
+ position: relative;
49
+
50
+ &::before {
51
+ content: "";
52
+ position: absolute;
53
+ inset: auto 0 -2px 0;
54
+ height: 1px;
55
+ background: linear-gradient(
56
+ 90deg,
57
+ transparent,
58
+ color-mix(in srgb, var(--viking-accent) 35%, transparent),
59
+ transparent
60
+ );
61
+ opacity: 0.4;
62
+ }
32
63
  }
33
64
 
34
65
  @media (min-width: 960px) {
@@ -42,6 +73,20 @@
42
73
  display: flex;
43
74
  flex-direction: column;
44
75
  gap: var(--viking-space-3);
76
+ position: relative;
77
+
78
+ &::after {
79
+ content: "";
80
+ position: absolute;
81
+ top: -10px;
82
+ left: 0;
83
+ width: 22px;
84
+ height: 14px;
85
+ border-top: 1px solid color-mix(in srgb, var(--viking-accent) 40%, transparent);
86
+ border-left: 1px solid color-mix(in srgb, var(--viking-accent) 24%, transparent);
87
+ opacity: 0.5;
88
+ pointer-events: none;
89
+ }
45
90
  }
46
91
 
47
92
  .showcase-hero-badge {
@@ -54,6 +99,18 @@
54
99
  border-radius: var(--viking-radius-pill);
55
100
  background: var(--viking-surface);
56
101
  box-shadow: var(--viking-shadow-sm);
102
+ position: relative;
103
+
104
+ &::after {
105
+ content: "";
106
+ position: absolute;
107
+ left: 1px;
108
+ right: 1px;
109
+ top: 0;
110
+ height: 1px;
111
+ background: color-mix(in srgb, var(--viking-accent) 35%, transparent);
112
+ opacity: 0.55;
113
+ }
57
114
  }
58
115
 
59
116
  .showcase-hero-badge-dot {
@@ -71,10 +128,12 @@
71
128
  @keyframes showcasePulseDot {
72
129
  0%,
73
130
  100% {
74
- box-shadow: 0 0 0 0 color-mix(in srgb, var(--viking-accent) 60%, transparent);
131
+ box-shadow: 0 0 0 0
132
+ color-mix(in srgb, var(--viking-accent) 60%, transparent);
75
133
  }
76
134
  50% {
77
- box-shadow: 0 0 0 6px color-mix(in srgb, var(--viking-accent) 0%, transparent);
135
+ box-shadow: 0 0 0 6px
136
+ color-mix(in srgb, var(--viking-accent) 0%, transparent);
78
137
  }
79
138
  }
80
139
 
@@ -88,7 +147,6 @@
88
147
  margin: 0;
89
148
  font-size: clamp(2rem, 4.5vw, 3rem);
90
149
  font-weight: var(--viking-font-weight-bold, 800);
91
- line-height: var(--viking-line-height-tight);
92
150
  letter-spacing: var(--viking-letter-spacing-tight);
93
151
  color: var(--viking-text);
94
152
  }
@@ -113,10 +171,15 @@
113
171
  gap: var(--viking-space-2);
114
172
  position: relative;
115
173
  overflow: hidden;
174
+ border: 1px solid var(--viking-border);
175
+ border-radius: var(--viking-radius-lg);
176
+ padding: var(--viking-space-2);
177
+ background: var(--viking-surface);
178
+ box-shadow: var(--viking-shadow-sm);
116
179
  }
117
180
 
118
181
  .showcase-hero-panel::before {
119
- content: '';
182
+ content: "";
120
183
  position: absolute;
121
184
  inset: 0 0 auto;
122
185
  height: 1px;
@@ -127,6 +190,7 @@
127
190
  transparent
128
191
  );
129
192
  pointer-events: none;
193
+ opacity: 0.7;
130
194
  }
131
195
 
132
196
  /* ── Toolbar ── */
@@ -155,7 +219,9 @@
155
219
  /* ── Category bar (sticky horizontal nav) ── */
156
220
  .showcase-category-bar {
157
221
  position: sticky;
158
- top: calc(var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px));
222
+ top: calc(
223
+ var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px)
224
+ );
159
225
  z-index: 40;
160
226
  border-block: 1px solid var(--viking-border);
161
227
  background: color-mix(in srgb, var(--viking-bg) 94%, transparent);
@@ -203,7 +269,11 @@
203
269
 
204
270
  .showcase-category-chip.is-active {
205
271
  border-color: var(--viking-accent);
206
- background: color-mix(in srgb, var(--viking-accent) 10%, var(--viking-surface));
272
+ background: color-mix(
273
+ in srgb,
274
+ var(--viking-accent) 10%,
275
+ var(--viking-surface)
276
+ );
207
277
  color: var(--viking-accent);
208
278
  }
209
279
 
@@ -211,10 +281,13 @@
211
281
  .showcase-category {
212
282
  display: flex;
213
283
  flex-direction: column;
214
- gap: var(--viking-space-3);
215
- padding: var(--viking-space-4) 0;
284
+ gap: var(--viking-space-4);
285
+ padding: var(--viking-space-6) 0;
216
286
  border-bottom: 1px solid var(--viking-border);
217
- scroll-margin-top: calc(var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) + 56px);
287
+ scroll-margin-top: calc(
288
+ var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) +
289
+ 56px
290
+ );
218
291
  }
219
292
 
220
293
  .showcase-category:last-child {
@@ -224,8 +297,8 @@
224
297
  .showcase-category-header {
225
298
  display: flex;
226
299
  flex-direction: column;
227
- gap: var(--viking-space-1);
228
- padding-bottom: var(--viking-space-2);
300
+ gap: var(--viking-space-2);
301
+ padding-bottom: var(--viking-space-3);
229
302
  border-bottom: 1px solid var(--viking-border-subtle);
230
303
  }
231
304
 
@@ -241,20 +314,29 @@
241
314
  flex-direction: column;
242
315
  gap: var(--viking-space-4);
243
316
  padding-block: var(--viking-space-5);
317
+ border-top: 1px solid color-mix(in srgb, var(--viking-accent) 20%, transparent);
244
318
  border-bottom: 1px solid var(--viking-border);
245
- scroll-margin-top: calc(var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) + 56px);
319
+ scroll-margin-top: calc(
320
+ var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) +
321
+ 56px
322
+ );
246
323
  position: relative;
247
324
  }
248
325
 
249
326
  .showcase-section::after {
250
- content: '';
327
+ content: "";
251
328
  position: absolute;
252
329
  top: 0;
253
330
  left: 50%;
254
331
  transform: translateX(-50%);
255
332
  width: 80px;
256
333
  height: 1px;
257
- background: linear-gradient(90deg, transparent, var(--viking-accent), transparent);
334
+ background: linear-gradient(
335
+ 90deg,
336
+ transparent,
337
+ var(--viking-accent),
338
+ transparent
339
+ );
258
340
  opacity: 0.25;
259
341
  }
260
342
 
@@ -303,9 +385,12 @@
303
385
  .component-showcase-card {
304
386
  display: flex;
305
387
  flex-direction: column;
306
- gap: var(--viking-space-2);
388
+ gap: var(--viking-space-3);
307
389
  padding: var(--viking-card-padding);
308
- scroll-margin-top: calc(var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) + 56px);
390
+ scroll-margin-top: calc(
391
+ var(--viking-navbar-height, 64px) + var(--showcase-subnav-height, 52px) +
392
+ 56px
393
+ );
309
394
  transition:
310
395
  transform var(--viking-duration-normal) var(--viking-ease-out),
311
396
  border-color var(--viking-duration-normal) var(--viking-ease-out),
@@ -357,10 +442,14 @@
357
442
 
358
443
  .component-showcase-preview {
359
444
  padding: var(--viking-space-3);
360
- background: color-mix(in srgb, var(--viking-bg) 30%, var(--viking-surface-alt));
445
+ background: color-mix(
446
+ in srgb,
447
+ var(--viking-bg) 30%,
448
+ var(--viking-surface-alt)
449
+ );
361
450
  border: 1px solid var(--viking-border-subtle);
362
451
  border-radius: var(--viking-radius-lg);
363
- min-height: 5rem;
452
+ min-height: 7rem;
364
453
  display: flex;
365
454
  align-items: center;
366
455
  justify-content: center;
@@ -369,14 +458,18 @@
369
458
  }
370
459
 
371
460
  .component-showcase-preview::before {
372
- content: '';
461
+ content: "";
373
462
  position: absolute;
374
463
  inset: 0 0 auto;
375
464
  height: 1px;
376
465
  background: linear-gradient(
377
466
  90deg,
378
467
  transparent,
379
- color-mix(in srgb, var(--viking-metallic-200, var(--viking-border)) 22%, transparent),
468
+ color-mix(
469
+ in srgb,
470
+ var(--viking-metallic-200, var(--viking-border)) 22%,
471
+ transparent
472
+ ),
380
473
  transparent
381
474
  );
382
475
  pointer-events: none;
@@ -401,7 +494,11 @@
401
494
  .component-framework-chip {
402
495
  padding: var(--viking-space-half) var(--viking-space-1);
403
496
  border-radius: var(--viking-radius-sm);
404
- background: color-mix(in srgb, var(--viking-accent) 8%, var(--viking-surface-alt));
497
+ background: color-mix(
498
+ in srgb,
499
+ var(--viking-accent) 8%,
500
+ var(--viking-surface-alt)
501
+ );
405
502
  border: 1px solid color-mix(in srgb, var(--viking-accent) 15%, transparent);
406
503
  font-size: var(--viking-font-size-2xs, var(--viking-font-size-xs));
407
504
  font-weight: var(--viking-font-weight-medium);
@@ -654,7 +751,8 @@
654
751
  height: var(--viking-space-1);
655
752
  border-radius: 50%;
656
753
  background: var(--viking-accent);
657
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--viking-accent) 30%, transparent);
754
+ box-shadow: 0 0 0 2px
755
+ color-mix(in srgb, var(--viking-accent) 30%, transparent);
658
756
  }
659
757
 
660
758
  .landing-hero-actions {
@@ -666,7 +764,7 @@
666
764
  .landing-stats {
667
765
  display: grid;
668
766
  grid-template-columns: repeat(2, 1fr);
669
- gap: var(--viking-space-2);
767
+ gap: var(--viking-space-3);
670
768
  }
671
769
 
672
770
  @media (min-width: 640px) {
@@ -676,7 +774,7 @@
676
774
  }
677
775
 
678
776
  .landing-stat {
679
- padding: var(--viking-space-2);
777
+ padding: var(--viking-card-padding-compact);
680
778
  border: 1px solid var(--viking-border);
681
779
  border-radius: var(--viking-radius);
682
780
  background: var(--viking-surface-recipe, var(--viking-surface));
@@ -738,7 +836,7 @@
738
836
  }
739
837
 
740
838
  .landing-preview-panel::before {
741
- content: '';
839
+ content: "";
742
840
  position: absolute;
743
841
  inset: 0 0 auto 0;
744
842
  height: 1px;
@@ -754,7 +852,7 @@
754
852
  .landing-preview-form {
755
853
  display: flex;
756
854
  flex-direction: column;
757
- gap: var(--viking-space-2);
855
+ gap: var(--viking-space-3);
758
856
  }
759
857
 
760
858
  .landing-preview-toolbar {
@@ -766,7 +864,7 @@
766
864
  .landing-preview-grid {
767
865
  display: grid;
768
866
  grid-template-columns: 1fr;
769
- gap: var(--viking-space-2);
867
+ gap: var(--viking-space-3);
770
868
  }
771
869
 
772
870
  @media (min-width: 560px) {
@@ -965,7 +1063,11 @@
965
1063
  gap: var(--viking-space-1);
966
1064
  padding: var(--viking-space-2);
967
1065
  border-bottom: 1px solid var(--viking-border);
968
- background: color-mix(in srgb, var(--viking-bg) 26%, var(--viking-surface-raised));
1066
+ background: color-mix(
1067
+ in srgb,
1068
+ var(--viking-bg) 26%,
1069
+ var(--viking-surface-raised)
1070
+ );
969
1071
  }
970
1072
 
971
1073
  .showcase-search-icon {