@24vlh/vds 0.1.2 → 0.1.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 (35) hide show
  1. package/dist/components/accordion.css +170 -170
  2. package/dist/components/authoring.css +332 -332
  3. package/dist/components/buttons.css +683 -683
  4. package/dist/components/charts.css +502 -502
  5. package/dist/components/command.css +520 -520
  6. package/dist/components/content-blocks.css +944 -944
  7. package/dist/components/doc-block.css +782 -782
  8. package/dist/components/feedback.css +657 -657
  9. package/dist/components/flows.css +1101 -1101
  10. package/dist/components/forms-advanced.css +462 -462
  11. package/dist/components/forms.css +627 -1831
  12. package/dist/components/forms.min.css +1 -1
  13. package/dist/components/header-footer.css +348 -348
  14. package/dist/components/hero.css +498 -498
  15. package/dist/components/icons.css +937 -937
  16. package/dist/components/icons.min.css +1 -1
  17. package/dist/components/navigation.css +900 -900
  18. package/dist/components/overlays.css +498 -498
  19. package/dist/components/sections.css +450 -450
  20. package/dist/components/skeleton.css +385 -385
  21. package/dist/components/tables.css +591 -591
  22. package/dist/components/tabs.css +307 -307
  23. package/dist/components/toasts.css +421 -421
  24. package/dist/components/tooltips-popovers.css +447 -447
  25. package/dist/components/typography.css +250 -250
  26. package/dist/components/utilities.css +3433 -3433
  27. package/dist/core.css +866 -866
  28. package/dist/identity.css +266 -266
  29. package/dist/themes/carbon.css +658 -658
  30. package/dist/themes/graphite.css +658 -658
  31. package/dist/themes/navy.css +657 -657
  32. package/dist/themes/slate.css +659 -659
  33. package/dist/vds.css +19009 -20312
  34. package/dist/vds.min.css +1 -1
  35. package/package.json +3 -2
@@ -1,658 +1,658 @@
1
- /************************************************************
2
- * VLAH DESIGN SYSTEM (VDS) - Carbon Theme
3
- *
4
- * Responsibilities:
5
- * - Provide full light and dark palettes for the Carbon identity
6
- * - Map brand, neutral, and semantic colours into VDS tokens
7
- * for text, surfaces, borders, icons, overlays, and states
8
- * - Supply extended theme tokens for tables, hero, typography,
9
- * code, focus rings, and selection behaviour
10
- * - Ensure structural parity between light and dark modes so
11
- * components can switch themes without changing logic
12
- *
13
- * System Notes:
14
- * - Pure token layer: no layout or component rules
15
- * - Exposed under :root[data-theme="carbon-light" | "carbon-dark"]
16
- * - Must be loaded after primitives.css and before components
17
- * - All components are expected to consume these tokens only,
18
- * never hard-coded HEX values
19
- ************************************************************/
20
-
21
- /* ---------------------------------------------------------
22
- CARBON - LIGHT THEME
23
- --------------------------------------------------------- */
24
-
25
- :root[data-theme="carbon-light"] {
26
- /* Core brand */
27
- --color-brand-ink: #0E1113;
28
- --color-brand-accent: #2BA6A6;
29
-
30
- /* Backgrounds */
31
- --color-bg: #F5F7F7;
32
- --color-bg-soft: #EDF1F1;
33
- --color-bg-elevated: #FFFFFF;
34
-
35
- /* Surfaces */
36
- --color-surface: #FFFFFF;
37
- --color-surface-subtle: #EEF2F2;
38
- --color-surface-hover: #F0F3F3;
39
-
40
- /* Borders */
41
- --color-border-subtle: #D0D7D8;
42
- --color-border-strong: #A0ABAC;
43
-
44
- /* Text */
45
- --color-text: #0E1113;
46
- --color-text-muted: #4C5558;
47
- --color-text-soft: #7A8689;
48
- --color-text-on-soft: #0E1113;
49
- --color-text-on-strong: #F5F7F7;
50
-
51
- /* Icons */
52
- --color-icon-muted: #4C5558;
53
- --color-icon-strong: #0E1113;
54
- --color-icon-on-accent: #0E1113;
55
-
56
- /* Shadows */
57
- --shadow-1: 0 8px 20px rgba(14, 17, 19, 0.07);
58
- --shadow-2: 0 10px 30px rgba(14, 17, 19, 0.12);
59
- --shadow-3: 0 16px 40px rgba(14, 17, 19, 0.18);
60
-
61
- /* Accent */
62
- --color-accent: #2BA6A6;
63
- --color-accent-soft: #BFDCDC;
64
- --color-accent-strong: #218383;
65
- --color-on-accent: #0E1113;
66
- --color-accent-soft-hover: #D2E6E6;
67
-
68
- /* Mono */
69
- --color-mono: #505e65;
70
- --color-mono-soft: #274f65;
71
- --color-mono-strong: #080f14;
72
- --color-on-mono: #dddddd;
73
- --color-mono-soft-hover: #142e3e;
74
-
75
- /* States */
76
- --color-success: #2E8F7A;
77
- --color-success-soft: #E6F4F1;
78
- --color-success-strong: #237260;
79
- --color-on-success: #FFFFFF;
80
-
81
- --color-info: #2B7F9E;
82
- --color-info-soft: #E6F1F7;
83
- --color-info-strong: #215F77;
84
- --color-on-info: #FFFFFF;
85
-
86
- --color-warning: #C69932;
87
- --color-warning-soft: #FBF4E6;
88
- --color-warning-strong: #9A7725;
89
- --color-on-warning: #0E1113;
90
-
91
- --color-danger: #912839;
92
- --color-danger-soft: #F8EBED;
93
- --color-danger-strong: #731F2D;
94
- --color-on-danger: #FFFFFF;
95
-
96
- --color-error: #912839;
97
- --color-error-soft: #F8EBED;
98
- --color-error-strong: #731F2D;
99
- --color-on-error: #FFFFFF;
100
-
101
- /* Neutral */
102
- --color-muted-bg: #E2E7E7;
103
- --color-muted-border: #D0D7D8;
104
-
105
- /* Header / footer */
106
- --color-header-bg: #F5F7F7;
107
- --color-header-border: #D0D7D8;
108
- --color-footer-bg: #0E1113;
109
- --color-footer-text: #F5F7F7;
110
-
111
- /* Logo integration */
112
- --color-logo-ink: #0E1113;
113
- --color-logo-accent: #2BA6A6;
114
- --color-logo-mono: #000000;
115
- --color-logo-ink-inverse: #F5F7F7;
116
- --color-logo-accent-inverse: #2BA6A6;
117
- --color-logo-footer-ink: var(--color-footer-text);
118
- --color-logo-footer-accent: var(--color-brand-accent);
119
-
120
- /* Links */
121
- --link-text: #2BA6A6;
122
- --link-text-hover: #218383;
123
- --link-text-active: #0E1113;
124
-
125
- /* Hero translucency */
126
- --color-surface-translucent-strong: rgba(255, 255, 255, 0.28);
127
-
128
- /* Forms */
129
- --color-placeholder: rgba(0, 0, 0, 0.30);
130
- --slider-track-bg: rgba(210, 215, 216, 0.22);
131
- --slider-thumb-bg: #2BA6A6;
132
-
133
- /* Overlay backdrops */
134
- --overlay-backdrop-default: rgba(0, 0, 0, 0.45);
135
- --overlay-backdrop-light: rgba(0, 0, 0, 0.25);
136
- --overlay-backdrop-heavy: rgba(0, 0, 0, 0.60);
137
- --overlay-backdrop-loading: rgba(0, 0, 0, 0.60);
138
-
139
- /* Tables */
140
- --color-surface-soft: rgba(14, 17, 19, 0.05);
141
-
142
- /* Table trend + rows */
143
- --table-trend-up: #2E8F7A;
144
- --table-trend-down: #912839;
145
- --table-trend-flat: #7A8689;
146
-
147
- --table-row-good-bg: #D4EDE7;
148
- --table-row-bad-bg: #F0D9DD;
149
- --table-row-warning-bg: #F3E5C9;
150
- --table-row-info-bg: #D5E5F0;
151
- --table-row-muted-bg: #E2E7E7;
152
- --table-row-strange-bg: #D4F1F0;
153
- --table-row-flagged-bg: #F0D9DD;
154
- --table-row-curious-bg: #EEF2F2;
155
-
156
- --table-row-good-text: #0E1113;
157
- --table-row-bad-text: #0E1113;
158
- --table-row-warning-text: #0E1113;
159
- --table-row-info-text: #0E1113;
160
- --table-row-muted-text: #4C5558;
161
- --table-row-strange-text: #0E1113;
162
- --table-row-flagged-text: #731F2D;
163
- --table-row-curious-text: #0E1113;
164
-
165
- --table-row-flagged-border: #912839;
166
- --table-row-curious-border: #2BA6A6;
167
-
168
- /* Code */
169
- --code-bg: #EEF2F2;
170
- --code-border: #D0D7D8;
171
- --code-inline-bg: rgba(0, 0, 0, 0.04);
172
- --code-inline-border: rgba(0, 0, 0, 0.18);
173
-
174
- /* Typography */
175
- --figure-caption-color: #4C5558;
176
- --code-block-bg: #EEF2F2;
177
- --footnote-color: #5A6467;
178
-
179
- /* Blockquote */
180
- --blockquote-border: #D0D7D8;
181
- --blockquote-text: #4C5558;
182
-
183
- /* Selection */
184
- --color-selection-bg: rgba(43, 166, 166, 0.35);
185
- --color-selection-text: #0E1113;
186
-
187
- /* Syntax highlight */
188
- --code-syntax-keyword: #218383;
189
- --code-syntax-string: #237260;
190
- --code-syntax-number: #215F77;
191
- --code-syntax-operator: #0E1113;
192
- --code-syntax-comment: #7A8689;
193
- --code-syntax-constant: #2BA6A6;
194
- --code-syntax-function: #218383;
195
- --code-syntax-variable: #0E1113;
196
-
197
- /* SEMANTIC STRONG STACKS */
198
- --semantic-info-bg: #E6F1F7;
199
- --semantic-info-border: #3A8FB0;
200
- --semantic-info-text: #215F77;
201
-
202
- --semantic-warning-bg: #FBF4E6;
203
- --semantic-warning-border: #D1A545;
204
- --semantic-warning-text: #9A7725;
205
-
206
- --semantic-success-bg: #E6F4F1;
207
- --semantic-success-border: #39A88B;
208
- --semantic-success-text: #237260;
209
-
210
- --semantic-danger-bg: #F8EBED;
211
- --semantic-danger-border: #A63A4A;
212
- --semantic-danger-text: #731F2D;
213
-
214
- --semantic-error-bg: #F8EBED;
215
- --semantic-error-border: #A63A4A;
216
- --semantic-error-text: #731F2D;
217
-
218
- /* Strong variants */
219
- --semantic-error-bg-strong: #F4DADF;
220
- --semantic-error-border-strong: #A63A4A;
221
- --semantic-error-text-strong: #731F2D;
222
-
223
- --semantic-warning-bg-strong: #F3E2BF;
224
- --semantic-warning-border-strong: #D1A545;
225
- --semantic-warning-text-strong: #9A7725;
226
-
227
- --semantic-success-bg-strong: #D8EEE7;
228
- --semantic-success-border-strong: #39A88B;
229
- --semantic-success-text-strong: #237260;
230
-
231
- --semantic-info-bg-strong: #D7E6F2;
232
- --semantic-info-border-strong: #3A8FB0;
233
- --semantic-info-text-strong: #215F77;
234
-
235
- /* HERO ERROR (light) */
236
- --hero-error-bg: #EEF2F2;
237
- --hero-error-border: #912839;
238
- --hero-error-banner-bg: #EEF2F2;
239
- --hero-error-banner-border: #912839;
240
- --hero-error-title: #912839;
241
-
242
- --hero-trend-up: #2E8F7A;
243
- --hero-trend-down: #912839;
244
- --hero-accent-line: #2BA6A6;
245
-
246
- /* ACCENT SURFACES (light) */
247
- --accent-soft-surface: #F4F7F8;
248
- --accent-soft-surface-strong: #E1E7EA;
249
- --accent-soft-border: #2BA6A6;
250
- --accent-soft-shadow: rgba(43, 166, 166, 0.25);
251
- --accent-soft-on: #0E1113;
252
-
253
- /* INFO SURFACES */
254
- --info-soft-surface: #E6F1F7;
255
- --info-soft-border: #2B7F9E;
256
- --info-soft-on: #0E1113;
257
-
258
- /* WARNING SURFACES */
259
- --warning-soft-surface: #FBF4E6;
260
- --warning-soft-border: #C69932;
261
- --warning-soft-on: #0E1113;
262
-
263
- /* DANGER SURFACES */
264
- --danger-soft-surface: #F8EBED;
265
- --danger-soft-border: #912839;
266
- --danger-soft-on: #731F2D;
267
-
268
- /* DOC BLOCK */
269
- --doc-block-action-hover-bg: #E5E8E9;
270
- --doc-block-action-hover-border: var(--color-border-strong);
271
- --doc-block-action-hover-text: var(--color-text);
272
-
273
- /* BUTTON SOFT */
274
- --button-soft-border: rgba(0, 0, 0, 0.06);
275
- --button-soft-border-hover: rgba(0, 0, 0, 0.12);
276
- --button-soft-text: var(--color-text);
277
-
278
- /* OUTLINE BUTTON HOVERS */
279
- --button-outline-accent-hover-bg: rgba(43, 166, 166, 0.12);
280
- --button-outline-accent-hover-border: var(--color-accent-strong);
281
-
282
- --button-outline-danger-hover-bg: rgba(145, 40, 57, 0.10);
283
- --button-outline-danger-hover-border: var(--color-danger-strong);
284
-
285
- --button-outline-info-hover-bg: rgba(43, 127, 158, 0.10);
286
- --button-outline-info-hover-border: var(--color-info-strong);
287
-
288
- --button-outline-success-hover-bg: rgba(46, 143, 122, 0.12);
289
- --button-outline-success-hover-border: var(--color-success-strong);
290
-
291
- --button-outline-warning-hover-bg: rgba(198, 153, 50, 0.14);
292
- --button-outline-warning-hover-border: var(--color-warning-strong);
293
-
294
- /* BRAND SECTIONS */
295
- --section-brand-eyebrow: #000000;
296
- --section-brand-subtitle: #000000;
297
- --section-brand-title: #0E1113;
298
- --section-brand-body: #0E1113;
299
- --section-brand-metric-label: #4C5558;
300
- --section-brand-metric-value: #0E1113;
301
-
302
- --section-brand-accent-bg: radial-gradient(circle at top left,
303
- rgba(199, 204, 212, 0.25),
304
- transparent),
305
- radial-gradient(circle at bottom right,
306
- rgba(199, 204, 212, 0.35),
307
- transparent);
308
-
309
- /* Success extended */
310
- --success-soft-surface-strong: #D8EEE7;
311
- --color-success-soft-hover: #D8EEE7;
312
- --success-soft-surface: #E6F4F1;
313
- --success-soft-border: #2E8F7A;
314
- --success-soft-on: #0E1113;
315
-
316
- /* Warning extended */
317
- --warning-soft-surface-strong: #F3E2BF;
318
- --color-warning-soft-hover: #F3E2BF;
319
-
320
- /* Info extended */
321
- --info-soft-surface-strong: #D7E6F2;
322
- --color-info-soft-hover: #D7E6F2;
323
-
324
- /* Danger extended */
325
- --danger-soft-surface-strong: #F4DADF;
326
- --color-danger-soft-hover: #F4DADF;
327
-
328
- /* Hero */
329
- --hero-trend-neutral: var(--color-text-muted);
330
- --hero-error-text: var(--semantic-error-text-strong, var(--color-danger-strong));
331
-
332
- --hero-metric-bg: var(--color-surface-subtle);
333
-
334
- --flow-zebra-bg: var(--color-surface-subtle);
335
- --flow-zebra-bg-alt: var(--color-muted-bg);
336
-
337
- --focus-ring-color: #2BA6A6;
338
- }
339
-
340
- /* ---------------------------------------------------------
341
- CARBON - DARK THEME
342
- Inverts background/text, preserves hierarchy.
343
- --------------------------------------------------------- */
344
-
345
- :root[data-theme="carbon-dark"] {
346
- /* Core brand */
347
- --color-brand-ink: #F5F7F7;
348
- --color-brand-accent: #2BA6A6;
349
-
350
- /* Backgrounds */
351
- --color-bg: #0E1113;
352
- --color-bg-soft: #161A1C;
353
- --color-bg-elevated: #1C2123;
354
-
355
- /* Surfaces */
356
- --color-surface: #181C1E;
357
- --color-surface-subtle: #1F2426;
358
- --color-surface-hover: #262C2E;
359
-
360
- /* Borders */
361
- --color-border-subtle: #353A3C;
362
- --color-border-strong: #4A5153;
363
-
364
- /* Text */
365
- --color-text: #F5F7F7;
366
- --color-text-muted: #C5CDCE;
367
- --color-text-soft: #8F9798;
368
- --color-text-on-soft: #F5F7F7;
369
- --color-text-on-strong: #F5F7F7;
370
-
371
- /* Icons */
372
- --color-icon-muted: #C5CDCE;
373
- --color-icon-strong: #F5F7F7;
374
- --color-icon-on-accent: #0E1113;
375
-
376
- /* Shadows */
377
- --shadow-1: 0 8px 20px rgba(0, 0, 0, 0.45);
378
- --shadow-2: 0 10px 30px rgba(0, 0, 0, 0.55);
379
- --shadow-3: 0 16px 40px rgba(0, 0, 0, 0.65);
380
-
381
- /* Accent */
382
- --color-accent: #2BA6A6;
383
- --color-accent-soft: #1C2D2D;
384
- --color-accent-strong: #218383;
385
- --color-on-accent: #0E1113;
386
- --color-accent-soft-hover: #224141;
387
-
388
- /* Mono */
389
- --color-mono: #505e65;
390
- --color-mono-soft: #0B1214;
391
- --color-mono-strong: #2D5A63;
392
- --color-on-mono: #E5E8EB;
393
- --color-mono-soft-hover: #1A2C30;
394
-
395
- /* States */
396
- --color-success: #39A88B;
397
- --color-success-soft: #0F2622;
398
- --color-success-strong: #2E8F7A;
399
- --color-on-success: #F5F7F7;
400
-
401
- --color-info: #3A8FB0;
402
- --color-info-soft: #0E232E;
403
- --color-info-strong: #2B7F9E;
404
- --color-on-info: #F5F7F7;
405
-
406
- --color-warning: #D1A545;
407
- --color-warning-soft: #2A2214;
408
- --color-warning-strong: #C69932;
409
- --color-on-warning: #F5F7F7;
410
-
411
- --color-danger: #A63A4A;
412
- --color-danger-soft: #2A1518;
413
- --color-danger-strong: #912839;
414
- --color-on-danger: #F5F7F7;
415
-
416
- --color-error: #A63A4A;
417
- --color-error-soft: #2A1518;
418
- --color-error-strong: #912839;
419
- --color-on-error: #F5F7F7;
420
-
421
- /* Neutral */
422
- --color-muted-bg: #1A1E20;
423
- --color-muted-border: #353A3C;
424
-
425
- /* Header / footer */
426
- --color-header-bg: #0E1113;
427
- --color-header-border: #353A3C;
428
- --color-footer-bg: #08090A;
429
- --color-footer-text: #F5F7F7;
430
-
431
- /* Logo integration */
432
- --color-logo-ink: #F5F7F7;
433
- --color-logo-accent: #2BA6A6;
434
- --color-logo-mono: #FFFFFF;
435
- --color-logo-ink-inverse: #F5F7F7;
436
- --color-logo-accent-inverse: #2BA6A6;
437
- --color-logo-footer-ink: var(--color-footer-text);
438
- --color-logo-footer-accent: var(--color-brand-accent);
439
-
440
- /* Links */
441
- --link-text: #3AC0C0;
442
- --link-text-hover: #2BA6A6;
443
- --link-text-active: #F5F7F7;
444
-
445
- /* Translucent surface */
446
- --color-surface-translucent-strong: rgba(255, 255, 255, 0.20);
447
-
448
- /* Forms */
449
- --color-placeholder: rgba(245, 247, 247, 0.30);
450
- --slider-track-bg: rgba(245, 247, 247, 0.16);
451
- --slider-thumb-bg: #2BA6A6;
452
-
453
- /* Overlay backdrops */
454
- --overlay-backdrop-default: rgba(0, 0, 0, 0.45);
455
- --overlay-backdrop-light: rgba(0, 0, 0, 0.25);
456
- --overlay-backdrop-heavy: rgba(0, 0, 0, 0.60);
457
- --overlay-backdrop-loading: rgba(0, 0, 0, 0.60);
458
-
459
- /* Tables */
460
- --color-surface-soft: rgba(255, 255, 255, 0.06);
461
-
462
- /* Table trend + rows */
463
- --table-trend-up: #39A88B;
464
- --table-trend-down: #A63A4A;
465
- --table-trend-flat: #8F9798;
466
-
467
- --table-row-good-bg: #0F2622;
468
- --table-row-bad-bg: #2A1518;
469
- --table-row-warning-bg: #2A2214;
470
- --table-row-info-bg: #0E232E;
471
- --table-row-muted-bg: #1A1E20;
472
- --table-row-strange-bg: #102F2F;
473
- --table-row-flagged-bg: #2A1518;
474
- --table-row-curious-bg: #161A1C;
475
-
476
- --table-row-good-text: #F5F7F7;
477
- --table-row-bad-text: #F5F7F7;
478
- --table-row-warning-text: #F5F7F7;
479
- --table-row-info-text: #F5F7F7;
480
- --table-row-muted-text: #C5CDCE;
481
- --table-row-strange-text: #F5F7F7;
482
- --table-row-flagged-text: #F5F7F7;
483
- --table-row-curious-text: #F5F7F7;
484
-
485
- --table-row-flagged-border: #A63A4A;
486
- --table-row-curious-border: #2BA6A6;
487
-
488
- /* Code */
489
- --code-bg: #1F2426;
490
- --code-border: #2D3234;
491
- --code-inline-bg: rgba(255, 255, 255, 0.09);
492
- --code-inline-border: rgba(255, 255, 255, 0.18);
493
-
494
- /* Typography */
495
- --figure-caption-color: #C1C7C8;
496
- --code-block-bg: #141617;
497
- --footnote-color: #8F9798;
498
-
499
- /* Blockquote */
500
- --blockquote-border: #2D3234;
501
- --blockquote-text: #C5CDCE;
502
-
503
- /* Selection */
504
- --color-selection-bg: rgba(43, 166, 166, 0.35);
505
- --color-selection-text: #F5F7F7;
506
-
507
- /* Syntax highlight */
508
- --code-syntax-keyword: #3AC0C0;
509
- --code-syntax-string: #2E8F7A;
510
- --code-syntax-number: #2B7F9E;
511
- --code-syntax-operator: #F5F7F7;
512
- --code-syntax-comment: #8F9798;
513
- --code-syntax-constant: #2BA6A6;
514
- --code-syntax-function: #3AC0C0;
515
- --code-syntax-variable: #F5F7F7;
516
-
517
- /* SEMANTIC STRONG STACKS */
518
- --semantic-info-bg: #0E232E;
519
- --semantic-info-border: #3A8FB0;
520
- --semantic-info-text: #2B7F9E;
521
-
522
- --semantic-warning-bg: #2A2214;
523
- --semantic-warning-border: #D1A545;
524
- --semantic-warning-text: #C69932;
525
-
526
- --semantic-success-bg: #0F2622;
527
- --semantic-success-border: #39A88B;
528
- --semantic-success-text: #2E8F7A;
529
-
530
- --semantic-danger-bg: #2A1518;
531
- --semantic-danger-border: #A63A4A;
532
- --semantic-danger-text: #912839;
533
-
534
- --semantic-error-bg: #2A1518;
535
- --semantic-error-border: #A63A4A;
536
- --semantic-error-text: #912839;
537
-
538
- /* Strong variants */
539
- --semantic-error-bg-strong: #220F12;
540
- --semantic-error-border-strong: #A63A4A;
541
- --semantic-error-text-strong: #B14554;
542
-
543
- --semantic-warning-bg-strong: #262012;
544
- --semantic-warning-border-strong: #D1A545;
545
- --semantic-warning-text-strong: #C69932;
546
-
547
- --semantic-success-bg-strong: #0A1E1B;
548
- --semantic-success-border-strong: #39A88B;
549
- --semantic-success-text-strong: #2E8F7A;
550
-
551
- --semantic-info-bg-strong: #0A1A24;
552
- --semantic-info-border-strong: #3A8FB0;
553
- --semantic-info-text-strong: #2B7F9E;
554
-
555
- /* HERO ERROR (dark) */
556
- --hero-error-bg: #24090C;
557
- --hero-error-border: #7A1F2A;
558
- --hero-error-banner-bg: #24090C;
559
- --hero-error-banner-border: #8A2331;
560
- --hero-error-title: #B14554;
561
-
562
- --hero-trend-up: #39A88B;
563
- --hero-trend-down: #A63A4A;
564
- --hero-accent-line: #2BA6A6;
565
-
566
- /* ACCENT SURFACES (dark) */
567
- --accent-soft-surface: #0F2323;
568
- --accent-soft-surface-strong: #143130;
569
- --accent-soft-border: #2BA6A6;
570
- --accent-soft-shadow: rgba(43, 166, 166, 0.25);
571
- --accent-soft-on: #F5F7F7;
572
-
573
- /* INFO SURFACES */
574
- --info-soft-surface: #0E232E;
575
- --info-soft-border: #3A8FB0;
576
- --info-soft-on: #2B7F9E;
577
-
578
- /* WARNING SURFACES */
579
- --warning-soft-surface: #2A2214;
580
- --warning-soft-border: #D1A545;
581
- --warning-soft-on: #C69932;
582
-
583
- /* DANGER SURFACES */
584
- --danger-soft-surface: #2A1518;
585
- --danger-soft-border: #A63A4A;
586
- --danger-soft-on: #912839;
587
-
588
- /* DOC BLOCK */
589
- --doc-block-action-hover-bg: #2A2F31;
590
- --doc-block-action-hover-border: var(--color-border-strong);
591
- --doc-block-action-hover-text: var(--color-text);
592
-
593
- /* BUTTON SOFT */
594
- --button-soft-border: rgba(255, 255, 255, 0.04);
595
- --button-soft-border-hover: rgba(255, 255, 255, 0.12);
596
- --button-soft-text: var(--color-text);
597
-
598
- /* OUTLINE BUTTON HOVERS */
599
- --button-outline-accent-hover-bg: rgba(43, 166, 166, 0.12);
600
- --button-outline-accent-hover-border: var(--color-accent-strong);
601
-
602
- --button-outline-danger-hover-bg: rgba(166, 58, 74, 0.12);
603
- --button-outline-danger-hover-border: var(--color-danger-strong);
604
-
605
- --button-outline-info-hover-bg: rgba(58, 143, 176, 0.12);
606
- --button-outline-info-hover-border: var(--color-info-strong);
607
-
608
- --button-outline-success-hover-bg: rgba(57, 168, 139, 0.12);
609
- --button-outline-success-hover-border: var(--color-success-strong);
610
-
611
- --button-outline-warning-hover-bg: rgba(209, 165, 69, 0.14);
612
- --button-outline-warning-hover-border: var(--color-warning-strong);
613
-
614
- /* BRAND SECTIONS */
615
- --section-brand-eyebrow: #F5F7F7;
616
- --section-brand-subtitle: #F5F7F7;
617
- --section-brand-title: #FFFFFF;
618
- --section-brand-body: #C5CDCE;
619
- --section-brand-metric-label: #F5F7F7;
620
- --section-brand-metric-value: #FFFFFF;
621
-
622
- --section-brand-accent-bg: radial-gradient(circle at top left,
623
- rgba(43, 166, 166, 0.35),
624
- transparent),
625
- radial-gradient(circle at bottom right,
626
- rgba(43, 166, 166, 0.45),
627
- transparent);
628
-
629
- /* Success extended */
630
- --success-soft-surface-strong: #0A1E1B;
631
- --color-success-soft-hover: #102E29;
632
- --success-soft-surface: #0F2622;
633
- --success-soft-border: #39A88B;
634
- --success-soft-on: #39A88B;
635
-
636
- /* Warning extended */
637
- --warning-soft-surface-strong: #262012;
638
- --color-warning-soft-hover: #322A16;
639
-
640
- /* Info extended */
641
- --info-soft-surface-strong: #0A1A24;
642
- --color-info-soft-hover: #0E2A3A;
643
-
644
- /* Danger extended */
645
- --danger-soft-surface-strong: #220F12;
646
- --color-danger-soft-hover: #2D161B;
647
-
648
- /* Hero */
649
- --hero-trend-neutral: var(--color-text-muted);
650
- --hero-error-text: var(--semantic-error-text-strong, var(--color-danger-strong));
651
-
652
- --hero-metric-bg: var(--color-surface);
653
-
654
- --flow-zebra-bg: var(--color-surface);
655
- --flow-zebra-bg-alt: var(--color-surface-subtle);
656
-
657
- --focus-ring-color: var(--color-accent);
658
- }
1
+ /************************************************************
2
+ * VLAH DESIGN SYSTEM (VDS) - Carbon Theme
3
+ *
4
+ * Responsibilities:
5
+ * - Provide full light and dark palettes for the Carbon identity
6
+ * - Map brand, neutral, and semantic colours into VDS tokens
7
+ * for text, surfaces, borders, icons, overlays, and states
8
+ * - Supply extended theme tokens for tables, hero, typography,
9
+ * code, focus rings, and selection behaviour
10
+ * - Ensure structural parity between light and dark modes so
11
+ * components can switch themes without changing logic
12
+ *
13
+ * System Notes:
14
+ * - Pure token layer: no layout or component rules
15
+ * - Exposed under :root[data-theme="carbon-light" | "carbon-dark"]
16
+ * - Must be loaded after primitives.css and before components
17
+ * - All components are expected to consume these tokens only,
18
+ * never hard-coded HEX values
19
+ ************************************************************/
20
+
21
+ /* ---------------------------------------------------------
22
+ CARBON - LIGHT THEME
23
+ --------------------------------------------------------- */
24
+
25
+ :root[data-theme="carbon-light"] {
26
+ /* Core brand */
27
+ --color-brand-ink: #0E1113;
28
+ --color-brand-accent: #2BA6A6;
29
+
30
+ /* Backgrounds */
31
+ --color-bg: #F5F7F7;
32
+ --color-bg-soft: #EDF1F1;
33
+ --color-bg-elevated: #FFFFFF;
34
+
35
+ /* Surfaces */
36
+ --color-surface: #FFFFFF;
37
+ --color-surface-subtle: #EEF2F2;
38
+ --color-surface-hover: #F0F3F3;
39
+
40
+ /* Borders */
41
+ --color-border-subtle: #D0D7D8;
42
+ --color-border-strong: #A0ABAC;
43
+
44
+ /* Text */
45
+ --color-text: #0E1113;
46
+ --color-text-muted: #4C5558;
47
+ --color-text-soft: #7A8689;
48
+ --color-text-on-soft: #0E1113;
49
+ --color-text-on-strong: #F5F7F7;
50
+
51
+ /* Icons */
52
+ --color-icon-muted: #4C5558;
53
+ --color-icon-strong: #0E1113;
54
+ --color-icon-on-accent: #0E1113;
55
+
56
+ /* Shadows */
57
+ --shadow-1: 0 8px 20px rgba(14, 17, 19, 0.07);
58
+ --shadow-2: 0 10px 30px rgba(14, 17, 19, 0.12);
59
+ --shadow-3: 0 16px 40px rgba(14, 17, 19, 0.18);
60
+
61
+ /* Accent */
62
+ --color-accent: #2BA6A6;
63
+ --color-accent-soft: #BFDCDC;
64
+ --color-accent-strong: #218383;
65
+ --color-on-accent: #0E1113;
66
+ --color-accent-soft-hover: #D2E6E6;
67
+
68
+ /* Mono */
69
+ --color-mono: #505e65;
70
+ --color-mono-soft: #274f65;
71
+ --color-mono-strong: #080f14;
72
+ --color-on-mono: #dddddd;
73
+ --color-mono-soft-hover: #142e3e;
74
+
75
+ /* States */
76
+ --color-success: #2E8F7A;
77
+ --color-success-soft: #E6F4F1;
78
+ --color-success-strong: #237260;
79
+ --color-on-success: #FFFFFF;
80
+
81
+ --color-info: #2B7F9E;
82
+ --color-info-soft: #E6F1F7;
83
+ --color-info-strong: #215F77;
84
+ --color-on-info: #FFFFFF;
85
+
86
+ --color-warning: #C69932;
87
+ --color-warning-soft: #FBF4E6;
88
+ --color-warning-strong: #9A7725;
89
+ --color-on-warning: #0E1113;
90
+
91
+ --color-danger: #912839;
92
+ --color-danger-soft: #F8EBED;
93
+ --color-danger-strong: #731F2D;
94
+ --color-on-danger: #FFFFFF;
95
+
96
+ --color-error: #912839;
97
+ --color-error-soft: #F8EBED;
98
+ --color-error-strong: #731F2D;
99
+ --color-on-error: #FFFFFF;
100
+
101
+ /* Neutral */
102
+ --color-muted-bg: #E2E7E7;
103
+ --color-muted-border: #D0D7D8;
104
+
105
+ /* Header / footer */
106
+ --color-header-bg: #F5F7F7;
107
+ --color-header-border: #D0D7D8;
108
+ --color-footer-bg: #0E1113;
109
+ --color-footer-text: #F5F7F7;
110
+
111
+ /* Logo integration */
112
+ --color-logo-ink: #0E1113;
113
+ --color-logo-accent: #2BA6A6;
114
+ --color-logo-mono: #000000;
115
+ --color-logo-ink-inverse: #F5F7F7;
116
+ --color-logo-accent-inverse: #2BA6A6;
117
+ --color-logo-footer-ink: var(--color-footer-text);
118
+ --color-logo-footer-accent: var(--color-brand-accent);
119
+
120
+ /* Links */
121
+ --link-text: #2BA6A6;
122
+ --link-text-hover: #218383;
123
+ --link-text-active: #0E1113;
124
+
125
+ /* Hero translucency */
126
+ --color-surface-translucent-strong: rgba(255, 255, 255, 0.28);
127
+
128
+ /* Forms */
129
+ --color-placeholder: rgba(0, 0, 0, 0.30);
130
+ --slider-track-bg: rgba(210, 215, 216, 0.22);
131
+ --slider-thumb-bg: #2BA6A6;
132
+
133
+ /* Overlay backdrops */
134
+ --overlay-backdrop-default: rgba(0, 0, 0, 0.45);
135
+ --overlay-backdrop-light: rgba(0, 0, 0, 0.25);
136
+ --overlay-backdrop-heavy: rgba(0, 0, 0, 0.60);
137
+ --overlay-backdrop-loading: rgba(0, 0, 0, 0.60);
138
+
139
+ /* Tables */
140
+ --color-surface-soft: rgba(14, 17, 19, 0.05);
141
+
142
+ /* Table trend + rows */
143
+ --table-trend-up: #2E8F7A;
144
+ --table-trend-down: #912839;
145
+ --table-trend-flat: #7A8689;
146
+
147
+ --table-row-good-bg: #D4EDE7;
148
+ --table-row-bad-bg: #F0D9DD;
149
+ --table-row-warning-bg: #F3E5C9;
150
+ --table-row-info-bg: #D5E5F0;
151
+ --table-row-muted-bg: #E2E7E7;
152
+ --table-row-strange-bg: #D4F1F0;
153
+ --table-row-flagged-bg: #F0D9DD;
154
+ --table-row-curious-bg: #EEF2F2;
155
+
156
+ --table-row-good-text: #0E1113;
157
+ --table-row-bad-text: #0E1113;
158
+ --table-row-warning-text: #0E1113;
159
+ --table-row-info-text: #0E1113;
160
+ --table-row-muted-text: #4C5558;
161
+ --table-row-strange-text: #0E1113;
162
+ --table-row-flagged-text: #731F2D;
163
+ --table-row-curious-text: #0E1113;
164
+
165
+ --table-row-flagged-border: #912839;
166
+ --table-row-curious-border: #2BA6A6;
167
+
168
+ /* Code */
169
+ --code-bg: #EEF2F2;
170
+ --code-border: #D0D7D8;
171
+ --code-inline-bg: rgba(0, 0, 0, 0.04);
172
+ --code-inline-border: rgba(0, 0, 0, 0.18);
173
+
174
+ /* Typography */
175
+ --figure-caption-color: #4C5558;
176
+ --code-block-bg: #EEF2F2;
177
+ --footnote-color: #5A6467;
178
+
179
+ /* Blockquote */
180
+ --blockquote-border: #D0D7D8;
181
+ --blockquote-text: #4C5558;
182
+
183
+ /* Selection */
184
+ --color-selection-bg: rgba(43, 166, 166, 0.35);
185
+ --color-selection-text: #0E1113;
186
+
187
+ /* Syntax highlight */
188
+ --code-syntax-keyword: #218383;
189
+ --code-syntax-string: #237260;
190
+ --code-syntax-number: #215F77;
191
+ --code-syntax-operator: #0E1113;
192
+ --code-syntax-comment: #7A8689;
193
+ --code-syntax-constant: #2BA6A6;
194
+ --code-syntax-function: #218383;
195
+ --code-syntax-variable: #0E1113;
196
+
197
+ /* SEMANTIC STRONG STACKS */
198
+ --semantic-info-bg: #E6F1F7;
199
+ --semantic-info-border: #3A8FB0;
200
+ --semantic-info-text: #215F77;
201
+
202
+ --semantic-warning-bg: #FBF4E6;
203
+ --semantic-warning-border: #D1A545;
204
+ --semantic-warning-text: #9A7725;
205
+
206
+ --semantic-success-bg: #E6F4F1;
207
+ --semantic-success-border: #39A88B;
208
+ --semantic-success-text: #237260;
209
+
210
+ --semantic-danger-bg: #F8EBED;
211
+ --semantic-danger-border: #A63A4A;
212
+ --semantic-danger-text: #731F2D;
213
+
214
+ --semantic-error-bg: #F8EBED;
215
+ --semantic-error-border: #A63A4A;
216
+ --semantic-error-text: #731F2D;
217
+
218
+ /* Strong variants */
219
+ --semantic-error-bg-strong: #F4DADF;
220
+ --semantic-error-border-strong: #A63A4A;
221
+ --semantic-error-text-strong: #731F2D;
222
+
223
+ --semantic-warning-bg-strong: #F3E2BF;
224
+ --semantic-warning-border-strong: #D1A545;
225
+ --semantic-warning-text-strong: #9A7725;
226
+
227
+ --semantic-success-bg-strong: #D8EEE7;
228
+ --semantic-success-border-strong: #39A88B;
229
+ --semantic-success-text-strong: #237260;
230
+
231
+ --semantic-info-bg-strong: #D7E6F2;
232
+ --semantic-info-border-strong: #3A8FB0;
233
+ --semantic-info-text-strong: #215F77;
234
+
235
+ /* HERO ERROR (light) */
236
+ --hero-error-bg: #EEF2F2;
237
+ --hero-error-border: #912839;
238
+ --hero-error-banner-bg: #EEF2F2;
239
+ --hero-error-banner-border: #912839;
240
+ --hero-error-title: #912839;
241
+
242
+ --hero-trend-up: #2E8F7A;
243
+ --hero-trend-down: #912839;
244
+ --hero-accent-line: #2BA6A6;
245
+
246
+ /* ACCENT SURFACES (light) */
247
+ --accent-soft-surface: #F4F7F8;
248
+ --accent-soft-surface-strong: #E1E7EA;
249
+ --accent-soft-border: #2BA6A6;
250
+ --accent-soft-shadow: rgba(43, 166, 166, 0.25);
251
+ --accent-soft-on: #0E1113;
252
+
253
+ /* INFO SURFACES */
254
+ --info-soft-surface: #E6F1F7;
255
+ --info-soft-border: #2B7F9E;
256
+ --info-soft-on: #0E1113;
257
+
258
+ /* WARNING SURFACES */
259
+ --warning-soft-surface: #FBF4E6;
260
+ --warning-soft-border: #C69932;
261
+ --warning-soft-on: #0E1113;
262
+
263
+ /* DANGER SURFACES */
264
+ --danger-soft-surface: #F8EBED;
265
+ --danger-soft-border: #912839;
266
+ --danger-soft-on: #731F2D;
267
+
268
+ /* DOC BLOCK */
269
+ --doc-block-action-hover-bg: #E5E8E9;
270
+ --doc-block-action-hover-border: var(--color-border-strong);
271
+ --doc-block-action-hover-text: var(--color-text);
272
+
273
+ /* BUTTON SOFT */
274
+ --button-soft-border: rgba(0, 0, 0, 0.06);
275
+ --button-soft-border-hover: rgba(0, 0, 0, 0.12);
276
+ --button-soft-text: var(--color-text);
277
+
278
+ /* OUTLINE BUTTON HOVERS */
279
+ --button-outline-accent-hover-bg: rgba(43, 166, 166, 0.12);
280
+ --button-outline-accent-hover-border: var(--color-accent-strong);
281
+
282
+ --button-outline-danger-hover-bg: rgba(145, 40, 57, 0.10);
283
+ --button-outline-danger-hover-border: var(--color-danger-strong);
284
+
285
+ --button-outline-info-hover-bg: rgba(43, 127, 158, 0.10);
286
+ --button-outline-info-hover-border: var(--color-info-strong);
287
+
288
+ --button-outline-success-hover-bg: rgba(46, 143, 122, 0.12);
289
+ --button-outline-success-hover-border: var(--color-success-strong);
290
+
291
+ --button-outline-warning-hover-bg: rgba(198, 153, 50, 0.14);
292
+ --button-outline-warning-hover-border: var(--color-warning-strong);
293
+
294
+ /* BRAND SECTIONS */
295
+ --section-brand-eyebrow: #000000;
296
+ --section-brand-subtitle: #000000;
297
+ --section-brand-title: #0E1113;
298
+ --section-brand-body: #0E1113;
299
+ --section-brand-metric-label: #4C5558;
300
+ --section-brand-metric-value: #0E1113;
301
+
302
+ --section-brand-accent-bg: radial-gradient(circle at top left,
303
+ rgba(199, 204, 212, 0.25),
304
+ transparent),
305
+ radial-gradient(circle at bottom right,
306
+ rgba(199, 204, 212, 0.35),
307
+ transparent);
308
+
309
+ /* Success extended */
310
+ --success-soft-surface-strong: #D8EEE7;
311
+ --color-success-soft-hover: #D8EEE7;
312
+ --success-soft-surface: #E6F4F1;
313
+ --success-soft-border: #2E8F7A;
314
+ --success-soft-on: #0E1113;
315
+
316
+ /* Warning extended */
317
+ --warning-soft-surface-strong: #F3E2BF;
318
+ --color-warning-soft-hover: #F3E2BF;
319
+
320
+ /* Info extended */
321
+ --info-soft-surface-strong: #D7E6F2;
322
+ --color-info-soft-hover: #D7E6F2;
323
+
324
+ /* Danger extended */
325
+ --danger-soft-surface-strong: #F4DADF;
326
+ --color-danger-soft-hover: #F4DADF;
327
+
328
+ /* Hero */
329
+ --hero-trend-neutral: var(--color-text-muted);
330
+ --hero-error-text: var(--semantic-error-text-strong, var(--color-danger-strong));
331
+
332
+ --hero-metric-bg: var(--color-surface-subtle);
333
+
334
+ --flow-zebra-bg: var(--color-surface-subtle);
335
+ --flow-zebra-bg-alt: var(--color-muted-bg);
336
+
337
+ --focus-ring-color: #2BA6A6;
338
+ }
339
+
340
+ /* ---------------------------------------------------------
341
+ CARBON - DARK THEME
342
+ Inverts background/text, preserves hierarchy.
343
+ --------------------------------------------------------- */
344
+
345
+ :root[data-theme="carbon-dark"] {
346
+ /* Core brand */
347
+ --color-brand-ink: #F5F7F7;
348
+ --color-brand-accent: #2BA6A6;
349
+
350
+ /* Backgrounds */
351
+ --color-bg: #0E1113;
352
+ --color-bg-soft: #161A1C;
353
+ --color-bg-elevated: #1C2123;
354
+
355
+ /* Surfaces */
356
+ --color-surface: #181C1E;
357
+ --color-surface-subtle: #1F2426;
358
+ --color-surface-hover: #262C2E;
359
+
360
+ /* Borders */
361
+ --color-border-subtle: #353A3C;
362
+ --color-border-strong: #4A5153;
363
+
364
+ /* Text */
365
+ --color-text: #F5F7F7;
366
+ --color-text-muted: #C5CDCE;
367
+ --color-text-soft: #8F9798;
368
+ --color-text-on-soft: #F5F7F7;
369
+ --color-text-on-strong: #F5F7F7;
370
+
371
+ /* Icons */
372
+ --color-icon-muted: #C5CDCE;
373
+ --color-icon-strong: #F5F7F7;
374
+ --color-icon-on-accent: #0E1113;
375
+
376
+ /* Shadows */
377
+ --shadow-1: 0 8px 20px rgba(0, 0, 0, 0.45);
378
+ --shadow-2: 0 10px 30px rgba(0, 0, 0, 0.55);
379
+ --shadow-3: 0 16px 40px rgba(0, 0, 0, 0.65);
380
+
381
+ /* Accent */
382
+ --color-accent: #2BA6A6;
383
+ --color-accent-soft: #1C2D2D;
384
+ --color-accent-strong: #218383;
385
+ --color-on-accent: #0E1113;
386
+ --color-accent-soft-hover: #224141;
387
+
388
+ /* Mono */
389
+ --color-mono: #505e65;
390
+ --color-mono-soft: #0B1214;
391
+ --color-mono-strong: #2D5A63;
392
+ --color-on-mono: #E5E8EB;
393
+ --color-mono-soft-hover: #1A2C30;
394
+
395
+ /* States */
396
+ --color-success: #39A88B;
397
+ --color-success-soft: #0F2622;
398
+ --color-success-strong: #2E8F7A;
399
+ --color-on-success: #F5F7F7;
400
+
401
+ --color-info: #3A8FB0;
402
+ --color-info-soft: #0E232E;
403
+ --color-info-strong: #2B7F9E;
404
+ --color-on-info: #F5F7F7;
405
+
406
+ --color-warning: #D1A545;
407
+ --color-warning-soft: #2A2214;
408
+ --color-warning-strong: #C69932;
409
+ --color-on-warning: #F5F7F7;
410
+
411
+ --color-danger: #A63A4A;
412
+ --color-danger-soft: #2A1518;
413
+ --color-danger-strong: #912839;
414
+ --color-on-danger: #F5F7F7;
415
+
416
+ --color-error: #A63A4A;
417
+ --color-error-soft: #2A1518;
418
+ --color-error-strong: #912839;
419
+ --color-on-error: #F5F7F7;
420
+
421
+ /* Neutral */
422
+ --color-muted-bg: #1A1E20;
423
+ --color-muted-border: #353A3C;
424
+
425
+ /* Header / footer */
426
+ --color-header-bg: #0E1113;
427
+ --color-header-border: #353A3C;
428
+ --color-footer-bg: #08090A;
429
+ --color-footer-text: #F5F7F7;
430
+
431
+ /* Logo integration */
432
+ --color-logo-ink: #F5F7F7;
433
+ --color-logo-accent: #2BA6A6;
434
+ --color-logo-mono: #FFFFFF;
435
+ --color-logo-ink-inverse: #F5F7F7;
436
+ --color-logo-accent-inverse: #2BA6A6;
437
+ --color-logo-footer-ink: var(--color-footer-text);
438
+ --color-logo-footer-accent: var(--color-brand-accent);
439
+
440
+ /* Links */
441
+ --link-text: #3AC0C0;
442
+ --link-text-hover: #2BA6A6;
443
+ --link-text-active: #F5F7F7;
444
+
445
+ /* Translucent surface */
446
+ --color-surface-translucent-strong: rgba(255, 255, 255, 0.20);
447
+
448
+ /* Forms */
449
+ --color-placeholder: rgba(245, 247, 247, 0.30);
450
+ --slider-track-bg: rgba(245, 247, 247, 0.16);
451
+ --slider-thumb-bg: #2BA6A6;
452
+
453
+ /* Overlay backdrops */
454
+ --overlay-backdrop-default: rgba(0, 0, 0, 0.45);
455
+ --overlay-backdrop-light: rgba(0, 0, 0, 0.25);
456
+ --overlay-backdrop-heavy: rgba(0, 0, 0, 0.60);
457
+ --overlay-backdrop-loading: rgba(0, 0, 0, 0.60);
458
+
459
+ /* Tables */
460
+ --color-surface-soft: rgba(255, 255, 255, 0.06);
461
+
462
+ /* Table trend + rows */
463
+ --table-trend-up: #39A88B;
464
+ --table-trend-down: #A63A4A;
465
+ --table-trend-flat: #8F9798;
466
+
467
+ --table-row-good-bg: #0F2622;
468
+ --table-row-bad-bg: #2A1518;
469
+ --table-row-warning-bg: #2A2214;
470
+ --table-row-info-bg: #0E232E;
471
+ --table-row-muted-bg: #1A1E20;
472
+ --table-row-strange-bg: #102F2F;
473
+ --table-row-flagged-bg: #2A1518;
474
+ --table-row-curious-bg: #161A1C;
475
+
476
+ --table-row-good-text: #F5F7F7;
477
+ --table-row-bad-text: #F5F7F7;
478
+ --table-row-warning-text: #F5F7F7;
479
+ --table-row-info-text: #F5F7F7;
480
+ --table-row-muted-text: #C5CDCE;
481
+ --table-row-strange-text: #F5F7F7;
482
+ --table-row-flagged-text: #F5F7F7;
483
+ --table-row-curious-text: #F5F7F7;
484
+
485
+ --table-row-flagged-border: #A63A4A;
486
+ --table-row-curious-border: #2BA6A6;
487
+
488
+ /* Code */
489
+ --code-bg: #1F2426;
490
+ --code-border: #2D3234;
491
+ --code-inline-bg: rgba(255, 255, 255, 0.09);
492
+ --code-inline-border: rgba(255, 255, 255, 0.18);
493
+
494
+ /* Typography */
495
+ --figure-caption-color: #C1C7C8;
496
+ --code-block-bg: #141617;
497
+ --footnote-color: #8F9798;
498
+
499
+ /* Blockquote */
500
+ --blockquote-border: #2D3234;
501
+ --blockquote-text: #C5CDCE;
502
+
503
+ /* Selection */
504
+ --color-selection-bg: rgba(43, 166, 166, 0.35);
505
+ --color-selection-text: #F5F7F7;
506
+
507
+ /* Syntax highlight */
508
+ --code-syntax-keyword: #3AC0C0;
509
+ --code-syntax-string: #2E8F7A;
510
+ --code-syntax-number: #2B7F9E;
511
+ --code-syntax-operator: #F5F7F7;
512
+ --code-syntax-comment: #8F9798;
513
+ --code-syntax-constant: #2BA6A6;
514
+ --code-syntax-function: #3AC0C0;
515
+ --code-syntax-variable: #F5F7F7;
516
+
517
+ /* SEMANTIC STRONG STACKS */
518
+ --semantic-info-bg: #0E232E;
519
+ --semantic-info-border: #3A8FB0;
520
+ --semantic-info-text: #2B7F9E;
521
+
522
+ --semantic-warning-bg: #2A2214;
523
+ --semantic-warning-border: #D1A545;
524
+ --semantic-warning-text: #C69932;
525
+
526
+ --semantic-success-bg: #0F2622;
527
+ --semantic-success-border: #39A88B;
528
+ --semantic-success-text: #2E8F7A;
529
+
530
+ --semantic-danger-bg: #2A1518;
531
+ --semantic-danger-border: #A63A4A;
532
+ --semantic-danger-text: #912839;
533
+
534
+ --semantic-error-bg: #2A1518;
535
+ --semantic-error-border: #A63A4A;
536
+ --semantic-error-text: #912839;
537
+
538
+ /* Strong variants */
539
+ --semantic-error-bg-strong: #220F12;
540
+ --semantic-error-border-strong: #A63A4A;
541
+ --semantic-error-text-strong: #B14554;
542
+
543
+ --semantic-warning-bg-strong: #262012;
544
+ --semantic-warning-border-strong: #D1A545;
545
+ --semantic-warning-text-strong: #C69932;
546
+
547
+ --semantic-success-bg-strong: #0A1E1B;
548
+ --semantic-success-border-strong: #39A88B;
549
+ --semantic-success-text-strong: #2E8F7A;
550
+
551
+ --semantic-info-bg-strong: #0A1A24;
552
+ --semantic-info-border-strong: #3A8FB0;
553
+ --semantic-info-text-strong: #2B7F9E;
554
+
555
+ /* HERO ERROR (dark) */
556
+ --hero-error-bg: #24090C;
557
+ --hero-error-border: #7A1F2A;
558
+ --hero-error-banner-bg: #24090C;
559
+ --hero-error-banner-border: #8A2331;
560
+ --hero-error-title: #B14554;
561
+
562
+ --hero-trend-up: #39A88B;
563
+ --hero-trend-down: #A63A4A;
564
+ --hero-accent-line: #2BA6A6;
565
+
566
+ /* ACCENT SURFACES (dark) */
567
+ --accent-soft-surface: #0F2323;
568
+ --accent-soft-surface-strong: #143130;
569
+ --accent-soft-border: #2BA6A6;
570
+ --accent-soft-shadow: rgba(43, 166, 166, 0.25);
571
+ --accent-soft-on: #F5F7F7;
572
+
573
+ /* INFO SURFACES */
574
+ --info-soft-surface: #0E232E;
575
+ --info-soft-border: #3A8FB0;
576
+ --info-soft-on: #2B7F9E;
577
+
578
+ /* WARNING SURFACES */
579
+ --warning-soft-surface: #2A2214;
580
+ --warning-soft-border: #D1A545;
581
+ --warning-soft-on: #C69932;
582
+
583
+ /* DANGER SURFACES */
584
+ --danger-soft-surface: #2A1518;
585
+ --danger-soft-border: #A63A4A;
586
+ --danger-soft-on: #912839;
587
+
588
+ /* DOC BLOCK */
589
+ --doc-block-action-hover-bg: #2A2F31;
590
+ --doc-block-action-hover-border: var(--color-border-strong);
591
+ --doc-block-action-hover-text: var(--color-text);
592
+
593
+ /* BUTTON SOFT */
594
+ --button-soft-border: rgba(255, 255, 255, 0.04);
595
+ --button-soft-border-hover: rgba(255, 255, 255, 0.12);
596
+ --button-soft-text: var(--color-text);
597
+
598
+ /* OUTLINE BUTTON HOVERS */
599
+ --button-outline-accent-hover-bg: rgba(43, 166, 166, 0.12);
600
+ --button-outline-accent-hover-border: var(--color-accent-strong);
601
+
602
+ --button-outline-danger-hover-bg: rgba(166, 58, 74, 0.12);
603
+ --button-outline-danger-hover-border: var(--color-danger-strong);
604
+
605
+ --button-outline-info-hover-bg: rgba(58, 143, 176, 0.12);
606
+ --button-outline-info-hover-border: var(--color-info-strong);
607
+
608
+ --button-outline-success-hover-bg: rgba(57, 168, 139, 0.12);
609
+ --button-outline-success-hover-border: var(--color-success-strong);
610
+
611
+ --button-outline-warning-hover-bg: rgba(209, 165, 69, 0.14);
612
+ --button-outline-warning-hover-border: var(--color-warning-strong);
613
+
614
+ /* BRAND SECTIONS */
615
+ --section-brand-eyebrow: #F5F7F7;
616
+ --section-brand-subtitle: #F5F7F7;
617
+ --section-brand-title: #FFFFFF;
618
+ --section-brand-body: #C5CDCE;
619
+ --section-brand-metric-label: #F5F7F7;
620
+ --section-brand-metric-value: #FFFFFF;
621
+
622
+ --section-brand-accent-bg: radial-gradient(circle at top left,
623
+ rgba(43, 166, 166, 0.35),
624
+ transparent),
625
+ radial-gradient(circle at bottom right,
626
+ rgba(43, 166, 166, 0.45),
627
+ transparent);
628
+
629
+ /* Success extended */
630
+ --success-soft-surface-strong: #0A1E1B;
631
+ --color-success-soft-hover: #102E29;
632
+ --success-soft-surface: #0F2622;
633
+ --success-soft-border: #39A88B;
634
+ --success-soft-on: #39A88B;
635
+
636
+ /* Warning extended */
637
+ --warning-soft-surface-strong: #262012;
638
+ --color-warning-soft-hover: #322A16;
639
+
640
+ /* Info extended */
641
+ --info-soft-surface-strong: #0A1A24;
642
+ --color-info-soft-hover: #0E2A3A;
643
+
644
+ /* Danger extended */
645
+ --danger-soft-surface-strong: #220F12;
646
+ --color-danger-soft-hover: #2D161B;
647
+
648
+ /* Hero */
649
+ --hero-trend-neutral: var(--color-text-muted);
650
+ --hero-error-text: var(--semantic-error-text-strong, var(--color-danger-strong));
651
+
652
+ --hero-metric-bg: var(--color-surface);
653
+
654
+ --flow-zebra-bg: var(--color-surface);
655
+ --flow-zebra-bg-alt: var(--color-surface-subtle);
656
+
657
+ --focus-ring-color: var(--color-accent);
658
+ }