@24vlh/vds 0.1.2 → 0.1.4

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 (37) 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/inbox.css +1228 -0
  18. package/dist/components/inbox.min.css +1 -0
  19. package/dist/components/navigation.css +900 -900
  20. package/dist/components/overlays.css +498 -498
  21. package/dist/components/sections.css +450 -450
  22. package/dist/components/skeleton.css +385 -385
  23. package/dist/components/tables.css +591 -591
  24. package/dist/components/tabs.css +307 -307
  25. package/dist/components/toasts.css +421 -421
  26. package/dist/components/tooltips-popovers.css +447 -447
  27. package/dist/components/typography.css +250 -250
  28. package/dist/components/utilities.css +3433 -3433
  29. package/dist/core.css +866 -866
  30. package/dist/identity.css +266 -266
  31. package/dist/themes/carbon.css +658 -658
  32. package/dist/themes/graphite.css +658 -658
  33. package/dist/themes/navy.css +657 -657
  34. package/dist/themes/slate.css +659 -659
  35. package/dist/vds.css +19009 -20312
  36. package/dist/vds.min.css +1 -1
  37. package/package.json +3 -2
@@ -1,658 +1,658 @@
1
- /************************************************************
2
- * VLAH DESIGN SYSTEM (VDS) - Graphite Theme
3
- *
4
- * Responsibilities:
5
- * - Provide full light and dark palettes for the Graphite 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="graphite-light" | "graphite-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
- GRAPHITE - LIGHT THEME
23
- --------------------------------------------------------- */
24
-
25
- :root[data-theme="graphite-light"] {
26
- /* Core brand */
27
- --color-brand-ink: #0E3D69;
28
- --color-brand-accent: #1371A3;
29
-
30
- /* Backgrounds */
31
- --color-bg: #F7F9FC;
32
- --color-bg-soft: #EFF3F8;
33
- --color-bg-elevated: #FFFFFF;
34
-
35
- /* Surfaces */
36
- --color-surface: #FFFFFF;
37
- --color-surface-subtle: #EFF3F8;
38
- --color-surface-hover: #E5ECF5;
39
-
40
- /* Borders */
41
- --color-border-subtle: #D2DAE6;
42
- --color-border-strong: #A7B4C5;
43
-
44
- /* Text */
45
- --color-text: #0E3D69;
46
- --color-text-muted: #4C6074;
47
- --color-text-soft: #7B8897;
48
- --color-text-on-soft: #0E3D69;
49
- --color-text-on-strong: #F7F9FC;
50
-
51
- /* Icons */
52
- --color-icon-muted: #4C6074;
53
- --color-icon-strong: #0E3D69;
54
- --color-icon-on-accent: #FFFFFF;
55
-
56
- /* Shadows */
57
- --shadow-1: 0 8px 20px rgba(14, 61, 105, 0.07);
58
- --shadow-2: 0 10px 30px rgba(14, 61, 105, 0.12);
59
- --shadow-3: 0 16px 40px rgba(14, 61, 105, 0.18);
60
-
61
- /* Accent (Graphite) */
62
- --color-accent: #1371A3;
63
- --color-accent-soft: #D2E3F3;
64
- --color-accent-strong: #0F567D;
65
- --color-on-accent: #FFFFFF;
66
- --color-accent-soft-hover: #C0D7EE;
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 (Graphite light) */
76
- --color-success: #5D9893;
77
- --color-success-soft: #D9E7E6;
78
- --color-success-strong: #3C7C74;
79
- --color-on-success: #0E3D69;
80
-
81
- --color-info: #7EA9D0;
82
- --color-info-soft: #E1EBF4;
83
- --color-info-strong: #5E86AC;
84
- --color-on-info: #0E3D69;
85
-
86
- --color-warning: #95825D;
87
- --color-warning-soft: #E6E2D9;
88
- --color-warning-strong: #786649;
89
- --color-on-warning: #0E3D69;
90
-
91
- --color-danger: #CE6870;
92
- --color-danger-soft: #F3DCDE;
93
- --color-danger-strong: #A55158;
94
- --color-on-danger: #0E3D69;
95
-
96
- --color-error: #CE6870;
97
- --color-error-soft: #F3DCDE;
98
- --color-error-strong: #A55158;
99
- --color-on-error: #0E3D69;
100
-
101
- /* Neutral */
102
- --color-muted-bg: #E3E8F2;
103
- --color-muted-border: #D2DAE6;
104
-
105
- /* Header / footer */
106
- --color-header-bg: #F7F9FC;
107
- --color-header-border: #D2DAE6;
108
- --color-footer-bg: #0E3D69;
109
- --color-footer-text: #F7F9FC;
110
-
111
- /* Logo integration */
112
- --color-logo-ink: #0E3D69;
113
- --color-logo-accent: #e31824;
114
- --color-logo-mono: #000000;
115
- --color-logo-ink-inverse: #F7F9FC;
116
- --color-logo-accent-inverse: #1371A3;
117
- --color-logo-footer-ink: var(--color-footer-text);
118
- --color-logo-footer-accent: var(--color-brand-accent);
119
-
120
- /* Links */
121
- --link-text: #1371A3;
122
- --link-text-hover: #0F567D;
123
- --link-text-active: #0E3D69;
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(14, 61, 105, 0.18);
131
- --slider-thumb-bg: #1371A3;
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.25);
138
-
139
- /* Tables */
140
- --color-surface-soft: rgba(14, 61, 105, 0.05);
141
-
142
- /* Table trend + rows */
143
- --table-trend-up: #5D9893;
144
- --table-trend-down: #CE6870;
145
- --table-trend-flat: #7B8897;
146
-
147
- --table-row-good-bg: #D9E7E6;
148
- --table-row-bad-bg: #F3DCDE;
149
- --table-row-warning-bg: #E6E2D9;
150
- --table-row-info-bg: #E1EBF4;
151
- --table-row-muted-bg: #E3E8F2;
152
- --table-row-strange-bg: #D9E3F4;
153
- --table-row-flagged-bg: #F3DCDE;
154
- --table-row-curious-bg: #EFF3F8;
155
-
156
- --table-row-good-text: #0E3D69;
157
- --table-row-bad-text: #0E3D69;
158
- --table-row-warning-text: #0E3D69;
159
- --table-row-info-text: #0E3D69;
160
- --table-row-muted-text: #4C6074;
161
- --table-row-strange-text: #0E3D69;
162
- --table-row-flagged-text: #0E3D69;
163
- --table-row-curious-text: #0E3D69;
164
-
165
- --table-row-flagged-border: #CE6870;
166
- --table-row-curious-border: #1371A3;
167
-
168
- /* Code */
169
- --code-bg: #EFF3F8;
170
- --code-border: #D2DAE6;
171
- --code-inline-bg: rgba(14, 61, 105, 0.04);
172
- --code-inline-border: rgba(14, 61, 105, 0.18);
173
-
174
- /* Typography */
175
- --figure-caption-color: #4C6074;
176
- --code-block-bg: #EFF3F8;
177
- --footnote-color: #8F979F;
178
-
179
- /* Blockquote */
180
- --blockquote-border: #D2DAE6;
181
- --blockquote-text: #5F6B78;
182
-
183
- /* Selection */
184
- --color-selection-bg: rgba(45, 65, 73, 0.11);
185
- --color-selection-text: #213d4f;
186
-
187
- /* Syntax highlight */
188
- --code-syntax-keyword: #0F567D;
189
- --code-syntax-string: #3C7C74;
190
- --code-syntax-number: #3A7BB8;
191
- --code-syntax-operator: #0E3D69;
192
- --code-syntax-comment: #8F979F;
193
- --code-syntax-constant: #1371A3;
194
- --code-syntax-function: #0F567D;
195
- --code-syntax-variable: #0E3D69;
196
-
197
- /* Semantic stacks */
198
- --semantic-info-bg: #E1EBF4;
199
- --semantic-info-border: #7EA9D0;
200
- --semantic-info-text: #3A7BB8;
201
-
202
- --semantic-warning-bg: #E6E2D9;
203
- --semantic-warning-border: #95825D;
204
- --semantic-warning-text: #786649;
205
-
206
- --semantic-success-bg: #D9E7E6;
207
- --semantic-success-border: #5D9893;
208
- --semantic-success-text: #3C7C74;
209
-
210
- --semantic-danger-bg: #F3DCDE;
211
- --semantic-danger-border: #CE6870;
212
- --semantic-danger-text: #A55158;
213
-
214
- --semantic-error-bg: #F3DCDE;
215
- --semantic-error-border: #CE6870;
216
- --semantic-error-text: #A55158;
217
-
218
- /* Strong variants */
219
- --semantic-error-bg-strong: #EAC7CB;
220
- --semantic-error-border-strong: #CE6870;
221
- --semantic-error-text-strong: #A55158;
222
-
223
- --semantic-warning-bg-strong: #DDD2C0;
224
- --semantic-warning-border-strong: #95825D;
225
- --semantic-warning-text-strong: #786649;
226
-
227
- --semantic-success-bg-strong: #CBDDDA;
228
- --semantic-success-border-strong: #5D9893;
229
- --semantic-success-text-strong: #3C7C74;
230
-
231
- --semantic-info-bg-strong: #D3E0EE;
232
- --semantic-info-border-strong: #7EA9D0;
233
- --semantic-info-text-strong: #3A7BB8;
234
-
235
- /* HERO ERROR */
236
- --hero-error-bg: #EFF3F8;
237
- --hero-error-border: #CE6870;
238
- --hero-error-banner-bg: #EFF3F8;
239
- --hero-error-banner-border: #CE6870;
240
- --hero-error-title: #CE6870;
241
-
242
- --hero-trend-up: #5D9893;
243
- --hero-trend-down: #CE6870;
244
- --hero-accent-line: #1371A3;
245
-
246
- /* ACCENT SURFACES */
247
- --accent-soft-surface: #F4F7FB;
248
- --accent-soft-surface-strong: #DFE8F3;
249
- --accent-soft-border: #1371A3;
250
- --accent-soft-shadow: rgba(19, 113, 163, 0.25);
251
- --accent-soft-on: #0E3D69;
252
-
253
- /* INFO SURFACES */
254
- --info-soft-surface: #E1EBF4;
255
- --info-soft-border: #7EA9D0;
256
- --info-soft-on: #0E3D69;
257
-
258
- /* WARNING SURFACES */
259
- --warning-soft-surface: #E6E2D9;
260
- --warning-soft-border: #95825D;
261
- --warning-soft-on: #0E3D69;
262
-
263
- /* DANGER SURFACES */
264
- --danger-soft-surface: #F3DCDE;
265
- --danger-soft-border: #CE6870;
266
- --danger-soft-on: #0E3D69;
267
-
268
- /* DOC BLOCK */
269
- --doc-block-action-hover-bg: #E0E5EE;
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(19, 113, 163, 0.12);
280
- --button-outline-accent-hover-border: var(--color-accent-strong);
281
-
282
- --button-outline-danger-hover-bg: rgba(206, 104, 112, 0.10);
283
- --button-outline-danger-hover-border: var(--color-danger-strong);
284
-
285
- --button-outline-info-hover-bg: rgba(126, 169, 208, 0.10);
286
- --button-outline-info-hover-border: var(--color-info-strong);
287
-
288
- --button-outline-success-hover-bg: rgba(93, 152, 147, 0.12);
289
- --button-outline-success-hover-border: var(--color-success-strong);
290
-
291
- --button-outline-warning-hover-bg: rgba(149, 130, 93, 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: #0E3D69;
298
- --section-brand-body: #0E3D69;
299
- --section-brand-metric-label: #4C6074;
300
- --section-brand-metric-value: #0E3D69;
301
-
302
- --section-brand-accent-bg: radial-gradient(circle at top left,
303
- rgba(179, 196, 214, 0.25),
304
- transparent),
305
- radial-gradient(circle at bottom right,
306
- rgba(179, 196, 214, 0.35),
307
- transparent);
308
-
309
- /* Success extended */
310
- --success-soft-surface-strong: #CBDDDA;
311
- --color-success-soft-hover: #CBDDDA;
312
- --success-soft-surface: #D9E7E6;
313
- --success-soft-border: #5D9893;
314
- --success-soft-on: #0E3D69;
315
-
316
- /* Warning extended */
317
- --warning-soft-surface-strong: #DDD2C0;
318
- --color-warning-soft-hover: #DDD2C0;
319
-
320
- /* Info extended */
321
- --info-soft-surface-strong: #D3E0EE;
322
- --color-info-soft-hover: #D3E0EE;
323
-
324
- /* Danger extended */
325
- --danger-soft-surface-strong: #EAC7CB;
326
- --color-danger-soft-hover: #EAC7CB;
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: var(--color-accent);
338
- }
339
-
340
- /* ---------------------------------------------------------
341
- GRAPHITE - DARK THEME
342
- Inverts background/text, preserves hierarchy.
343
- --------------------------------------------------------- */
344
-
345
- :root[data-theme="graphite-dark"] {
346
- /* Core brand */
347
- --color-brand-ink: #F5F7FA;
348
- --color-brand-accent: #1F3A4D;
349
-
350
- /* Backgrounds */
351
- --color-bg: #0F1114;
352
- --color-bg-soft: #1A1F26;
353
- --color-bg-elevated: #1C2127;
354
-
355
- /* Surfaces */
356
- --color-surface: #171A1E;
357
- --color-surface-subtle: #1A1E23;
358
- --color-surface-hover: #263038;
359
-
360
- /* Borders */
361
- --color-border-subtle: #5F656C;
362
- --color-border-strong: #6A7480;
363
-
364
- /* Text */
365
- --color-text: #F5F7FA;
366
- --color-text-muted: #AEB4BA;
367
- --color-text-soft: #7A8A95;
368
- --color-text-on-soft: #F5F7FA;
369
- --color-text-on-strong: #F5F7FA;
370
-
371
- /* Icons */
372
- --color-icon-muted: #AEB4BA;
373
- --color-icon-strong: #F5F7FA;
374
- --color-icon-on-accent: #0F1114;
375
-
376
- /* Shadows */
377
- --shadow-1: 0 8px 20px rgba(14, 61, 105, 0.07);
378
- --shadow-2: 0 10px 30px rgba(14, 61, 105, 0.12);
379
- --shadow-3: 0 16px 40px rgba(14, 61, 105, 0.18);
380
-
381
- /* Accent */
382
- --color-accent: #1371A3;
383
- --color-accent-soft: #0A4F72;
384
- --color-accent-strong: #0D293D;
385
- --color-on-accent: #FFFFFF;
386
- --color-accent-soft-hover: #09405D;
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: #066159;
397
- --color-success-soft: #002521;
398
- --color-success-strong: #247768;
399
- --color-on-success: #F5F7FA;
400
-
401
- --color-info: #3A7BB8;
402
- --color-info-soft: #0E232E;
403
- --color-info-strong: #2E6F9E;
404
- --color-on-info: #F5F7FA;
405
-
406
- --color-warning: #5D4006;
407
- --color-warning-soft: #241C08;
408
- --color-warning-strong: #A7832E;
409
- --color-on-warning: #F5F7FA;
410
-
411
- --color-danger: #850610;
412
- --color-danger-soft: #2A1518;
413
- --color-danger-strong: #B51823;
414
- --color-on-danger: #F5F7FA;
415
-
416
- --color-error: #B51823;
417
- --color-error-soft: #2A1518;
418
- --color-error-strong: #850610;
419
- --color-on-error: #F5F7FA;
420
-
421
- /* Neutral */
422
- --color-muted-bg: #1f2427;
423
- --color-muted-border: #353A3C;
424
-
425
- /* Header / footer */
426
- --color-header-bg: #0F1114;
427
- --color-header-border: #353A3C;
428
- --color-footer-bg: #0A2D50;
429
- --color-footer-text: #F5F7FA;
430
-
431
- /* Logo integration */
432
- --color-logo-ink: #F5F7FA;
433
- --color-logo-accent: #1371A3;
434
- --color-logo-mono: #FFFFFF;
435
- --color-logo-ink-inverse: #0E3D69;
436
- --color-logo-accent-inverse: #1371A3;
437
- --color-logo-footer-ink: var(--color-footer-text);
438
- --color-logo-footer-accent: var(--color-brand-accent);
439
-
440
- /* Links */
441
- --link-text: #3A7BB8;
442
- --link-text-hover: #4F9CD3;
443
- --link-text-active: #F5F7FA;
444
-
445
- /* Translucent translucency */
446
- --color-surface-translucent-strong: rgba(255, 255, 255, 0.28);
447
-
448
- /* Forms */
449
- --color-placeholder: rgba(245, 247, 250, 0.30);
450
- --slider-track-bg: rgba(245, 247, 250, 0.16);
451
- --slider-thumb-bg: #1371A3;
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: #066159;
464
- --table-trend-down: #850610;
465
- --table-trend-flat: #7A8A95;
466
-
467
- --table-row-good-bg: #0F2622;
468
- --table-row-bad-bg: #2A1518;
469
- --table-row-warning-bg: #32270A;
470
- --table-row-info-bg: #0E232E;
471
- --table-row-muted-bg: #1A1E20;
472
- --table-row-strange-bg: #2F1A1B;
473
- --table-row-flagged-bg: #2A1518;
474
- --table-row-curious-bg: #161A1C;
475
-
476
- --table-row-good-text: #F5F7FA;
477
- --table-row-bad-text: #F5F7FA;
478
- --table-row-warning-text: #F5F7FA;
479
- --table-row-info-text: #F5F7FA;
480
- --table-row-muted-text: #AEB4BA;
481
- --table-row-strange-text: #F5F7FA;
482
- --table-row-flagged-text: #F5F7FA;
483
- --table-row-curious-text: #F5F7FA;
484
-
485
- --table-row-flagged-border: #850610;
486
- --table-row-curious-border: #1371A3;
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: #AEB4BA;
502
-
503
- /* Selection */
504
- --color-selection-bg: rgba(237, 23, 23, 0.40);
505
- --color-selection-text: #F5F7FA;
506
-
507
- /* Syntax highlight */
508
- --code-syntax-keyword: #4F9CD3;
509
- --code-syntax-string: #247768;
510
- --code-syntax-number: #3A7BB8;
511
- --code-syntax-operator: #F5F7FA;
512
- --code-syntax-comment: #7A8A95;
513
- --code-syntax-constant: #1371A3;
514
- --code-syntax-function: #4F9CD3;
515
- --code-syntax-variable: #F5F7FA;
516
-
517
- /* Semantic stacks */
518
- --semantic-info-bg: #022944;
519
- --semantic-info-border: #4E96DD;
520
- --semantic-info-text: #4F9CD3;
521
-
522
- --semantic-warning-bg: #241C08;
523
- --semantic-warning-border: #A7832E;
524
- --semantic-warning-text: #BFA364;
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: #B51823;
532
- --semantic-danger-text: #a33a43;
533
-
534
- --semantic-error-bg: #2A1518;
535
- --semantic-error-border: #B51823;
536
- --semantic-error-text: #a33a43;
537
-
538
- /* Strong variants */
539
- --semantic-error-bg-strong: #220F12;
540
- --semantic-error-border-strong: #B51823;
541
- --semantic-error-text-strong: #bc1425;
542
-
543
- --semantic-warning-bg-strong: #262012;
544
- --semantic-warning-border-strong: #A7832E;
545
- --semantic-warning-text-strong: #C7A96A;
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: #4E96DD;
553
- --semantic-info-text-strong: #4F9CD3;
554
-
555
- /* HERO ERROR */
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: #bd444e;
561
-
562
- --hero-trend-up: #39A88B;
563
- --hero-trend-down: #B51823;
564
- --hero-accent-line: #1371A3;
565
-
566
- /* ACCENT SURFACES */
567
- --accent-soft-surface: #0A3A55;
568
- --accent-soft-surface-strong: #123F57;
569
- --accent-soft-border: #1371A3;
570
- --accent-soft-shadow: rgba(19, 113, 163, 0.25);
571
- --accent-soft-on: #F5F7FA;
572
-
573
- /* INFO SURFACES */
574
- --info-soft-surface: #0E232E;
575
- --info-soft-border: #3A7BB8;
576
- --info-soft-on: #2E6F9E;
577
-
578
- /* WARNING SURFACES */
579
- --warning-soft-surface: #241C08;
580
- --warning-soft-border: #A7832E;
581
- --warning-soft-on: #C7A96A;
582
-
583
- /* DANGER SURFACES */
584
- --danger-soft-surface: #2A1518;
585
- --danger-soft-border: #850610;
586
- --danger-soft-on: #d7515e;
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(19, 113, 163, 0.16);
600
- --button-outline-accent-hover-border: var(--color-accent-strong);
601
-
602
- --button-outline-danger-hover-bg: rgba(181, 24, 35, 0.16);
603
- --button-outline-danger-hover-border: var(--color-danger-strong);
604
-
605
- --button-outline-info-hover-bg: rgba(58, 123, 184, 0.16);
606
- --button-outline-info-hover-border: var(--color-info-strong);
607
-
608
- --button-outline-success-hover-bg: rgba(6, 97, 89, 0.16);
609
- --button-outline-success-hover-border: var(--color-success-strong);
610
-
611
- --button-outline-warning-hover-bg: rgba(93, 64, 6, 0.20);
612
- --button-outline-warning-hover-border: var(--color-warning-strong);
613
-
614
- /* BRAND SECTIONS */
615
- --section-brand-eyebrow: #F5F7FA;
616
- --section-brand-subtitle: #C1C7C8;
617
- --section-brand-title: #FFFFFF;
618
- --section-brand-body: #C1C7C8;
619
- --section-brand-metric-label: #F5F7FA;
620
- --section-brand-metric-value: #FFFFFF;
621
-
622
- --section-brand-accent-bg: radial-gradient(circle at top left,
623
- rgba(19, 113, 163, 0.35),
624
- transparent),
625
- radial-gradient(circle at bottom right,
626
- rgba(19, 113, 163, 0.45),
627
- transparent);
628
-
629
- /* Success extended */
630
- --success-soft-surface-strong: #0A1E1B;
631
- --color-success-soft-hover: #102E29;
632
- --success-soft-surface: #002521;
633
- --success-soft-border: #066159;
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: #1371A3;
658
- }
1
+ /************************************************************
2
+ * VLAH DESIGN SYSTEM (VDS) - Graphite Theme
3
+ *
4
+ * Responsibilities:
5
+ * - Provide full light and dark palettes for the Graphite 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="graphite-light" | "graphite-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
+ GRAPHITE - LIGHT THEME
23
+ --------------------------------------------------------- */
24
+
25
+ :root[data-theme="graphite-light"] {
26
+ /* Core brand */
27
+ --color-brand-ink: #0E3D69;
28
+ --color-brand-accent: #1371A3;
29
+
30
+ /* Backgrounds */
31
+ --color-bg: #F7F9FC;
32
+ --color-bg-soft: #EFF3F8;
33
+ --color-bg-elevated: #FFFFFF;
34
+
35
+ /* Surfaces */
36
+ --color-surface: #FFFFFF;
37
+ --color-surface-subtle: #EFF3F8;
38
+ --color-surface-hover: #E5ECF5;
39
+
40
+ /* Borders */
41
+ --color-border-subtle: #D2DAE6;
42
+ --color-border-strong: #A7B4C5;
43
+
44
+ /* Text */
45
+ --color-text: #0E3D69;
46
+ --color-text-muted: #4C6074;
47
+ --color-text-soft: #7B8897;
48
+ --color-text-on-soft: #0E3D69;
49
+ --color-text-on-strong: #F7F9FC;
50
+
51
+ /* Icons */
52
+ --color-icon-muted: #4C6074;
53
+ --color-icon-strong: #0E3D69;
54
+ --color-icon-on-accent: #FFFFFF;
55
+
56
+ /* Shadows */
57
+ --shadow-1: 0 8px 20px rgba(14, 61, 105, 0.07);
58
+ --shadow-2: 0 10px 30px rgba(14, 61, 105, 0.12);
59
+ --shadow-3: 0 16px 40px rgba(14, 61, 105, 0.18);
60
+
61
+ /* Accent (Graphite) */
62
+ --color-accent: #1371A3;
63
+ --color-accent-soft: #D2E3F3;
64
+ --color-accent-strong: #0F567D;
65
+ --color-on-accent: #FFFFFF;
66
+ --color-accent-soft-hover: #C0D7EE;
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 (Graphite light) */
76
+ --color-success: #5D9893;
77
+ --color-success-soft: #D9E7E6;
78
+ --color-success-strong: #3C7C74;
79
+ --color-on-success: #0E3D69;
80
+
81
+ --color-info: #7EA9D0;
82
+ --color-info-soft: #E1EBF4;
83
+ --color-info-strong: #5E86AC;
84
+ --color-on-info: #0E3D69;
85
+
86
+ --color-warning: #95825D;
87
+ --color-warning-soft: #E6E2D9;
88
+ --color-warning-strong: #786649;
89
+ --color-on-warning: #0E3D69;
90
+
91
+ --color-danger: #CE6870;
92
+ --color-danger-soft: #F3DCDE;
93
+ --color-danger-strong: #A55158;
94
+ --color-on-danger: #0E3D69;
95
+
96
+ --color-error: #CE6870;
97
+ --color-error-soft: #F3DCDE;
98
+ --color-error-strong: #A55158;
99
+ --color-on-error: #0E3D69;
100
+
101
+ /* Neutral */
102
+ --color-muted-bg: #E3E8F2;
103
+ --color-muted-border: #D2DAE6;
104
+
105
+ /* Header / footer */
106
+ --color-header-bg: #F7F9FC;
107
+ --color-header-border: #D2DAE6;
108
+ --color-footer-bg: #0E3D69;
109
+ --color-footer-text: #F7F9FC;
110
+
111
+ /* Logo integration */
112
+ --color-logo-ink: #0E3D69;
113
+ --color-logo-accent: #e31824;
114
+ --color-logo-mono: #000000;
115
+ --color-logo-ink-inverse: #F7F9FC;
116
+ --color-logo-accent-inverse: #1371A3;
117
+ --color-logo-footer-ink: var(--color-footer-text);
118
+ --color-logo-footer-accent: var(--color-brand-accent);
119
+
120
+ /* Links */
121
+ --link-text: #1371A3;
122
+ --link-text-hover: #0F567D;
123
+ --link-text-active: #0E3D69;
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(14, 61, 105, 0.18);
131
+ --slider-thumb-bg: #1371A3;
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.25);
138
+
139
+ /* Tables */
140
+ --color-surface-soft: rgba(14, 61, 105, 0.05);
141
+
142
+ /* Table trend + rows */
143
+ --table-trend-up: #5D9893;
144
+ --table-trend-down: #CE6870;
145
+ --table-trend-flat: #7B8897;
146
+
147
+ --table-row-good-bg: #D9E7E6;
148
+ --table-row-bad-bg: #F3DCDE;
149
+ --table-row-warning-bg: #E6E2D9;
150
+ --table-row-info-bg: #E1EBF4;
151
+ --table-row-muted-bg: #E3E8F2;
152
+ --table-row-strange-bg: #D9E3F4;
153
+ --table-row-flagged-bg: #F3DCDE;
154
+ --table-row-curious-bg: #EFF3F8;
155
+
156
+ --table-row-good-text: #0E3D69;
157
+ --table-row-bad-text: #0E3D69;
158
+ --table-row-warning-text: #0E3D69;
159
+ --table-row-info-text: #0E3D69;
160
+ --table-row-muted-text: #4C6074;
161
+ --table-row-strange-text: #0E3D69;
162
+ --table-row-flagged-text: #0E3D69;
163
+ --table-row-curious-text: #0E3D69;
164
+
165
+ --table-row-flagged-border: #CE6870;
166
+ --table-row-curious-border: #1371A3;
167
+
168
+ /* Code */
169
+ --code-bg: #EFF3F8;
170
+ --code-border: #D2DAE6;
171
+ --code-inline-bg: rgba(14, 61, 105, 0.04);
172
+ --code-inline-border: rgba(14, 61, 105, 0.18);
173
+
174
+ /* Typography */
175
+ --figure-caption-color: #4C6074;
176
+ --code-block-bg: #EFF3F8;
177
+ --footnote-color: #8F979F;
178
+
179
+ /* Blockquote */
180
+ --blockquote-border: #D2DAE6;
181
+ --blockquote-text: #5F6B78;
182
+
183
+ /* Selection */
184
+ --color-selection-bg: rgba(45, 65, 73, 0.11);
185
+ --color-selection-text: #213d4f;
186
+
187
+ /* Syntax highlight */
188
+ --code-syntax-keyword: #0F567D;
189
+ --code-syntax-string: #3C7C74;
190
+ --code-syntax-number: #3A7BB8;
191
+ --code-syntax-operator: #0E3D69;
192
+ --code-syntax-comment: #8F979F;
193
+ --code-syntax-constant: #1371A3;
194
+ --code-syntax-function: #0F567D;
195
+ --code-syntax-variable: #0E3D69;
196
+
197
+ /* Semantic stacks */
198
+ --semantic-info-bg: #E1EBF4;
199
+ --semantic-info-border: #7EA9D0;
200
+ --semantic-info-text: #3A7BB8;
201
+
202
+ --semantic-warning-bg: #E6E2D9;
203
+ --semantic-warning-border: #95825D;
204
+ --semantic-warning-text: #786649;
205
+
206
+ --semantic-success-bg: #D9E7E6;
207
+ --semantic-success-border: #5D9893;
208
+ --semantic-success-text: #3C7C74;
209
+
210
+ --semantic-danger-bg: #F3DCDE;
211
+ --semantic-danger-border: #CE6870;
212
+ --semantic-danger-text: #A55158;
213
+
214
+ --semantic-error-bg: #F3DCDE;
215
+ --semantic-error-border: #CE6870;
216
+ --semantic-error-text: #A55158;
217
+
218
+ /* Strong variants */
219
+ --semantic-error-bg-strong: #EAC7CB;
220
+ --semantic-error-border-strong: #CE6870;
221
+ --semantic-error-text-strong: #A55158;
222
+
223
+ --semantic-warning-bg-strong: #DDD2C0;
224
+ --semantic-warning-border-strong: #95825D;
225
+ --semantic-warning-text-strong: #786649;
226
+
227
+ --semantic-success-bg-strong: #CBDDDA;
228
+ --semantic-success-border-strong: #5D9893;
229
+ --semantic-success-text-strong: #3C7C74;
230
+
231
+ --semantic-info-bg-strong: #D3E0EE;
232
+ --semantic-info-border-strong: #7EA9D0;
233
+ --semantic-info-text-strong: #3A7BB8;
234
+
235
+ /* HERO ERROR */
236
+ --hero-error-bg: #EFF3F8;
237
+ --hero-error-border: #CE6870;
238
+ --hero-error-banner-bg: #EFF3F8;
239
+ --hero-error-banner-border: #CE6870;
240
+ --hero-error-title: #CE6870;
241
+
242
+ --hero-trend-up: #5D9893;
243
+ --hero-trend-down: #CE6870;
244
+ --hero-accent-line: #1371A3;
245
+
246
+ /* ACCENT SURFACES */
247
+ --accent-soft-surface: #F4F7FB;
248
+ --accent-soft-surface-strong: #DFE8F3;
249
+ --accent-soft-border: #1371A3;
250
+ --accent-soft-shadow: rgba(19, 113, 163, 0.25);
251
+ --accent-soft-on: #0E3D69;
252
+
253
+ /* INFO SURFACES */
254
+ --info-soft-surface: #E1EBF4;
255
+ --info-soft-border: #7EA9D0;
256
+ --info-soft-on: #0E3D69;
257
+
258
+ /* WARNING SURFACES */
259
+ --warning-soft-surface: #E6E2D9;
260
+ --warning-soft-border: #95825D;
261
+ --warning-soft-on: #0E3D69;
262
+
263
+ /* DANGER SURFACES */
264
+ --danger-soft-surface: #F3DCDE;
265
+ --danger-soft-border: #CE6870;
266
+ --danger-soft-on: #0E3D69;
267
+
268
+ /* DOC BLOCK */
269
+ --doc-block-action-hover-bg: #E0E5EE;
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(19, 113, 163, 0.12);
280
+ --button-outline-accent-hover-border: var(--color-accent-strong);
281
+
282
+ --button-outline-danger-hover-bg: rgba(206, 104, 112, 0.10);
283
+ --button-outline-danger-hover-border: var(--color-danger-strong);
284
+
285
+ --button-outline-info-hover-bg: rgba(126, 169, 208, 0.10);
286
+ --button-outline-info-hover-border: var(--color-info-strong);
287
+
288
+ --button-outline-success-hover-bg: rgba(93, 152, 147, 0.12);
289
+ --button-outline-success-hover-border: var(--color-success-strong);
290
+
291
+ --button-outline-warning-hover-bg: rgba(149, 130, 93, 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: #0E3D69;
298
+ --section-brand-body: #0E3D69;
299
+ --section-brand-metric-label: #4C6074;
300
+ --section-brand-metric-value: #0E3D69;
301
+
302
+ --section-brand-accent-bg: radial-gradient(circle at top left,
303
+ rgba(179, 196, 214, 0.25),
304
+ transparent),
305
+ radial-gradient(circle at bottom right,
306
+ rgba(179, 196, 214, 0.35),
307
+ transparent);
308
+
309
+ /* Success extended */
310
+ --success-soft-surface-strong: #CBDDDA;
311
+ --color-success-soft-hover: #CBDDDA;
312
+ --success-soft-surface: #D9E7E6;
313
+ --success-soft-border: #5D9893;
314
+ --success-soft-on: #0E3D69;
315
+
316
+ /* Warning extended */
317
+ --warning-soft-surface-strong: #DDD2C0;
318
+ --color-warning-soft-hover: #DDD2C0;
319
+
320
+ /* Info extended */
321
+ --info-soft-surface-strong: #D3E0EE;
322
+ --color-info-soft-hover: #D3E0EE;
323
+
324
+ /* Danger extended */
325
+ --danger-soft-surface-strong: #EAC7CB;
326
+ --color-danger-soft-hover: #EAC7CB;
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: var(--color-accent);
338
+ }
339
+
340
+ /* ---------------------------------------------------------
341
+ GRAPHITE - DARK THEME
342
+ Inverts background/text, preserves hierarchy.
343
+ --------------------------------------------------------- */
344
+
345
+ :root[data-theme="graphite-dark"] {
346
+ /* Core brand */
347
+ --color-brand-ink: #F5F7FA;
348
+ --color-brand-accent: #1F3A4D;
349
+
350
+ /* Backgrounds */
351
+ --color-bg: #0F1114;
352
+ --color-bg-soft: #1A1F26;
353
+ --color-bg-elevated: #1C2127;
354
+
355
+ /* Surfaces */
356
+ --color-surface: #171A1E;
357
+ --color-surface-subtle: #1A1E23;
358
+ --color-surface-hover: #263038;
359
+
360
+ /* Borders */
361
+ --color-border-subtle: #5F656C;
362
+ --color-border-strong: #6A7480;
363
+
364
+ /* Text */
365
+ --color-text: #F5F7FA;
366
+ --color-text-muted: #AEB4BA;
367
+ --color-text-soft: #7A8A95;
368
+ --color-text-on-soft: #F5F7FA;
369
+ --color-text-on-strong: #F5F7FA;
370
+
371
+ /* Icons */
372
+ --color-icon-muted: #AEB4BA;
373
+ --color-icon-strong: #F5F7FA;
374
+ --color-icon-on-accent: #0F1114;
375
+
376
+ /* Shadows */
377
+ --shadow-1: 0 8px 20px rgba(14, 61, 105, 0.07);
378
+ --shadow-2: 0 10px 30px rgba(14, 61, 105, 0.12);
379
+ --shadow-3: 0 16px 40px rgba(14, 61, 105, 0.18);
380
+
381
+ /* Accent */
382
+ --color-accent: #1371A3;
383
+ --color-accent-soft: #0A4F72;
384
+ --color-accent-strong: #0D293D;
385
+ --color-on-accent: #FFFFFF;
386
+ --color-accent-soft-hover: #09405D;
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: #066159;
397
+ --color-success-soft: #002521;
398
+ --color-success-strong: #247768;
399
+ --color-on-success: #F5F7FA;
400
+
401
+ --color-info: #3A7BB8;
402
+ --color-info-soft: #0E232E;
403
+ --color-info-strong: #2E6F9E;
404
+ --color-on-info: #F5F7FA;
405
+
406
+ --color-warning: #5D4006;
407
+ --color-warning-soft: #241C08;
408
+ --color-warning-strong: #A7832E;
409
+ --color-on-warning: #F5F7FA;
410
+
411
+ --color-danger: #850610;
412
+ --color-danger-soft: #2A1518;
413
+ --color-danger-strong: #B51823;
414
+ --color-on-danger: #F5F7FA;
415
+
416
+ --color-error: #B51823;
417
+ --color-error-soft: #2A1518;
418
+ --color-error-strong: #850610;
419
+ --color-on-error: #F5F7FA;
420
+
421
+ /* Neutral */
422
+ --color-muted-bg: #1f2427;
423
+ --color-muted-border: #353A3C;
424
+
425
+ /* Header / footer */
426
+ --color-header-bg: #0F1114;
427
+ --color-header-border: #353A3C;
428
+ --color-footer-bg: #0A2D50;
429
+ --color-footer-text: #F5F7FA;
430
+
431
+ /* Logo integration */
432
+ --color-logo-ink: #F5F7FA;
433
+ --color-logo-accent: #1371A3;
434
+ --color-logo-mono: #FFFFFF;
435
+ --color-logo-ink-inverse: #0E3D69;
436
+ --color-logo-accent-inverse: #1371A3;
437
+ --color-logo-footer-ink: var(--color-footer-text);
438
+ --color-logo-footer-accent: var(--color-brand-accent);
439
+
440
+ /* Links */
441
+ --link-text: #3A7BB8;
442
+ --link-text-hover: #4F9CD3;
443
+ --link-text-active: #F5F7FA;
444
+
445
+ /* Translucent translucency */
446
+ --color-surface-translucent-strong: rgba(255, 255, 255, 0.28);
447
+
448
+ /* Forms */
449
+ --color-placeholder: rgba(245, 247, 250, 0.30);
450
+ --slider-track-bg: rgba(245, 247, 250, 0.16);
451
+ --slider-thumb-bg: #1371A3;
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: #066159;
464
+ --table-trend-down: #850610;
465
+ --table-trend-flat: #7A8A95;
466
+
467
+ --table-row-good-bg: #0F2622;
468
+ --table-row-bad-bg: #2A1518;
469
+ --table-row-warning-bg: #32270A;
470
+ --table-row-info-bg: #0E232E;
471
+ --table-row-muted-bg: #1A1E20;
472
+ --table-row-strange-bg: #2F1A1B;
473
+ --table-row-flagged-bg: #2A1518;
474
+ --table-row-curious-bg: #161A1C;
475
+
476
+ --table-row-good-text: #F5F7FA;
477
+ --table-row-bad-text: #F5F7FA;
478
+ --table-row-warning-text: #F5F7FA;
479
+ --table-row-info-text: #F5F7FA;
480
+ --table-row-muted-text: #AEB4BA;
481
+ --table-row-strange-text: #F5F7FA;
482
+ --table-row-flagged-text: #F5F7FA;
483
+ --table-row-curious-text: #F5F7FA;
484
+
485
+ --table-row-flagged-border: #850610;
486
+ --table-row-curious-border: #1371A3;
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: #AEB4BA;
502
+
503
+ /* Selection */
504
+ --color-selection-bg: rgba(237, 23, 23, 0.40);
505
+ --color-selection-text: #F5F7FA;
506
+
507
+ /* Syntax highlight */
508
+ --code-syntax-keyword: #4F9CD3;
509
+ --code-syntax-string: #247768;
510
+ --code-syntax-number: #3A7BB8;
511
+ --code-syntax-operator: #F5F7FA;
512
+ --code-syntax-comment: #7A8A95;
513
+ --code-syntax-constant: #1371A3;
514
+ --code-syntax-function: #4F9CD3;
515
+ --code-syntax-variable: #F5F7FA;
516
+
517
+ /* Semantic stacks */
518
+ --semantic-info-bg: #022944;
519
+ --semantic-info-border: #4E96DD;
520
+ --semantic-info-text: #4F9CD3;
521
+
522
+ --semantic-warning-bg: #241C08;
523
+ --semantic-warning-border: #A7832E;
524
+ --semantic-warning-text: #BFA364;
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: #B51823;
532
+ --semantic-danger-text: #a33a43;
533
+
534
+ --semantic-error-bg: #2A1518;
535
+ --semantic-error-border: #B51823;
536
+ --semantic-error-text: #a33a43;
537
+
538
+ /* Strong variants */
539
+ --semantic-error-bg-strong: #220F12;
540
+ --semantic-error-border-strong: #B51823;
541
+ --semantic-error-text-strong: #bc1425;
542
+
543
+ --semantic-warning-bg-strong: #262012;
544
+ --semantic-warning-border-strong: #A7832E;
545
+ --semantic-warning-text-strong: #C7A96A;
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: #4E96DD;
553
+ --semantic-info-text-strong: #4F9CD3;
554
+
555
+ /* HERO ERROR */
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: #bd444e;
561
+
562
+ --hero-trend-up: #39A88B;
563
+ --hero-trend-down: #B51823;
564
+ --hero-accent-line: #1371A3;
565
+
566
+ /* ACCENT SURFACES */
567
+ --accent-soft-surface: #0A3A55;
568
+ --accent-soft-surface-strong: #123F57;
569
+ --accent-soft-border: #1371A3;
570
+ --accent-soft-shadow: rgba(19, 113, 163, 0.25);
571
+ --accent-soft-on: #F5F7FA;
572
+
573
+ /* INFO SURFACES */
574
+ --info-soft-surface: #0E232E;
575
+ --info-soft-border: #3A7BB8;
576
+ --info-soft-on: #2E6F9E;
577
+
578
+ /* WARNING SURFACES */
579
+ --warning-soft-surface: #241C08;
580
+ --warning-soft-border: #A7832E;
581
+ --warning-soft-on: #C7A96A;
582
+
583
+ /* DANGER SURFACES */
584
+ --danger-soft-surface: #2A1518;
585
+ --danger-soft-border: #850610;
586
+ --danger-soft-on: #d7515e;
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(19, 113, 163, 0.16);
600
+ --button-outline-accent-hover-border: var(--color-accent-strong);
601
+
602
+ --button-outline-danger-hover-bg: rgba(181, 24, 35, 0.16);
603
+ --button-outline-danger-hover-border: var(--color-danger-strong);
604
+
605
+ --button-outline-info-hover-bg: rgba(58, 123, 184, 0.16);
606
+ --button-outline-info-hover-border: var(--color-info-strong);
607
+
608
+ --button-outline-success-hover-bg: rgba(6, 97, 89, 0.16);
609
+ --button-outline-success-hover-border: var(--color-success-strong);
610
+
611
+ --button-outline-warning-hover-bg: rgba(93, 64, 6, 0.20);
612
+ --button-outline-warning-hover-border: var(--color-warning-strong);
613
+
614
+ /* BRAND SECTIONS */
615
+ --section-brand-eyebrow: #F5F7FA;
616
+ --section-brand-subtitle: #C1C7C8;
617
+ --section-brand-title: #FFFFFF;
618
+ --section-brand-body: #C1C7C8;
619
+ --section-brand-metric-label: #F5F7FA;
620
+ --section-brand-metric-value: #FFFFFF;
621
+
622
+ --section-brand-accent-bg: radial-gradient(circle at top left,
623
+ rgba(19, 113, 163, 0.35),
624
+ transparent),
625
+ radial-gradient(circle at bottom right,
626
+ rgba(19, 113, 163, 0.45),
627
+ transparent);
628
+
629
+ /* Success extended */
630
+ --success-soft-surface-strong: #0A1E1B;
631
+ --color-success-soft-hover: #102E29;
632
+ --success-soft-surface: #002521;
633
+ --success-soft-border: #066159;
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: #1371A3;
658
+ }