@mindlogic-ai/logician-ui 3.1.0-alpha.9 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -62,6 +62,35 @@
62
62
  * <Badge bgColor="success.lightest" color="success.dark" />
63
63
  * ```
64
64
  */
65
+ /**
66
+ * Halved-saturation counterpart of each primitive `gray.N` — same hue and
67
+ * lightness, HSL saturation cut by ~50% (e.g. `gray.1300` #1E2433 @ 26% →
68
+ * #23262E @ 13%). The blue-tinted `gray` ramp reads as the right neutral in
69
+ * light mode but turns muddy/over-chromatic as a dark surface, so every
70
+ * dark-mode neutral below (`slate.*`, and the `_dark` of `bg`/`fg`/`border`)
71
+ * resolves to this desaturated mirror instead of the raw `gray` step. Light
72
+ * mode is untouched — it keeps referencing `{colors.gray.*}` verbatim.
73
+ *
74
+ * Single source of truth: change a dark neutral here, not at each token.
75
+ */
76
+ const desaturatedGray = {
77
+ 0: '#FEFEFF',
78
+ 50: '#F8F9FB',
79
+ 100: '#F2F4F7',
80
+ 200: '#E5E8EC',
81
+ 300: '#D2D5DB',
82
+ 400: '#B6BAC3',
83
+ 500: '#A2A6B1',
84
+ 600: '#8E939F',
85
+ 800: '#6A6F7C',
86
+ 900: '#595E6B',
87
+ 1000: '#4A4E5A',
88
+ 1100: '#3C404B',
89
+ 1200: '#30343C',
90
+ 1300: '#23262E',
91
+ 1400: '#181A20',
92
+ 1500: '#0E1014',
93
+ };
65
94
  const semanticTokens = {
66
95
  colors: {
67
96
  /**
@@ -99,6 +128,18 @@ const semanticTokens = {
99
128
  darker: {
100
129
  value: { base: '{colors.blue.900}', _dark: '{colors.blue.100}' },
101
130
  }, // high-contrast text
131
+ // Solid brand-blue *fills* for surfaces with white text/icons on top
132
+ // (modal headers, hero/banner gradients, brand badges). `primary.main`/
133
+ // `primary.dark` lighten ~2 stops in dark — right for foreground, too
134
+ // light as a fill — so these stay a deep blue in dark instead. `base`
135
+ // repeats the old main/dark values, so light is unchanged. Bare accents
136
+ // (dots, progress bars) keep `primary.main`.
137
+ fill: {
138
+ value: { base: '{colors.blue.500}', _dark: '{colors.blue.700}' },
139
+ },
140
+ fillStrong: {
141
+ value: { base: '{colors.blue.700}', _dark: '{colors.blue.800}' },
142
+ },
102
143
  },
103
144
  /**
104
145
  * Secondary colors (Violet-based)
@@ -231,6 +272,76 @@ const semanticTokens = {
231
272
  value: { base: '{colors.gold.900}', _dark: '{colors.gold.100}' },
232
273
  },
233
274
  },
275
+ /**
276
+ * `slate.*` — the foundational **mode-aware neutral family**.
277
+ *
278
+ * A first-class neutral palette alongside the raw `gray.*` primitives, but
279
+ * mode-aware: each `slate.N` resolves to `gray.N` in light and to the
280
+ * desaturated counterpart of the *mirrored* step in dark, so a single token
281
+ * carries the same tonal level in both modes (e.g. `slate.300` is a light
282
+ * divider in light and the equivalent dark divider in dark — no `_dark={{…}}`
283
+ * at the call site). It lives under `semanticTokens` only because Chakra
284
+ * requires that for the `_dark` flip; conceptually it is a *foundation*
285
+ * (a tonal scale), not a *role*.
286
+ *
287
+ * When to use which:
288
+ * - Prefer the **role tokens** (`fg`/`bg`/`border`) when one matches the
289
+ * intent — they carry semantics and AA-tuned dark values.
290
+ * - Reach for **`slate.N`** when you need a specific neutral tonal step that
291
+ * no role names (mirroring how you'd otherwise drop to a raw `gray.N`, but
292
+ * keeping the dark flip). `slate` and the role tokens are *distinct* ramps
293
+ * (slate is a mechanical mirror; roles are hand-tuned), so they are not
294
+ * interchangeable in dark mode.
295
+ *
296
+ * `600`/`700` are lifted off the straight mirror (#8E939F/#7C818D) so the
297
+ * secondary/muted text they most often carry clears WCAG AA 4.5:1 on the
298
+ * dark canvas/surface — the straight mirrors measured ~3.0–3.9 there.
299
+ */
300
+ slate: {
301
+ 0: { value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] } },
302
+ 50: { value: { base: '{colors.gray.50}', _dark: desaturatedGray[1400] } },
303
+ 100: {
304
+ value: { base: '{colors.gray.100}', _dark: desaturatedGray[1300] },
305
+ },
306
+ 200: {
307
+ value: { base: '{colors.gray.200}', _dark: desaturatedGray[1200] },
308
+ },
309
+ 300: {
310
+ value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
311
+ },
312
+ 400: {
313
+ value: { base: '{colors.gray.400}', _dark: desaturatedGray[1000] },
314
+ },
315
+ 500: {
316
+ value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
317
+ },
318
+ 600: { value: { base: '{colors.gray.600}', _dark: '#898E99' } },
319
+ 700: { value: { base: '{colors.gray.700}', _dark: '#8D919D' } },
320
+ 800: {
321
+ value: { base: '{colors.gray.800}', _dark: desaturatedGray[600] },
322
+ },
323
+ 900: {
324
+ value: { base: '{colors.gray.900}', _dark: desaturatedGray[500] },
325
+ },
326
+ 1000: {
327
+ value: { base: '{colors.gray.1000}', _dark: desaturatedGray[400] },
328
+ },
329
+ 1100: {
330
+ value: { base: '{colors.gray.1100}', _dark: desaturatedGray[300] },
331
+ },
332
+ 1200: {
333
+ value: { base: '{colors.gray.1200}', _dark: desaturatedGray[200] },
334
+ },
335
+ 1300: {
336
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[100] },
337
+ },
338
+ 1400: {
339
+ value: { base: '{colors.gray.1400}', _dark: desaturatedGray[50] },
340
+ },
341
+ 1500: {
342
+ value: { base: '{colors.gray.1500}', _dark: desaturatedGray[0] },
343
+ },
344
+ },
234
345
  /**
235
346
  * Neutral background tokens — map onto the gray.0–1500 scale.
236
347
  * Use for: page/canvas, raised surfaces (cards, menus), subtle/muted fills,
@@ -243,27 +354,55 @@ const semanticTokens = {
243
354
  * - inverse: high-contrast surface (flips to light in dark mode)
244
355
  */
245
356
  bg: {
357
+ // Chakra's own global css paints `html { background: bg }` — the *plain*
358
+ // `bg` token, not `bg.canvas` — so this is the actual page background
359
+ // wherever no component paints over it. `_light` is pure white (Chakra's
360
+ // value, so light is untouched); `_dark` rejoins our neutral floor instead
361
+ // of Chakra's off-palette black.
362
+ DEFAULT: {
363
+ value: { _light: '{colors.white}', _dark: desaturatedGray[1500] },
364
+ },
246
365
  canvas: {
247
- value: { base: '{colors.gray.0}', _dark: '{colors.gray.1500}' },
366
+ value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] },
248
367
  },
249
368
  surface: {
250
- value: { base: '{colors.white}', _dark: '{colors.gray.1400}' },
369
+ value: { base: '{colors.white}', _dark: desaturatedGray[1400] },
370
+ },
371
+ // Strongly-raised neutral surface — one level above `surface` (e.g. the
372
+ // selected thumb of a SegmentedControl). In dark this is the *lightest*
373
+ // neutral bg token so a raised element reads as lifted toward the light,
374
+ // not recessed. (The `bg.*` dark ramp is otherwise compressed such that
375
+ // `surface` sits below `subtle`/`muted`; `raised` deliberately tops the
376
+ // scale so "raised" has a token that behaves correctly in dark.)
377
+ // NB: named `raised`, not Chakra's `emphasized` — that default token name
378
+ // cannot be overridden via semanticTokens in this setup (it keeps
379
+ // resolving to Chakra's own gray.200), whereas a fresh name is honoured.
380
+ raised: {
381
+ value: { base: '{colors.white}', _dark: desaturatedGray[1100] },
251
382
  },
252
383
  subtle: {
253
- value: { base: '{colors.gray.50}', _dark: '{colors.gray.1300}' },
384
+ value: { base: '{colors.gray.50}', _dark: desaturatedGray[1300] },
254
385
  },
255
386
  muted: {
256
- value: { base: '{colors.gray.100}', _dark: '{colors.gray.1200}' },
387
+ value: { base: '{colors.gray.100}', _dark: desaturatedGray[1200] },
257
388
  },
258
389
  inverse: {
259
- value: { base: '{colors.gray.1300}', _dark: '{colors.gray.50}' },
390
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[50] },
391
+ },
392
+ // Sunken page wash for list/overview surfaces: a gray floor in light so
393
+ // `bg.surface` cards read as raised above it. In dark the `bg.*` ramp is
394
+ // compressed (`subtle` sits *lighter* than `surface`), which would invert
395
+ // that elevation — so the dark value drops to the canvas floor instead.
396
+ // Component-level fills (hover, chips, inner blocks) keep using `bg.subtle`.
397
+ sunken: {
398
+ value: { base: '{colors.gray.50}', _dark: desaturatedGray[1500] },
260
399
  },
261
400
  // Override Chakra's default `bg.panel` (whose `_dark` resolves to Chakra's
262
401
  // own gray.950 = #111111, off our slate palette). Light value is white —
263
402
  // identical to Chakra's default — so this only realigns dark overlay
264
403
  // surfaces (Menu / Modal / Popover / Toast) onto our gray scale.
265
404
  panel: {
266
- value: { base: '{colors.white}', _dark: '{colors.gray.1400}' },
405
+ value: { base: '{colors.white}', _dark: desaturatedGray[1400] },
267
406
  },
268
407
  /**
269
408
  * Row/selection state tints. Use these for selected rows,
@@ -296,26 +435,42 @@ const semanticTokens = {
296
435
  * - inverse: text on inverse surfaces (flips with mode)
297
436
  */
298
437
  fg: {
438
+ // Plain `fg` is Chakra's html-level text color (`html { color: fg }`).
439
+ // `_light` repeats Chakra's value (black); `_dark` rejoins our desaturated
440
+ // neutral so legacy html-level text tracks `fg.default`.
441
+ DEFAULT: {
442
+ value: { _light: '{colors.black}', _dark: desaturatedGray[50] },
443
+ },
444
+ // Strongest text — headings, titles, key figures, emphasis. This is the
445
+ // near-black step that `fg.default` used to be; `default` is now re-pegged
446
+ // to a lighter body weight (see below), so reach for `emphasized` when you
447
+ // specifically want maximum contrast.
448
+ emphasized: {
449
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[200] },
450
+ },
299
451
  default: {
300
- // _dark is gray.200 (not gray.50): near-white text on the dark canvas
301
- // ran ~18:1 brighter than the light baseline (~15:1) and close to pure
302
- // white, which causes glare/halation. gray.200 matches the light
303
- // contrast (~15.4:1) while staying AAA.
304
- value: { base: '{colors.gray.1300}', _dark: '{colors.gray.200}' },
452
+ // Primary *body* text. Re-pegged from gray.1300 gray.1000: near-black
453
+ // (gray.1300, ~14:1 on white) is unusually heavy for running copy, and
454
+ // real product usage clustered well below it. gray.1000 (~9:1) is a
455
+ // comfortable AAA body weight; the old near-black step lives on as
456
+ // `fg.emphasized`. _dark drops one step from emphasized for hierarchy.
457
+ value: { base: '{colors.gray.1000}', _dark: desaturatedGray[300] },
305
458
  },
306
459
  muted: {
307
- // _dark lifts gray.400 gray.300: secondary text read as too dim on the
308
- // dark canvas next to fg.default (gray.200). gray.300 sits one step under
309
- // default — restoring the light-mode hierarchy gap — while staying well
310
- // clear of AA (~12.8:1 on bg.canvas, ~11.7:1 on bg.surface). Light value
311
- // (gray.900) is unchanged.
312
- value: { base: '{colors.gray.900}', _dark: '{colors.gray.300}' },
460
+ // Secondary text. _dark sits one step below `default` (~9.5:1 on the dark
461
+ // canvas) to keep the default→muted hierarchy gap. Light value (gray.900)
462
+ // is unchanged.
463
+ value: { base: '{colors.gray.900}', _dark: desaturatedGray[400] },
313
464
  },
314
465
  subtle: {
315
- value: { base: '{colors.gray.700}', _dark: '{colors.gray.600}' },
466
+ // Tertiary / placeholder / icon text. _dark a11y-bumped from the straight
467
+ // mirror (desaturatedGray[600] #8E939F, ~4.06:1 on bg.muted) to #989DA9
468
+ // (~4.6:1) so it clears AA while staying below fg.muted. Light value
469
+ // (gray.700) is unchanged.
470
+ value: { base: '{colors.gray.700}', _dark: '#989DA9' },
316
471
  },
317
472
  inverse: {
318
- value: { base: '{colors.gray.0}', _dark: '{colors.gray.1400}' },
473
+ value: { base: '{colors.gray.0}', _dark: desaturatedGray[1400] },
319
474
  },
320
475
  },
321
476
  /**
@@ -326,14 +481,21 @@ const semanticTokens = {
326
481
  * - strong: high-emphasis borders, focus outlines on neutral
327
482
  */
328
483
  border: {
484
+ // Plain `border` feeds Chakra's `--global-color-border` (the implicit
485
+ // default border color). Not a text color, so its `_dark` takes the
486
+ // straight halved-saturation mirror (no a11y bump). `_light` repeats
487
+ // Chakra's value so light is untouched.
488
+ DEFAULT: {
489
+ value: { _light: '{colors.gray.200}', _dark: desaturatedGray[800] },
490
+ },
329
491
  default: {
330
- value: { base: '{colors.gray.300}', _dark: '{colors.gray.1100}' },
492
+ value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
331
493
  },
332
494
  subtle: {
333
- value: { base: '{colors.gray.200}', _dark: '{colors.gray.1300}' },
495
+ value: { base: '{colors.gray.200}', _dark: desaturatedGray[1300] },
334
496
  },
335
497
  strong: {
336
- value: { base: '{colors.gray.500}', _dark: '{colors.gray.900}' },
498
+ value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
337
499
  },
338
500
  },
339
501
  },
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sources":["../../src/theme/colors.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors.js","sources":["../../src/theme/colors.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACH;;;;;;;;;;AAUG;AACH,MAAM,eAAe,GAAG;AACtB,IAAA,CAAC,EAAE,SAAS;AACZ,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IACA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;CACP;AAEH,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE;AACN;;;;;;;;;;;;AAYG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;;;;;;;AAOD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACF,SAAA;AAED;;;;;;;AAOG;AACH,QAAA,SAAS,EAAE;AACT,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACpE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACpE,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACrE,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACrE,aAAA;AACD,YAAA,IAAI,EAAE;;;;;gBAKJ,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACrE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACrE,aAAA;AACD,YAAA,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACrE,aAAA;AACF,SAAA;AAED;;;;;;;AAOG;AACH,QAAA,MAAM,EAAE;AACN,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACF,SAAA;AAED;;;;;;;AAOG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAClE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAClE,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnE,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnE,aAAA;AACD,YAAA,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACnE,aAAA;AACF,SAAA;AAED;;;;;;;;;;AAUG;AACH,QAAA,OAAO,EAAE;AACP,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACD,YAAA,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AACjE,aAAA;AACF,SAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACH,QAAA,KAAK,EAAE;AACL,YAAA,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;AACvE,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;AACzE,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC/D,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC/D,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE;AACjE,aAAA;AACF,SAAA;AAED;;;;;;;;;;AAUG;AACH,QAAA,EAAE,EAAE;;;;;;AAMF,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACjE,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAChE,aAAA;;;;;;;;;;AAUD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAChE,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE;AAClE,aAAA;;;;;;AAMD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAClE,aAAA;;;;;AAKD,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AAChE,aAAA;AACD;;;;;;;;;AASG;AACH,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,iBAAA;AACF,aAAA;AACD,YAAA,WAAW,EAAE;gBACX,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAChE,aAAA;AACF,SAAA;AAED;;;;;;;AAOG;AACH,QAAA,EAAE,EAAE;;;;AAIF,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE;AAChE,aAAA;;;;;AAKD,YAAA,UAAU,EAAE;AACV,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,OAAO,EAAE;;;;;;AAMP,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,KAAK,EAAE;;;;AAIL,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAClE,aAAA;AACD,YAAA,MAAM,EAAE;;;;;gBAKN,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;AACvD,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACjE,aAAA;AACF,SAAA;AAED;;;;;;AAMG;AACH,QAAA,MAAM,EAAE;;;;;AAKN,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AACpE,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;AACnE,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAClE,aAAA;AACF,SAAA;AACF,KAAA;;AA6DH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AACI,MAAM,MAAM,GAAG;AACpB;;;AAGG;AACH,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;;;;;;;;AAUG;AACH,IAAA,IAAI,EAAE;AACJ,QAAA,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACvB,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC3B,KAAA;AAED;;;AAGG;AACH,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,GAAG,EAAE;AACH,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED;;;AAGG;AACH,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACxB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACzB,QAAA,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC1B,KAAA;AAED,IAAA,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC3B,IAAA,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;;;;;;"}
@@ -60,6 +60,35 @@
60
60
  * <Badge bgColor="success.lightest" color="success.dark" />
61
61
  * ```
62
62
  */
63
+ /**
64
+ * Halved-saturation counterpart of each primitive `gray.N` — same hue and
65
+ * lightness, HSL saturation cut by ~50% (e.g. `gray.1300` #1E2433 @ 26% →
66
+ * #23262E @ 13%). The blue-tinted `gray` ramp reads as the right neutral in
67
+ * light mode but turns muddy/over-chromatic as a dark surface, so every
68
+ * dark-mode neutral below (`slate.*`, and the `_dark` of `bg`/`fg`/`border`)
69
+ * resolves to this desaturated mirror instead of the raw `gray` step. Light
70
+ * mode is untouched — it keeps referencing `{colors.gray.*}` verbatim.
71
+ *
72
+ * Single source of truth: change a dark neutral here, not at each token.
73
+ */
74
+ const desaturatedGray = {
75
+ 0: '#FEFEFF',
76
+ 50: '#F8F9FB',
77
+ 100: '#F2F4F7',
78
+ 200: '#E5E8EC',
79
+ 300: '#D2D5DB',
80
+ 400: '#B6BAC3',
81
+ 500: '#A2A6B1',
82
+ 600: '#8E939F',
83
+ 800: '#6A6F7C',
84
+ 900: '#595E6B',
85
+ 1000: '#4A4E5A',
86
+ 1100: '#3C404B',
87
+ 1200: '#30343C',
88
+ 1300: '#23262E',
89
+ 1400: '#181A20',
90
+ 1500: '#0E1014',
91
+ };
63
92
  const semanticTokens = {
64
93
  colors: {
65
94
  /**
@@ -97,6 +126,18 @@ const semanticTokens = {
97
126
  darker: {
98
127
  value: { base: '{colors.blue.900}', _dark: '{colors.blue.100}' },
99
128
  }, // high-contrast text
129
+ // Solid brand-blue *fills* for surfaces with white text/icons on top
130
+ // (modal headers, hero/banner gradients, brand badges). `primary.main`/
131
+ // `primary.dark` lighten ~2 stops in dark — right for foreground, too
132
+ // light as a fill — so these stay a deep blue in dark instead. `base`
133
+ // repeats the old main/dark values, so light is unchanged. Bare accents
134
+ // (dots, progress bars) keep `primary.main`.
135
+ fill: {
136
+ value: { base: '{colors.blue.500}', _dark: '{colors.blue.700}' },
137
+ },
138
+ fillStrong: {
139
+ value: { base: '{colors.blue.700}', _dark: '{colors.blue.800}' },
140
+ },
100
141
  },
101
142
  /**
102
143
  * Secondary colors (Violet-based)
@@ -229,6 +270,76 @@ const semanticTokens = {
229
270
  value: { base: '{colors.gold.900}', _dark: '{colors.gold.100}' },
230
271
  },
231
272
  },
273
+ /**
274
+ * `slate.*` — the foundational **mode-aware neutral family**.
275
+ *
276
+ * A first-class neutral palette alongside the raw `gray.*` primitives, but
277
+ * mode-aware: each `slate.N` resolves to `gray.N` in light and to the
278
+ * desaturated counterpart of the *mirrored* step in dark, so a single token
279
+ * carries the same tonal level in both modes (e.g. `slate.300` is a light
280
+ * divider in light and the equivalent dark divider in dark — no `_dark={{…}}`
281
+ * at the call site). It lives under `semanticTokens` only because Chakra
282
+ * requires that for the `_dark` flip; conceptually it is a *foundation*
283
+ * (a tonal scale), not a *role*.
284
+ *
285
+ * When to use which:
286
+ * - Prefer the **role tokens** (`fg`/`bg`/`border`) when one matches the
287
+ * intent — they carry semantics and AA-tuned dark values.
288
+ * - Reach for **`slate.N`** when you need a specific neutral tonal step that
289
+ * no role names (mirroring how you'd otherwise drop to a raw `gray.N`, but
290
+ * keeping the dark flip). `slate` and the role tokens are *distinct* ramps
291
+ * (slate is a mechanical mirror; roles are hand-tuned), so they are not
292
+ * interchangeable in dark mode.
293
+ *
294
+ * `600`/`700` are lifted off the straight mirror (#8E939F/#7C818D) so the
295
+ * secondary/muted text they most often carry clears WCAG AA 4.5:1 on the
296
+ * dark canvas/surface — the straight mirrors measured ~3.0–3.9 there.
297
+ */
298
+ slate: {
299
+ 0: { value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] } },
300
+ 50: { value: { base: '{colors.gray.50}', _dark: desaturatedGray[1400] } },
301
+ 100: {
302
+ value: { base: '{colors.gray.100}', _dark: desaturatedGray[1300] },
303
+ },
304
+ 200: {
305
+ value: { base: '{colors.gray.200}', _dark: desaturatedGray[1200] },
306
+ },
307
+ 300: {
308
+ value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
309
+ },
310
+ 400: {
311
+ value: { base: '{colors.gray.400}', _dark: desaturatedGray[1000] },
312
+ },
313
+ 500: {
314
+ value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
315
+ },
316
+ 600: { value: { base: '{colors.gray.600}', _dark: '#898E99' } },
317
+ 700: { value: { base: '{colors.gray.700}', _dark: '#8D919D' } },
318
+ 800: {
319
+ value: { base: '{colors.gray.800}', _dark: desaturatedGray[600] },
320
+ },
321
+ 900: {
322
+ value: { base: '{colors.gray.900}', _dark: desaturatedGray[500] },
323
+ },
324
+ 1000: {
325
+ value: { base: '{colors.gray.1000}', _dark: desaturatedGray[400] },
326
+ },
327
+ 1100: {
328
+ value: { base: '{colors.gray.1100}', _dark: desaturatedGray[300] },
329
+ },
330
+ 1200: {
331
+ value: { base: '{colors.gray.1200}', _dark: desaturatedGray[200] },
332
+ },
333
+ 1300: {
334
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[100] },
335
+ },
336
+ 1400: {
337
+ value: { base: '{colors.gray.1400}', _dark: desaturatedGray[50] },
338
+ },
339
+ 1500: {
340
+ value: { base: '{colors.gray.1500}', _dark: desaturatedGray[0] },
341
+ },
342
+ },
232
343
  /**
233
344
  * Neutral background tokens — map onto the gray.0–1500 scale.
234
345
  * Use for: page/canvas, raised surfaces (cards, menus), subtle/muted fills,
@@ -241,27 +352,55 @@ const semanticTokens = {
241
352
  * - inverse: high-contrast surface (flips to light in dark mode)
242
353
  */
243
354
  bg: {
355
+ // Chakra's own global css paints `html { background: bg }` — the *plain*
356
+ // `bg` token, not `bg.canvas` — so this is the actual page background
357
+ // wherever no component paints over it. `_light` is pure white (Chakra's
358
+ // value, so light is untouched); `_dark` rejoins our neutral floor instead
359
+ // of Chakra's off-palette black.
360
+ DEFAULT: {
361
+ value: { _light: '{colors.white}', _dark: desaturatedGray[1500] },
362
+ },
244
363
  canvas: {
245
- value: { base: '{colors.gray.0}', _dark: '{colors.gray.1500}' },
364
+ value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] },
246
365
  },
247
366
  surface: {
248
- value: { base: '{colors.white}', _dark: '{colors.gray.1400}' },
367
+ value: { base: '{colors.white}', _dark: desaturatedGray[1400] },
368
+ },
369
+ // Strongly-raised neutral surface — one level above `surface` (e.g. the
370
+ // selected thumb of a SegmentedControl). In dark this is the *lightest*
371
+ // neutral bg token so a raised element reads as lifted toward the light,
372
+ // not recessed. (The `bg.*` dark ramp is otherwise compressed such that
373
+ // `surface` sits below `subtle`/`muted`; `raised` deliberately tops the
374
+ // scale so "raised" has a token that behaves correctly in dark.)
375
+ // NB: named `raised`, not Chakra's `emphasized` — that default token name
376
+ // cannot be overridden via semanticTokens in this setup (it keeps
377
+ // resolving to Chakra's own gray.200), whereas a fresh name is honoured.
378
+ raised: {
379
+ value: { base: '{colors.white}', _dark: desaturatedGray[1100] },
249
380
  },
250
381
  subtle: {
251
- value: { base: '{colors.gray.50}', _dark: '{colors.gray.1300}' },
382
+ value: { base: '{colors.gray.50}', _dark: desaturatedGray[1300] },
252
383
  },
253
384
  muted: {
254
- value: { base: '{colors.gray.100}', _dark: '{colors.gray.1200}' },
385
+ value: { base: '{colors.gray.100}', _dark: desaturatedGray[1200] },
255
386
  },
256
387
  inverse: {
257
- value: { base: '{colors.gray.1300}', _dark: '{colors.gray.50}' },
388
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[50] },
389
+ },
390
+ // Sunken page wash for list/overview surfaces: a gray floor in light so
391
+ // `bg.surface` cards read as raised above it. In dark the `bg.*` ramp is
392
+ // compressed (`subtle` sits *lighter* than `surface`), which would invert
393
+ // that elevation — so the dark value drops to the canvas floor instead.
394
+ // Component-level fills (hover, chips, inner blocks) keep using `bg.subtle`.
395
+ sunken: {
396
+ value: { base: '{colors.gray.50}', _dark: desaturatedGray[1500] },
258
397
  },
259
398
  // Override Chakra's default `bg.panel` (whose `_dark` resolves to Chakra's
260
399
  // own gray.950 = #111111, off our slate palette). Light value is white —
261
400
  // identical to Chakra's default — so this only realigns dark overlay
262
401
  // surfaces (Menu / Modal / Popover / Toast) onto our gray scale.
263
402
  panel: {
264
- value: { base: '{colors.white}', _dark: '{colors.gray.1400}' },
403
+ value: { base: '{colors.white}', _dark: desaturatedGray[1400] },
265
404
  },
266
405
  /**
267
406
  * Row/selection state tints. Use these for selected rows,
@@ -294,26 +433,42 @@ const semanticTokens = {
294
433
  * - inverse: text on inverse surfaces (flips with mode)
295
434
  */
296
435
  fg: {
436
+ // Plain `fg` is Chakra's html-level text color (`html { color: fg }`).
437
+ // `_light` repeats Chakra's value (black); `_dark` rejoins our desaturated
438
+ // neutral so legacy html-level text tracks `fg.default`.
439
+ DEFAULT: {
440
+ value: { _light: '{colors.black}', _dark: desaturatedGray[50] },
441
+ },
442
+ // Strongest text — headings, titles, key figures, emphasis. This is the
443
+ // near-black step that `fg.default` used to be; `default` is now re-pegged
444
+ // to a lighter body weight (see below), so reach for `emphasized` when you
445
+ // specifically want maximum contrast.
446
+ emphasized: {
447
+ value: { base: '{colors.gray.1300}', _dark: desaturatedGray[200] },
448
+ },
297
449
  default: {
298
- // _dark is gray.200 (not gray.50): near-white text on the dark canvas
299
- // ran ~18:1 brighter than the light baseline (~15:1) and close to pure
300
- // white, which causes glare/halation. gray.200 matches the light
301
- // contrast (~15.4:1) while staying AAA.
302
- value: { base: '{colors.gray.1300}', _dark: '{colors.gray.200}' },
450
+ // Primary *body* text. Re-pegged from gray.1300 gray.1000: near-black
451
+ // (gray.1300, ~14:1 on white) is unusually heavy for running copy, and
452
+ // real product usage clustered well below it. gray.1000 (~9:1) is a
453
+ // comfortable AAA body weight; the old near-black step lives on as
454
+ // `fg.emphasized`. _dark drops one step from emphasized for hierarchy.
455
+ value: { base: '{colors.gray.1000}', _dark: desaturatedGray[300] },
303
456
  },
304
457
  muted: {
305
- // _dark lifts gray.400 gray.300: secondary text read as too dim on the
306
- // dark canvas next to fg.default (gray.200). gray.300 sits one step under
307
- // default — restoring the light-mode hierarchy gap — while staying well
308
- // clear of AA (~12.8:1 on bg.canvas, ~11.7:1 on bg.surface). Light value
309
- // (gray.900) is unchanged.
310
- value: { base: '{colors.gray.900}', _dark: '{colors.gray.300}' },
458
+ // Secondary text. _dark sits one step below `default` (~9.5:1 on the dark
459
+ // canvas) to keep the default→muted hierarchy gap. Light value (gray.900)
460
+ // is unchanged.
461
+ value: { base: '{colors.gray.900}', _dark: desaturatedGray[400] },
311
462
  },
312
463
  subtle: {
313
- value: { base: '{colors.gray.700}', _dark: '{colors.gray.600}' },
464
+ // Tertiary / placeholder / icon text. _dark a11y-bumped from the straight
465
+ // mirror (desaturatedGray[600] #8E939F, ~4.06:1 on bg.muted) to #989DA9
466
+ // (~4.6:1) so it clears AA while staying below fg.muted. Light value
467
+ // (gray.700) is unchanged.
468
+ value: { base: '{colors.gray.700}', _dark: '#989DA9' },
314
469
  },
315
470
  inverse: {
316
- value: { base: '{colors.gray.0}', _dark: '{colors.gray.1400}' },
471
+ value: { base: '{colors.gray.0}', _dark: desaturatedGray[1400] },
317
472
  },
318
473
  },
319
474
  /**
@@ -324,14 +479,21 @@ const semanticTokens = {
324
479
  * - strong: high-emphasis borders, focus outlines on neutral
325
480
  */
326
481
  border: {
482
+ // Plain `border` feeds Chakra's `--global-color-border` (the implicit
483
+ // default border color). Not a text color, so its `_dark` takes the
484
+ // straight halved-saturation mirror (no a11y bump). `_light` repeats
485
+ // Chakra's value so light is untouched.
486
+ DEFAULT: {
487
+ value: { _light: '{colors.gray.200}', _dark: desaturatedGray[800] },
488
+ },
327
489
  default: {
328
- value: { base: '{colors.gray.300}', _dark: '{colors.gray.1100}' },
490
+ value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
329
491
  },
330
492
  subtle: {
331
- value: { base: '{colors.gray.200}', _dark: '{colors.gray.1300}' },
493
+ value: { base: '{colors.gray.200}', _dark: desaturatedGray[1300] },
332
494
  },
333
495
  strong: {
334
- value: { base: '{colors.gray.500}', _dark: '{colors.gray.900}' },
496
+ value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
335
497
  },
336
498
  },
337
499
  },