@adia-ai/web-components 0.8.13 → 0.8.15

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 (73) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/components/adia-mark/adia-mark.examples.md +3 -12
  3. package/components/adia-wordmark/adia-wordmark.examples.md +4 -12
  4. package/components/agent-artifact/agent-artifact.examples.md +0 -9
  5. package/components/agent-feedback-bar/agent-feedback-bar.examples.md +0 -11
  6. package/components/alert/alert.examples.md +1 -1
  7. package/components/badge/badge.examples.md +35 -4
  8. package/components/block/block.examples.md +5 -5
  9. package/components/blockquote/blockquote.examples.md +22 -0
  10. package/components/button/button.css +10 -4
  11. package/components/button/button.examples.md +4 -4
  12. package/components/card/card.examples.md +1 -1
  13. package/components/check/check.examples.md +23 -4
  14. package/components/col/col.examples.md +29 -0
  15. package/components/combobox/combobox.examples.md +9 -15
  16. package/components/command/command.examples.md +3 -3
  17. package/components/context-menu/context-menu.a2ui.json +1 -1
  18. package/components/context-menu/context-menu.css +3 -1
  19. package/components/context-menu/context-menu.examples.md +50 -0
  20. package/components/context-menu/context-menu.yaml +1 -1
  21. package/components/date-range-picker/date-range-picker.examples.md +9 -21
  22. package/components/datetime-picker/datetime-picker.examples.md +9 -30
  23. package/components/demo-toggle/demo-toggle.examples.md +1 -1
  24. package/components/display-field/display-field.examples.md +5 -30
  25. package/components/drawer/drawer.examples.md +17 -32
  26. package/components/field/field.examples.md +30 -11
  27. package/components/grid/grid.examples.md +27 -0
  28. package/components/heatmap/heatmap.examples.md +2 -2
  29. package/components/inline-edit/inline-edit.examples.md +32 -0
  30. package/components/integration-card/integration-card.examples.md +10 -27
  31. package/components/list-window/list-window.examples.md +5 -59
  32. package/components/loading-overlay/loading-overlay.examples.md +19 -36
  33. package/components/mark/mark.examples.md +62 -0
  34. package/components/menu/menu.css +8 -2
  35. package/components/nav/nav.examples.md +2 -2
  36. package/components/nav-group/nav-group.examples.md +2 -2
  37. package/components/nav-item/nav-item.css +21 -6
  38. package/components/noodles/noodles.examples.md +11 -11
  39. package/components/number-format/number-format.examples.md +19 -0
  40. package/components/page/page.examples.md +43 -20
  41. package/components/password-strength/password-strength.examples.md +28 -0
  42. package/components/popover/popover.css +7 -1
  43. package/components/preview/preview.examples.md +30 -0
  44. package/components/progress/progress.examples.md +3 -3
  45. package/components/qr-code/qr-code.examples.md +19 -0
  46. package/components/radio/radio.examples.md +23 -4
  47. package/components/relative-time/relative-time.examples.md +19 -0
  48. package/components/row/row.examples.md +20 -0
  49. package/components/skip-nav/skip-nav.examples.md +27 -0
  50. package/components/spinner/spinner.examples.md +5 -12
  51. package/components/stack/stack.examples.md +17 -0
  52. package/components/stat/stat.examples.md +23 -4
  53. package/components/swatch/swatch.examples.md +2 -2
  54. package/components/switch/switch.examples.md +23 -4
  55. package/components/table-toolbar/table-toolbar.examples.md +46 -0
  56. package/components/tabs/tabs.examples.md +13 -16
  57. package/components/tag/tag.examples.md +4 -4
  58. package/components/tags-input/tags-input.examples.md +6 -73
  59. package/components/text/text.examples.md +37 -6
  60. package/components/time-picker/time-picker.examples.md +3 -15
  61. package/components/toc/toc.examples.md +69 -0
  62. package/components/tour/tour.examples.md +119 -0
  63. package/components/visually-hidden/visually-hidden.examples.md +26 -0
  64. package/dist/host.min.css +1 -1
  65. package/dist/host.sheet.js +1 -1
  66. package/dist/theme-provider.min.js +6 -6
  67. package/dist/themes.min.css +1 -1
  68. package/dist/themes.sheet.js +1 -1
  69. package/dist/web-components.min.css +1 -1
  70. package/dist/web-components.sheet.js +1 -1
  71. package/package.json +1 -1
  72. package/styles/colors/material-static.css +8 -8
  73. package/styles/themes.css +460 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-components",
3
- "version": "0.8.13",
3
+ "version": "0.8.15",
4
4
  "description": "AdiaUI web components \u2014 vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui-runtime.",
5
5
  "type": "module",
6
6
  "types": "./index.d.ts",
@@ -76,7 +76,7 @@
76
76
  --md-sys-color-neutral-bright: light-dark(var(--md-sys-color-neutral-350), var(--md-sys-color-neutral-400));
77
77
  --md-sys-color-neutral-low: light-dark(var(--md-sys-color-neutral-350), var(--md-sys-color-neutral-700));
78
78
  --md-sys-color-neutral-high: light-dark(var(--md-sys-color-neutral-650), var(--md-sys-color-neutral-400));
79
- --md-sys-color-neutral-hover: light-dark(var(--md-sys-color-neutral-650), var(--md-sys-color-neutral-350));
79
+ --md-sys-color-neutral-hover: light-dark(var(--md-sys-color-neutral-600), var(--md-sys-color-neutral-550));
80
80
  --md-sys-color-neutral-active: light-dark(var(--md-sys-color-neutral-750), var(--md-sys-color-neutral-250));
81
81
  --md-sys-color-neutral-disabled: light-dark(var(--md-sys-color-neutral-500-600), var(--md-sys-color-neutral-500-600));
82
82
  --md-sys-color-neutral-on-neutral: light-dark(var(--md-sys-color-neutral-050), var(--md-sys-color-neutral-050));
@@ -168,7 +168,7 @@
168
168
  --md-sys-color-primary-bright: light-dark(var(--md-sys-color-primary-350), var(--md-sys-color-primary-400));
169
169
  --md-sys-color-primary-low: light-dark(var(--md-sys-color-primary-350), var(--md-sys-color-primary-700));
170
170
  --md-sys-color-primary-high: light-dark(var(--md-sys-color-primary-650), var(--md-sys-color-primary-400));
171
- --md-sys-color-primary-hover: light-dark(var(--md-sys-color-primary-650), var(--md-sys-color-primary-350));
171
+ --md-sys-color-primary-hover: light-dark(var(--md-sys-color-primary-600), var(--md-sys-color-primary-550));
172
172
  --md-sys-color-primary-active: light-dark(var(--md-sys-color-primary-750), var(--md-sys-color-primary-250));
173
173
  --md-sys-color-primary-disabled: light-dark(var(--md-sys-color-primary-500-600), var(--md-sys-color-primary-500-600));
174
174
  --md-sys-color-primary-on-primary: light-dark(var(--md-sys-color-primary-050), var(--md-sys-color-primary-050));
@@ -260,7 +260,7 @@
260
260
  --md-sys-color-secondary-bright: light-dark(var(--md-sys-color-secondary-350), var(--md-sys-color-secondary-400));
261
261
  --md-sys-color-secondary-low: light-dark(var(--md-sys-color-secondary-350), var(--md-sys-color-secondary-700));
262
262
  --md-sys-color-secondary-high: light-dark(var(--md-sys-color-secondary-650), var(--md-sys-color-secondary-400));
263
- --md-sys-color-secondary-hover: light-dark(var(--md-sys-color-secondary-650), var(--md-sys-color-secondary-350));
263
+ --md-sys-color-secondary-hover: light-dark(var(--md-sys-color-secondary-600), var(--md-sys-color-secondary-550));
264
264
  --md-sys-color-secondary-active: light-dark(var(--md-sys-color-secondary-750), var(--md-sys-color-secondary-250));
265
265
  --md-sys-color-secondary-disabled: light-dark(var(--md-sys-color-secondary-500-600), var(--md-sys-color-secondary-500-600));
266
266
  --md-sys-color-secondary-on-secondary: light-dark(var(--md-sys-color-secondary-050), var(--md-sys-color-secondary-050));
@@ -352,7 +352,7 @@
352
352
  --md-sys-color-tertiary-bright: light-dark(var(--md-sys-color-tertiary-350), var(--md-sys-color-tertiary-400));
353
353
  --md-sys-color-tertiary-low: light-dark(var(--md-sys-color-tertiary-350), var(--md-sys-color-tertiary-700));
354
354
  --md-sys-color-tertiary-high: light-dark(var(--md-sys-color-tertiary-650), var(--md-sys-color-tertiary-400));
355
- --md-sys-color-tertiary-hover: light-dark(var(--md-sys-color-tertiary-650), var(--md-sys-color-tertiary-350));
355
+ --md-sys-color-tertiary-hover: light-dark(var(--md-sys-color-tertiary-600), var(--md-sys-color-tertiary-550));
356
356
  --md-sys-color-tertiary-active: light-dark(var(--md-sys-color-tertiary-750), var(--md-sys-color-tertiary-250));
357
357
  --md-sys-color-tertiary-disabled: light-dark(var(--md-sys-color-tertiary-500-600), var(--md-sys-color-tertiary-500-600));
358
358
  --md-sys-color-tertiary-on-tertiary: light-dark(var(--md-sys-color-tertiary-050), var(--md-sys-color-tertiary-050));
@@ -444,7 +444,7 @@
444
444
  --md-sys-color-info-bright: light-dark(var(--md-sys-color-info-350), var(--md-sys-color-info-400));
445
445
  --md-sys-color-info-low: light-dark(var(--md-sys-color-info-350), var(--md-sys-color-info-700));
446
446
  --md-sys-color-info-high: light-dark(var(--md-sys-color-info-650), var(--md-sys-color-info-400));
447
- --md-sys-color-info-hover: light-dark(var(--md-sys-color-info-650), var(--md-sys-color-info-350));
447
+ --md-sys-color-info-hover: light-dark(var(--md-sys-color-info-600), var(--md-sys-color-info-550));
448
448
  --md-sys-color-info-active: light-dark(var(--md-sys-color-info-750), var(--md-sys-color-info-250));
449
449
  --md-sys-color-info-disabled: light-dark(var(--md-sys-color-info-500-600), var(--md-sys-color-info-500-600));
450
450
  --md-sys-color-info-on-info: light-dark(var(--md-sys-color-info-050), var(--md-sys-color-info-050));
@@ -536,7 +536,7 @@
536
536
  --md-sys-color-success-bright: light-dark(var(--md-sys-color-success-350), var(--md-sys-color-success-400));
537
537
  --md-sys-color-success-low: light-dark(var(--md-sys-color-success-350), var(--md-sys-color-success-700));
538
538
  --md-sys-color-success-high: light-dark(var(--md-sys-color-success-650), var(--md-sys-color-success-400));
539
- --md-sys-color-success-hover: light-dark(var(--md-sys-color-success-650), var(--md-sys-color-success-350));
539
+ --md-sys-color-success-hover: light-dark(var(--md-sys-color-success-600), var(--md-sys-color-success-550));
540
540
  --md-sys-color-success-active: light-dark(var(--md-sys-color-success-750), var(--md-sys-color-success-250));
541
541
  --md-sys-color-success-disabled: light-dark(var(--md-sys-color-success-500-600), var(--md-sys-color-success-500-600));
542
542
  --md-sys-color-success-on-success: light-dark(var(--md-sys-color-success-050), var(--md-sys-color-success-050));
@@ -628,7 +628,7 @@
628
628
  --md-sys-color-warning-bright: light-dark(var(--md-sys-color-warning-350), var(--md-sys-color-warning-400));
629
629
  --md-sys-color-warning-low: light-dark(var(--md-sys-color-warning-350), var(--md-sys-color-warning-700));
630
630
  --md-sys-color-warning-high: light-dark(var(--md-sys-color-warning-650), var(--md-sys-color-warning-400));
631
- --md-sys-color-warning-hover: light-dark(var(--md-sys-color-warning-650), var(--md-sys-color-warning-350));
631
+ --md-sys-color-warning-hover: light-dark(var(--md-sys-color-warning-600), var(--md-sys-color-warning-550));
632
632
  --md-sys-color-warning-active: light-dark(var(--md-sys-color-warning-750), var(--md-sys-color-warning-250));
633
633
  --md-sys-color-warning-disabled: light-dark(var(--md-sys-color-warning-500-600), var(--md-sys-color-warning-500-600));
634
634
  --md-sys-color-warning-on-warning: light-dark(var(--md-sys-color-warning-050), var(--md-sys-color-warning-050));
@@ -720,7 +720,7 @@
720
720
  --md-sys-color-danger-bright: light-dark(var(--md-sys-color-danger-350), var(--md-sys-color-danger-400));
721
721
  --md-sys-color-danger-low: light-dark(var(--md-sys-color-danger-350), var(--md-sys-color-danger-700));
722
722
  --md-sys-color-danger-high: light-dark(var(--md-sys-color-danger-650), var(--md-sys-color-danger-400));
723
- --md-sys-color-danger-hover: light-dark(var(--md-sys-color-danger-650), var(--md-sys-color-danger-350));
723
+ --md-sys-color-danger-hover: light-dark(var(--md-sys-color-danger-600), var(--md-sys-color-danger-550));
724
724
  --md-sys-color-danger-active: light-dark(var(--md-sys-color-danger-750), var(--md-sys-color-danger-250));
725
725
  --md-sys-color-danger-disabled: light-dark(var(--md-sys-color-danger-500-600), var(--md-sys-color-danger-500-600));
726
726
  --md-sys-color-danger-on-danger: light-dark(var(--md-sys-color-danger-050), var(--md-sys-color-danger-050));
package/styles/themes.css CHANGED
@@ -4,19 +4,27 @@
4
4
  12 named identities, each a real recolor + a real typeface pairing — not
5
5
  a decorative hue nudge. Overrides two independent layers per theme:
6
6
 
7
- 1. Color — the PRIMARY/SECONDARY/TERTIARY raw OKLCH ramps
7
+ 1. Color — the NEUTRAL/PRIMARY/SECONDARY/TERTIARY raw OKLCH ramps
8
8
  (--md-sys-color-{family}-{050..950} + the {500}-alpha ladder).
9
9
  material-static.css's own semantic roles (--md-sys-color-primary,
10
10
  -hover, -container, -outline, -on-surface, etc.) are themselves
11
11
  light-dark() reads of THESE stops — overriding the raw ramp here
12
12
  recolors the entire semantic surface with zero component changes.
13
- Each family's ramp keeps the shipped, contrast-verified L/C curve
14
- (per-stop lightness and chroma untouched) and only rotates hue by a
15
- constant delta — the exact mechanism the old --a-{family}-hue knobs
16
- used, so contrast ratios against neutral surfaces are unaffected.
17
- NEUTRAL and the four intent families (info/success/warning/danger)
18
- are deliberately left alone chrome and status meaning stay
19
- constant across themes; only brand identity rotates.
13
+ Each family's ramp keeps its own shipped L/C curve (per-stop
14
+ lightness untouched; chroma scales by the theme's own multiplier)
15
+ and only rotates hue by a constant delta — the exact mechanism the
16
+ old --a-{family}-hue knobs used. This preserves the verified WCAG
17
+ AA 4.5:1 thresholds (npm run verify:contrast, 42/42 pairs, every
18
+ theme) it does not claim contrast ratios are literally
19
+ unchanged, only that they still clear the bar.
20
+ NEUTRAL's hue is aligned to the theme's own PRIMARY hue — its
21
+ low, theme-scaled chroma (shipped base ~0.002-0.03, up to ~0.044
22
+ under the most vivid themes' multiplier) keeps the tint subtle,
23
+ not a real recolor — canvas and chrome read as "belonging" to the
24
+ theme's identity rather than a fixed grey underneath a rotating
25
+ accent. The four intent families (info/success/warning/danger)
26
+ are deliberately left alone — status meaning stays constant
27
+ across themes.
20
28
  2. Typography — --a-font-family-display / -text, real Google Fonts,
21
29
  each theme a distinct pairing. This file only points at the
22
30
  family names — it does NOT @import the Google Fonts stylesheet
@@ -57,6 +65,43 @@
57
65
 
58
66
  /* ── Atlas — A cartographer’s desk at the edge of the map — steel-blue survey ink, brass dividers, verdigris where old markers have weathered. ── */
59
67
  [theme="atlas"] {
68
+ /* neutral — hue 215, chroma 0.9x */
69
+ --md-sys-color-neutral-100: oklch(0.9551 0 79.82);
70
+ --md-sys-color-neutral-125: oklch(0.9335 0.0015 237.78);
71
+ --md-sys-color-neutral-150: oklch(0.9108 0.0032 209.47);
72
+ --md-sys-color-neutral-175: oklch(0.8886 0.0041 204.27);
73
+ --md-sys-color-neutral-200: oklch(0.8659 0.0064 209.51);
74
+ --md-sys-color-neutral-250: oklch(0.8221 0.0115 205.78);
75
+ --md-sys-color-neutral-300: oklch(0.7785 0.0158 205.43);
76
+ --md-sys-color-neutral-350: oklch(0.7319 0.0212 211.86);
77
+ --md-sys-color-neutral-400: oklch(0.6881 0.0247 211.68);
78
+ --md-sys-color-neutral-450: oklch(0.6443 0.0274 212.47);
79
+ --md-sys-color-neutral-500: oklch(0.598 0.0284 215);
80
+ --md-sys-color-neutral-550: oklch(0.5548 0.0265 214.57);
81
+ --md-sys-color-neutral-600: oklch(0.5085 0.0242 218.14);
82
+ --md-sys-color-neutral-650: oklch(0.4639 0.0205 216.11);
83
+ --md-sys-color-neutral-700: oklch(0.4185 0.0174 217.37);
84
+ --md-sys-color-neutral-750: oklch(0.372 0.0141 219.32);
85
+ --md-sys-color-neutral-800: oklch(0.3239 0.0107 222.73);
86
+ --md-sys-color-neutral-825: oklch(0.3006 0.009 219.17);
87
+ --md-sys-color-neutral-850: oklch(0.274 0.0072 230.09);
88
+ --md-sys-color-neutral-875: oklch(0.2497 0.0052 226.72);
89
+ --md-sys-color-neutral-900: oklch(0.2241 0.0054 226.77);
90
+ --md-sys-color-neutral-925: oklch(0.1944 0.0046 238.03);
91
+ --md-sys-color-neutral-950: oklch(0.163 0.0024 237.93);
92
+ --md-sys-color-neutral-050: oklch(1 0 79.82);
93
+ --md-sys-color-neutral-075: oklch(0.9784 0.001 187.08);
94
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0284 215 / 5%);
95
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0284 215 / 10%);
96
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0284 215 / 20%);
97
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0284 215 / 30%);
98
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0284 215 / 40%);
99
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0284 215 / 50%);
100
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0284 215 / 60%);
101
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0284 215 / 70%);
102
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0284 215 / 80%);
103
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0284 215 / 90%);
104
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0284 215 / 95%);
60
105
  /* primary — hue 215, chroma 0.9x */
61
106
  --md-sys-color-primary-100: oklch(0.9609 0.0054 214.34);
62
107
  --md-sys-color-primary-125: oklch(0.9413 0.0125 210.5);
@@ -178,6 +223,43 @@
178
223
 
179
224
  /* ── Signal — A darkened control room: amber telemetry glowing against near-black glass, cyan blips sweeping the radar. ── */
180
225
  [theme="signal"] {
226
+ /* neutral — hue 55, chroma 1.3x */
227
+ --md-sys-color-neutral-100: oklch(0.9551 0 279.82);
228
+ --md-sys-color-neutral-125: oklch(0.9335 0.0022 77.78);
229
+ --md-sys-color-neutral-150: oklch(0.9108 0.0046 49.47);
230
+ --md-sys-color-neutral-175: oklch(0.8886 0.006 44.27);
231
+ --md-sys-color-neutral-200: oklch(0.8659 0.0092 49.51);
232
+ --md-sys-color-neutral-250: oklch(0.8221 0.0166 45.78);
233
+ --md-sys-color-neutral-300: oklch(0.7785 0.0229 45.43);
234
+ --md-sys-color-neutral-350: oklch(0.7319 0.0306 51.86);
235
+ --md-sys-color-neutral-400: oklch(0.6881 0.0356 51.68);
236
+ --md-sys-color-neutral-450: oklch(0.6443 0.0395 52.47);
237
+ --md-sys-color-neutral-500: oklch(0.598 0.0411 55);
238
+ --md-sys-color-neutral-550: oklch(0.5548 0.0382 54.57);
239
+ --md-sys-color-neutral-600: oklch(0.5085 0.035 58.14);
240
+ --md-sys-color-neutral-650: oklch(0.4639 0.0296 56.11);
241
+ --md-sys-color-neutral-700: oklch(0.4185 0.0251 57.37);
242
+ --md-sys-color-neutral-750: oklch(0.372 0.0204 59.32);
243
+ --md-sys-color-neutral-800: oklch(0.3239 0.0155 62.73);
244
+ --md-sys-color-neutral-825: oklch(0.3006 0.013 59.17);
245
+ --md-sys-color-neutral-850: oklch(0.274 0.0104 70.09);
246
+ --md-sys-color-neutral-875: oklch(0.2497 0.0075 66.72);
247
+ --md-sys-color-neutral-900: oklch(0.2241 0.0078 66.77);
248
+ --md-sys-color-neutral-925: oklch(0.1944 0.0066 78.03);
249
+ --md-sys-color-neutral-950: oklch(0.163 0.0035 77.93);
250
+ --md-sys-color-neutral-050: oklch(1 0 279.82);
251
+ --md-sys-color-neutral-075: oklch(0.9784 0.0014 27.08);
252
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0411 55 / 5%);
253
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0411 55 / 10%);
254
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0411 55 / 20%);
255
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0411 55 / 30%);
256
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0411 55 / 40%);
257
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0411 55 / 50%);
258
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0411 55 / 60%);
259
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0411 55 / 70%);
260
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0411 55 / 80%);
261
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0411 55 / 90%);
262
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0411 55 / 95%);
181
263
  /* primary — hue 55, chroma 1.3x */
182
264
  --md-sys-color-primary-100: oklch(0.9609 0.0078 54.34);
183
265
  --md-sys-color-primary-125: oklch(0.9413 0.0181 50.5);
@@ -299,6 +381,43 @@
299
381
 
300
382
  /* ── Terrarium — Humid glasshouse walls, moss climbing terracotta pots, a new leaf unfurling toward the light. ── */
301
383
  [theme="terrarium"] {
384
+ /* neutral — hue 145, chroma 0.85x */
385
+ --md-sys-color-neutral-100: oklch(0.9551 0 9.82);
386
+ --md-sys-color-neutral-125: oklch(0.9335 0.0014 167.78);
387
+ --md-sys-color-neutral-150: oklch(0.9108 0.003 139.47);
388
+ --md-sys-color-neutral-175: oklch(0.8886 0.0039 134.27);
389
+ --md-sys-color-neutral-200: oklch(0.8659 0.006 139.51);
390
+ --md-sys-color-neutral-250: oklch(0.8221 0.0109 135.78);
391
+ --md-sys-color-neutral-300: oklch(0.7785 0.015 135.43);
392
+ --md-sys-color-neutral-350: oklch(0.7319 0.02 141.86);
393
+ --md-sys-color-neutral-400: oklch(0.6881 0.0233 141.68);
394
+ --md-sys-color-neutral-450: oklch(0.6443 0.0258 142.47);
395
+ --md-sys-color-neutral-500: oklch(0.598 0.0269 145);
396
+ --md-sys-color-neutral-550: oklch(0.5548 0.025 144.57);
397
+ --md-sys-color-neutral-600: oklch(0.5085 0.0229 148.14);
398
+ --md-sys-color-neutral-650: oklch(0.4639 0.0194 146.11);
399
+ --md-sys-color-neutral-700: oklch(0.4185 0.0164 147.37);
400
+ --md-sys-color-neutral-750: oklch(0.372 0.0133 149.32);
401
+ --md-sys-color-neutral-800: oklch(0.3239 0.0101 152.73);
402
+ --md-sys-color-neutral-825: oklch(0.3006 0.0085 149.17);
403
+ --md-sys-color-neutral-850: oklch(0.274 0.0068 160.09);
404
+ --md-sys-color-neutral-875: oklch(0.2497 0.0049 156.72);
405
+ --md-sys-color-neutral-900: oklch(0.2241 0.0051 156.77);
406
+ --md-sys-color-neutral-925: oklch(0.1944 0.0043 168.03);
407
+ --md-sys-color-neutral-950: oklch(0.163 0.0023 167.93);
408
+ --md-sys-color-neutral-050: oklch(1 0 9.82);
409
+ --md-sys-color-neutral-075: oklch(0.9784 0.0009 117.08);
410
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0269 145 / 5%);
411
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0269 145 / 10%);
412
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0269 145 / 20%);
413
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0269 145 / 30%);
414
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0269 145 / 40%);
415
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0269 145 / 50%);
416
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0269 145 / 60%);
417
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0269 145 / 70%);
418
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0269 145 / 80%);
419
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0269 145 / 90%);
420
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0269 145 / 95%);
302
421
  /* primary — hue 145, chroma 0.85x */
303
422
  --md-sys-color-primary-100: oklch(0.9609 0.0051 144.34);
304
423
  --md-sys-color-primary-125: oklch(0.9413 0.0118 140.5);
@@ -420,6 +539,43 @@
420
539
 
421
540
  /* ── Ledger — A leather-bound ledger, gold-leaf numerals, ink dried decades ago but still legible. ── */
422
541
  [theme="ledger"] {
542
+ /* neutral — hue 250, chroma 0.75x */
543
+ --md-sys-color-neutral-100: oklch(0.9551 0 114.82);
544
+ --md-sys-color-neutral-125: oklch(0.9335 0.0013 272.78);
545
+ --md-sys-color-neutral-150: oklch(0.9108 0.0026 244.47);
546
+ --md-sys-color-neutral-175: oklch(0.8886 0.0035 239.27);
547
+ --md-sys-color-neutral-200: oklch(0.8659 0.0053 244.51);
548
+ --md-sys-color-neutral-250: oklch(0.8221 0.0096 240.78);
549
+ --md-sys-color-neutral-300: oklch(0.7785 0.0132 240.43);
550
+ --md-sys-color-neutral-350: oklch(0.7319 0.0176 246.86);
551
+ --md-sys-color-neutral-400: oklch(0.6881 0.0206 246.68);
552
+ --md-sys-color-neutral-450: oklch(0.6443 0.0228 247.47);
553
+ --md-sys-color-neutral-500: oklch(0.598 0.0237 250);
554
+ --md-sys-color-neutral-550: oklch(0.5548 0.0221 249.57);
555
+ --md-sys-color-neutral-600: oklch(0.5085 0.0202 253.14);
556
+ --md-sys-color-neutral-650: oklch(0.4639 0.0171 251.11);
557
+ --md-sys-color-neutral-700: oklch(0.4185 0.0145 252.37);
558
+ --md-sys-color-neutral-750: oklch(0.372 0.0118 254.32);
559
+ --md-sys-color-neutral-800: oklch(0.3239 0.0089 257.73);
560
+ --md-sys-color-neutral-825: oklch(0.3006 0.0075 254.17);
561
+ --md-sys-color-neutral-850: oklch(0.274 0.006 265.09);
562
+ --md-sys-color-neutral-875: oklch(0.2497 0.0044 261.72);
563
+ --md-sys-color-neutral-900: oklch(0.2241 0.0045 261.77);
564
+ --md-sys-color-neutral-925: oklch(0.1944 0.0038 273.03);
565
+ --md-sys-color-neutral-950: oklch(0.163 0.002 272.93);
566
+ --md-sys-color-neutral-050: oklch(1 0 114.82);
567
+ --md-sys-color-neutral-075: oklch(0.9784 0.0008 222.08);
568
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0237 250 / 5%);
569
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0237 250 / 10%);
570
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0237 250 / 20%);
571
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0237 250 / 30%);
572
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0237 250 / 40%);
573
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0237 250 / 50%);
574
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0237 250 / 60%);
575
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0237 250 / 70%);
576
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0237 250 / 80%);
577
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0237 250 / 90%);
578
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0237 250 / 95%);
423
579
  /* primary — hue 250, chroma 0.75x */
424
580
  --md-sys-color-primary-100: oklch(0.9609 0.0045 249.34);
425
581
  --md-sys-color-primary-125: oklch(0.9413 0.0104 245.5);
@@ -541,6 +697,43 @@
541
697
 
542
698
  /* ── Arcade — A CRT cabinet humming in a dim arcade, magenta and cyan bleeding across the scanlines. ── */
543
699
  [theme="arcade"] {
700
+ /* neutral — hue 335, chroma 1.4x */
701
+ --md-sys-color-neutral-100: oklch(0.9551 0 199.82);
702
+ --md-sys-color-neutral-125: oklch(0.9335 0.0024 357.78);
703
+ --md-sys-color-neutral-150: oklch(0.9108 0.0049 329.47);
704
+ --md-sys-color-neutral-175: oklch(0.8886 0.0064 324.27);
705
+ --md-sys-color-neutral-200: oklch(0.8659 0.0099 329.51);
706
+ --md-sys-color-neutral-250: oklch(0.8221 0.0179 325.78);
707
+ --md-sys-color-neutral-300: oklch(0.7785 0.0246 325.43);
708
+ --md-sys-color-neutral-350: oklch(0.7319 0.0329 331.86);
709
+ --md-sys-color-neutral-400: oklch(0.6881 0.0384 331.68);
710
+ --md-sys-color-neutral-450: oklch(0.6443 0.0426 332.47);
711
+ --md-sys-color-neutral-500: oklch(0.598 0.0442 335);
712
+ --md-sys-color-neutral-550: oklch(0.5548 0.0412 334.57);
713
+ --md-sys-color-neutral-600: oklch(0.5085 0.0377 338.14);
714
+ --md-sys-color-neutral-650: oklch(0.4639 0.0319 336.11);
715
+ --md-sys-color-neutral-700: oklch(0.4185 0.027 337.37);
716
+ --md-sys-color-neutral-750: oklch(0.372 0.022 339.32);
717
+ --md-sys-color-neutral-800: oklch(0.3239 0.0167 342.73);
718
+ --md-sys-color-neutral-825: oklch(0.3006 0.014 339.17);
719
+ --md-sys-color-neutral-850: oklch(0.274 0.0112 350.09);
720
+ --md-sys-color-neutral-875: oklch(0.2497 0.0081 346.72);
721
+ --md-sys-color-neutral-900: oklch(0.2241 0.0084 346.77);
722
+ --md-sys-color-neutral-925: oklch(0.1944 0.0071 358.03);
723
+ --md-sys-color-neutral-950: oklch(0.163 0.0038 357.93);
724
+ --md-sys-color-neutral-050: oklch(1 0 199.82);
725
+ --md-sys-color-neutral-075: oklch(0.9784 0.0015 307.08);
726
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0442 335 / 5%);
727
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0442 335 / 10%);
728
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0442 335 / 20%);
729
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0442 335 / 30%);
730
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0442 335 / 40%);
731
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0442 335 / 50%);
732
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0442 335 / 60%);
733
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0442 335 / 70%);
734
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0442 335 / 80%);
735
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0442 335 / 90%);
736
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0442 335 / 95%);
544
737
  /* primary — hue 335, chroma 1.4x */
545
738
  --md-sys-color-primary-100: oklch(0.9609 0.0084 334.34);
546
739
  --md-sys-color-primary-125: oklch(0.9413 0.0195 330.5);
@@ -662,6 +855,43 @@
662
855
 
663
856
  /* ── Meridian — A 1960s airport concourse — jet-teal signage and coral accents under a wall of clocks. ── */
664
857
  [theme="meridian"] {
858
+ /* neutral — hue 185, chroma 1.05x */
859
+ --md-sys-color-neutral-100: oklch(0.9551 0 49.82);
860
+ --md-sys-color-neutral-125: oklch(0.9335 0.0018 207.78);
861
+ --md-sys-color-neutral-150: oklch(0.9108 0.0037 179.47);
862
+ --md-sys-color-neutral-175: oklch(0.8886 0.0048 174.27);
863
+ --md-sys-color-neutral-200: oklch(0.8659 0.0075 179.51);
864
+ --md-sys-color-neutral-250: oklch(0.8221 0.0134 175.78);
865
+ --md-sys-color-neutral-300: oklch(0.7785 0.0185 175.43);
866
+ --md-sys-color-neutral-350: oklch(0.7319 0.0247 181.86);
867
+ --md-sys-color-neutral-400: oklch(0.6881 0.0288 181.68);
868
+ --md-sys-color-neutral-450: oklch(0.6443 0.0319 182.47);
869
+ --md-sys-color-neutral-500: oklch(0.598 0.0332 185);
870
+ --md-sys-color-neutral-550: oklch(0.5548 0.0309 184.57);
871
+ --md-sys-color-neutral-600: oklch(0.5085 0.0282 188.14);
872
+ --md-sys-color-neutral-650: oklch(0.4639 0.0239 186.11);
873
+ --md-sys-color-neutral-700: oklch(0.4185 0.0203 187.37);
874
+ --md-sys-color-neutral-750: oklch(0.372 0.0165 189.32);
875
+ --md-sys-color-neutral-800: oklch(0.3239 0.0125 192.73);
876
+ --md-sys-color-neutral-825: oklch(0.3006 0.0105 189.17);
877
+ --md-sys-color-neutral-850: oklch(0.274 0.0084 200.09);
878
+ --md-sys-color-neutral-875: oklch(0.2497 0.0061 196.72);
879
+ --md-sys-color-neutral-900: oklch(0.2241 0.0063 196.77);
880
+ --md-sys-color-neutral-925: oklch(0.1944 0.0054 208.03);
881
+ --md-sys-color-neutral-950: oklch(0.163 0.0028 207.93);
882
+ --md-sys-color-neutral-050: oklch(1 0 49.82);
883
+ --md-sys-color-neutral-075: oklch(0.9784 0.0012 157.08);
884
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0332 185 / 5%);
885
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0332 185 / 10%);
886
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0332 185 / 20%);
887
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0332 185 / 30%);
888
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0332 185 / 40%);
889
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0332 185 / 50%);
890
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0332 185 / 60%);
891
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0332 185 / 70%);
892
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0332 185 / 80%);
893
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0332 185 / 90%);
894
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0332 185 / 95%);
665
895
  /* primary — hue 185, chroma 1.05x */
666
896
  --md-sys-color-primary-100: oklch(0.9609 0.0063 184.34);
667
897
  --md-sys-color-primary-125: oklch(0.9413 0.0146 180.5);
@@ -783,6 +1013,43 @@
783
1013
 
784
1014
  /* ── Solstice — Sun low over red rock, sienna dust settling, sage scrub holding the day’s last heat. ── */
785
1015
  [theme="solstice"] {
1016
+ /* neutral — hue 35, chroma 0.9x */
1017
+ --md-sys-color-neutral-100: oklch(0.9551 0 259.82);
1018
+ --md-sys-color-neutral-125: oklch(0.9335 0.0015 57.78);
1019
+ --md-sys-color-neutral-150: oklch(0.9108 0.0032 29.47);
1020
+ --md-sys-color-neutral-175: oklch(0.8886 0.0041 24.27);
1021
+ --md-sys-color-neutral-200: oklch(0.8659 0.0064 29.51);
1022
+ --md-sys-color-neutral-250: oklch(0.8221 0.0115 25.78);
1023
+ --md-sys-color-neutral-300: oklch(0.7785 0.0158 25.43);
1024
+ --md-sys-color-neutral-350: oklch(0.7319 0.0212 31.86);
1025
+ --md-sys-color-neutral-400: oklch(0.6881 0.0247 31.68);
1026
+ --md-sys-color-neutral-450: oklch(0.6443 0.0274 32.47);
1027
+ --md-sys-color-neutral-500: oklch(0.598 0.0284 35);
1028
+ --md-sys-color-neutral-550: oklch(0.5548 0.0265 34.57);
1029
+ --md-sys-color-neutral-600: oklch(0.5085 0.0242 38.14);
1030
+ --md-sys-color-neutral-650: oklch(0.4639 0.0205 36.11);
1031
+ --md-sys-color-neutral-700: oklch(0.4185 0.0174 37.37);
1032
+ --md-sys-color-neutral-750: oklch(0.372 0.0141 39.32);
1033
+ --md-sys-color-neutral-800: oklch(0.3239 0.0107 42.73);
1034
+ --md-sys-color-neutral-825: oklch(0.3006 0.009 39.17);
1035
+ --md-sys-color-neutral-850: oklch(0.274 0.0072 50.09);
1036
+ --md-sys-color-neutral-875: oklch(0.2497 0.0052 46.72);
1037
+ --md-sys-color-neutral-900: oklch(0.2241 0.0054 46.77);
1038
+ --md-sys-color-neutral-925: oklch(0.1944 0.0046 58.03);
1039
+ --md-sys-color-neutral-950: oklch(0.163 0.0024 57.93);
1040
+ --md-sys-color-neutral-050: oklch(1 0 259.82);
1041
+ --md-sys-color-neutral-075: oklch(0.9784 0.001 7.08);
1042
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0284 35 / 5%);
1043
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0284 35 / 10%);
1044
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0284 35 / 20%);
1045
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0284 35 / 30%);
1046
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0284 35 / 40%);
1047
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0284 35 / 50%);
1048
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0284 35 / 60%);
1049
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0284 35 / 70%);
1050
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0284 35 / 80%);
1051
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0284 35 / 90%);
1052
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0284 35 / 95%);
786
1053
  /* primary — hue 35, chroma 0.9x */
787
1054
  --md-sys-color-primary-100: oklch(0.9609 0.0054 34.34);
788
1055
  --md-sys-color-primary-125: oklch(0.9413 0.0125 30.5);
@@ -904,6 +1171,43 @@
904
1171
 
905
1172
  /* ── Glacier — White light off blue ice, breath fogging in violet-grey shadow, instruments reading absolute quiet. ── */
906
1173
  [theme="glacier"] {
1174
+ /* neutral — hue 200, chroma 0.7x */
1175
+ --md-sys-color-neutral-100: oklch(0.9551 0 64.82);
1176
+ --md-sys-color-neutral-125: oklch(0.9335 0.0012 222.78);
1177
+ --md-sys-color-neutral-150: oklch(0.9108 0.0025 194.47);
1178
+ --md-sys-color-neutral-175: oklch(0.8886 0.0032 189.27);
1179
+ --md-sys-color-neutral-200: oklch(0.8659 0.005 194.51);
1180
+ --md-sys-color-neutral-250: oklch(0.8221 0.009 190.78);
1181
+ --md-sys-color-neutral-300: oklch(0.7785 0.0123 190.43);
1182
+ --md-sys-color-neutral-350: oklch(0.7319 0.0165 196.86);
1183
+ --md-sys-color-neutral-400: oklch(0.6881 0.0192 196.68);
1184
+ --md-sys-color-neutral-450: oklch(0.6443 0.0213 197.47);
1185
+ --md-sys-color-neutral-500: oklch(0.598 0.0221 200);
1186
+ --md-sys-color-neutral-550: oklch(0.5548 0.0206 199.57);
1187
+ --md-sys-color-neutral-600: oklch(0.5085 0.0188 203.14);
1188
+ --md-sys-color-neutral-650: oklch(0.4639 0.016 201.11);
1189
+ --md-sys-color-neutral-700: oklch(0.4185 0.0135 202.37);
1190
+ --md-sys-color-neutral-750: oklch(0.372 0.011 204.32);
1191
+ --md-sys-color-neutral-800: oklch(0.3239 0.0083 207.73);
1192
+ --md-sys-color-neutral-825: oklch(0.3006 0.007 204.17);
1193
+ --md-sys-color-neutral-850: oklch(0.274 0.0056 215.09);
1194
+ --md-sys-color-neutral-875: oklch(0.2497 0.0041 211.72);
1195
+ --md-sys-color-neutral-900: oklch(0.2241 0.0042 211.77);
1196
+ --md-sys-color-neutral-925: oklch(0.1944 0.0036 223.03);
1197
+ --md-sys-color-neutral-950: oklch(0.163 0.0019 222.93);
1198
+ --md-sys-color-neutral-050: oklch(1 0 64.82);
1199
+ --md-sys-color-neutral-075: oklch(0.9784 0.0008 172.08);
1200
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0221 200 / 5%);
1201
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0221 200 / 10%);
1202
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0221 200 / 20%);
1203
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0221 200 / 30%);
1204
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0221 200 / 40%);
1205
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0221 200 / 50%);
1206
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0221 200 / 60%);
1207
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0221 200 / 70%);
1208
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0221 200 / 80%);
1209
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0221 200 / 90%);
1210
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0221 200 / 95%);
907
1211
  /* primary — hue 200, chroma 0.7x */
908
1212
  --md-sys-color-primary-100: oklch(0.9609 0.0042 199.34);
909
1213
  --md-sys-color-primary-125: oklch(0.9413 0.0097 195.5);
@@ -1025,6 +1329,43 @@
1025
1329
 
1026
1330
  /* ── Ember — Molten metal pouring under a soot-blackened roof, sparks arcing orange against the dark. ── */
1027
1331
  [theme="ember"] {
1332
+ /* neutral — hue 25, chroma 1.2x */
1333
+ --md-sys-color-neutral-100: oklch(0.9551 0 249.82);
1334
+ --md-sys-color-neutral-125: oklch(0.9335 0.002 47.78);
1335
+ --md-sys-color-neutral-150: oklch(0.9108 0.0042 19.47);
1336
+ --md-sys-color-neutral-175: oklch(0.8886 0.0055 14.27);
1337
+ --md-sys-color-neutral-200: oklch(0.8659 0.0085 19.51);
1338
+ --md-sys-color-neutral-250: oklch(0.8221 0.0154 15.78);
1339
+ --md-sys-color-neutral-300: oklch(0.7785 0.0211 15.43);
1340
+ --md-sys-color-neutral-350: oklch(0.7319 0.0282 21.86);
1341
+ --md-sys-color-neutral-400: oklch(0.6881 0.0329 21.68);
1342
+ --md-sys-color-neutral-450: oklch(0.6443 0.0365 22.47);
1343
+ --md-sys-color-neutral-500: oklch(0.598 0.0379 25);
1344
+ --md-sys-color-neutral-550: oklch(0.5548 0.0353 24.57);
1345
+ --md-sys-color-neutral-600: oklch(0.5085 0.0323 28.14);
1346
+ --md-sys-color-neutral-650: oklch(0.4639 0.0274 26.11);
1347
+ --md-sys-color-neutral-700: oklch(0.4185 0.0232 27.37);
1348
+ --md-sys-color-neutral-750: oklch(0.372 0.0188 29.32);
1349
+ --md-sys-color-neutral-800: oklch(0.3239 0.0143 32.73);
1350
+ --md-sys-color-neutral-825: oklch(0.3006 0.012 29.17);
1351
+ --md-sys-color-neutral-850: oklch(0.274 0.0096 40.09);
1352
+ --md-sys-color-neutral-875: oklch(0.2497 0.007 36.72);
1353
+ --md-sys-color-neutral-900: oklch(0.2241 0.0072 36.77);
1354
+ --md-sys-color-neutral-925: oklch(0.1944 0.0061 48.03);
1355
+ --md-sys-color-neutral-950: oklch(0.163 0.0032 47.93);
1356
+ --md-sys-color-neutral-050: oklch(1 0 249.82);
1357
+ --md-sys-color-neutral-075: oklch(0.9784 0.0013 357.08);
1358
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0379 25 / 5%);
1359
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0379 25 / 10%);
1360
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0379 25 / 20%);
1361
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0379 25 / 30%);
1362
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0379 25 / 40%);
1363
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0379 25 / 50%);
1364
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0379 25 / 60%);
1365
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0379 25 / 70%);
1366
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0379 25 / 80%);
1367
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0379 25 / 90%);
1368
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0379 25 / 95%);
1028
1369
  /* primary — hue 25, chroma 1.2x */
1029
1370
  --md-sys-color-primary-100: oklch(0.9609 0.0072 24.34);
1030
1371
  --md-sys-color-primary-125: oklch(0.9413 0.0167 20.5);
@@ -1146,6 +1487,43 @@
1146
1487
 
1147
1488
  /* ── Botanica — A botanist’s notebook — dried rose petals between the pages, sage-ink notes in the margin. ── */
1148
1489
  [theme="botanica"] {
1490
+ /* neutral — hue 350, chroma 0.65x */
1491
+ --md-sys-color-neutral-100: oklch(0.9551 0 214.82);
1492
+ --md-sys-color-neutral-125: oklch(0.9335 0.0011 12.78);
1493
+ --md-sys-color-neutral-150: oklch(0.9108 0.0023 344.47);
1494
+ --md-sys-color-neutral-175: oklch(0.8886 0.003 339.27);
1495
+ --md-sys-color-neutral-200: oklch(0.8659 0.0046 344.51);
1496
+ --md-sys-color-neutral-250: oklch(0.8221 0.0083 340.78);
1497
+ --md-sys-color-neutral-300: oklch(0.7785 0.0114 340.43);
1498
+ --md-sys-color-neutral-350: oklch(0.7319 0.0153 346.86);
1499
+ --md-sys-color-neutral-400: oklch(0.6881 0.0178 346.68);
1500
+ --md-sys-color-neutral-450: oklch(0.6443 0.0198 347.47);
1501
+ --md-sys-color-neutral-500: oklch(0.598 0.0205 350);
1502
+ --md-sys-color-neutral-550: oklch(0.5548 0.0191 349.57);
1503
+ --md-sys-color-neutral-600: oklch(0.5085 0.0175 353.14);
1504
+ --md-sys-color-neutral-650: oklch(0.4639 0.0148 351.11);
1505
+ --md-sys-color-neutral-700: oklch(0.4185 0.0125 352.37);
1506
+ --md-sys-color-neutral-750: oklch(0.372 0.0102 354.32);
1507
+ --md-sys-color-neutral-800: oklch(0.3239 0.0077 357.73);
1508
+ --md-sys-color-neutral-825: oklch(0.3006 0.0065 354.17);
1509
+ --md-sys-color-neutral-850: oklch(0.274 0.0052 5.09);
1510
+ --md-sys-color-neutral-875: oklch(0.2497 0.0038 1.72);
1511
+ --md-sys-color-neutral-900: oklch(0.2241 0.0039 1.77);
1512
+ --md-sys-color-neutral-925: oklch(0.1944 0.0033 13.03);
1513
+ --md-sys-color-neutral-950: oklch(0.163 0.0018 12.93);
1514
+ --md-sys-color-neutral-050: oklch(1 0 214.82);
1515
+ --md-sys-color-neutral-075: oklch(0.9784 0.0007 322.08);
1516
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0205 350 / 5%);
1517
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0205 350 / 10%);
1518
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0205 350 / 20%);
1519
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0205 350 / 30%);
1520
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0205 350 / 40%);
1521
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0205 350 / 50%);
1522
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0205 350 / 60%);
1523
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0205 350 / 70%);
1524
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0205 350 / 80%);
1525
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0205 350 / 90%);
1526
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0205 350 / 95%);
1149
1527
  /* primary — hue 350, chroma 0.65x */
1150
1528
  --md-sys-color-primary-100: oklch(0.9609 0.0039 349.34);
1151
1529
  --md-sys-color-primary-125: oklch(0.9413 0.009 345.5);
@@ -1267,6 +1645,43 @@
1267
1645
 
1268
1646
  /* ── Vector — A blueprint unrolled under a drafting lamp — safety-blue linework, construction-yellow markups. ── */
1269
1647
  [theme="vector"] {
1648
+ /* neutral — hue 230, chroma 1x */
1649
+ --md-sys-color-neutral-100: oklch(0.9551 0 94.82);
1650
+ --md-sys-color-neutral-125: oklch(0.9335 0.0017 252.78);
1651
+ --md-sys-color-neutral-150: oklch(0.9108 0.0035 224.47);
1652
+ --md-sys-color-neutral-175: oklch(0.8886 0.0046 219.27);
1653
+ --md-sys-color-neutral-200: oklch(0.8659 0.0071 224.51);
1654
+ --md-sys-color-neutral-250: oklch(0.8221 0.0128 220.78);
1655
+ --md-sys-color-neutral-300: oklch(0.7785 0.0176 220.43);
1656
+ --md-sys-color-neutral-350: oklch(0.7319 0.0235 226.86);
1657
+ --md-sys-color-neutral-400: oklch(0.6881 0.0274 226.68);
1658
+ --md-sys-color-neutral-450: oklch(0.6443 0.0304 227.47);
1659
+ --md-sys-color-neutral-500: oklch(0.598 0.0316 230);
1660
+ --md-sys-color-neutral-550: oklch(0.5548 0.0294 229.57);
1661
+ --md-sys-color-neutral-600: oklch(0.5085 0.0269 233.14);
1662
+ --md-sys-color-neutral-650: oklch(0.4639 0.0228 231.11);
1663
+ --md-sys-color-neutral-700: oklch(0.4185 0.0193 232.37);
1664
+ --md-sys-color-neutral-750: oklch(0.372 0.0157 234.32);
1665
+ --md-sys-color-neutral-800: oklch(0.3239 0.0119 237.73);
1666
+ --md-sys-color-neutral-825: oklch(0.3006 0.01 234.17);
1667
+ --md-sys-color-neutral-850: oklch(0.274 0.008 245.09);
1668
+ --md-sys-color-neutral-875: oklch(0.2497 0.0058 241.72);
1669
+ --md-sys-color-neutral-900: oklch(0.2241 0.006 241.77);
1670
+ --md-sys-color-neutral-925: oklch(0.1944 0.0051 253.03);
1671
+ --md-sys-color-neutral-950: oklch(0.163 0.0027 252.93);
1672
+ --md-sys-color-neutral-050: oklch(1 0 94.82);
1673
+ --md-sys-color-neutral-075: oklch(0.9784 0.0011 202.08);
1674
+ --md-sys-color-neutral-500-050: oklch(0.598 0.0316 230 / 5%);
1675
+ --md-sys-color-neutral-500-100: oklch(0.598 0.0316 230 / 10%);
1676
+ --md-sys-color-neutral-500-200: oklch(0.598 0.0316 230 / 20%);
1677
+ --md-sys-color-neutral-500-300: oklch(0.598 0.0316 230 / 30%);
1678
+ --md-sys-color-neutral-500-400: oklch(0.598 0.0316 230 / 40%);
1679
+ --md-sys-color-neutral-500-500: oklch(0.598 0.0316 230 / 50%);
1680
+ --md-sys-color-neutral-500-600: oklch(0.598 0.0316 230 / 60%);
1681
+ --md-sys-color-neutral-500-700: oklch(0.598 0.0316 230 / 70%);
1682
+ --md-sys-color-neutral-500-800: oklch(0.598 0.0316 230 / 80%);
1683
+ --md-sys-color-neutral-500-900: oklch(0.598 0.0316 230 / 90%);
1684
+ --md-sys-color-neutral-500-950: oklch(0.598 0.0316 230 / 95%);
1270
1685
  /* primary — hue 230, chroma 1x */
1271
1686
  --md-sys-color-primary-100: oklch(0.9609 0.006 229.34);
1272
1687
  --md-sys-color-primary-125: oklch(0.9413 0.0139 225.5);
@@ -1388,6 +1803,43 @@
1388
1803
 
1389
1804
  /* ── Velour — A velvet-lined jewelry case, deep plum shadow, one line of champagne gold catching the light. ── */
1390
1805
  [theme="velour"] {
1806
+ /* neutral — hue 300, chroma 0.95x */
1807
+ --md-sys-color-neutral-100: oklch(0.9551 0 164.82);
1808
+ --md-sys-color-neutral-125: oklch(0.9335 0.0016 322.78);
1809
+ --md-sys-color-neutral-150: oklch(0.9108 0.0033 294.47);
1810
+ --md-sys-color-neutral-175: oklch(0.8886 0.0044 289.27);
1811
+ --md-sys-color-neutral-200: oklch(0.8659 0.0067 294.51);
1812
+ --md-sys-color-neutral-250: oklch(0.8221 0.0122 290.78);
1813
+ --md-sys-color-neutral-300: oklch(0.7785 0.0167 290.43);
1814
+ --md-sys-color-neutral-350: oklch(0.7319 0.0223 296.86);
1815
+ --md-sys-color-neutral-400: oklch(0.6881 0.026 296.68);
1816
+ --md-sys-color-neutral-450: oklch(0.6443 0.0289 297.47);
1817
+ --md-sys-color-neutral-500: oklch(0.598 0.03 300);
1818
+ --md-sys-color-neutral-550: oklch(0.5548 0.0279 299.57);
1819
+ --md-sys-color-neutral-600: oklch(0.5085 0.0256 303.14);
1820
+ --md-sys-color-neutral-650: oklch(0.4639 0.0217 301.11);
1821
+ --md-sys-color-neutral-700: oklch(0.4185 0.0183 302.37);
1822
+ --md-sys-color-neutral-750: oklch(0.372 0.0149 304.32);
1823
+ --md-sys-color-neutral-800: oklch(0.3239 0.0113 307.73);
1824
+ --md-sys-color-neutral-825: oklch(0.3006 0.0095 304.17);
1825
+ --md-sys-color-neutral-850: oklch(0.274 0.0076 315.09);
1826
+ --md-sys-color-neutral-875: oklch(0.2497 0.0055 311.72);
1827
+ --md-sys-color-neutral-900: oklch(0.2241 0.0057 311.77);
1828
+ --md-sys-color-neutral-925: oklch(0.1944 0.0048 323.03);
1829
+ --md-sys-color-neutral-950: oklch(0.163 0.0026 322.93);
1830
+ --md-sys-color-neutral-050: oklch(1 0 164.82);
1831
+ --md-sys-color-neutral-075: oklch(0.9784 0.001 272.08);
1832
+ --md-sys-color-neutral-500-050: oklch(0.598 0.03 300 / 5%);
1833
+ --md-sys-color-neutral-500-100: oklch(0.598 0.03 300 / 10%);
1834
+ --md-sys-color-neutral-500-200: oklch(0.598 0.03 300 / 20%);
1835
+ --md-sys-color-neutral-500-300: oklch(0.598 0.03 300 / 30%);
1836
+ --md-sys-color-neutral-500-400: oklch(0.598 0.03 300 / 40%);
1837
+ --md-sys-color-neutral-500-500: oklch(0.598 0.03 300 / 50%);
1838
+ --md-sys-color-neutral-500-600: oklch(0.598 0.03 300 / 60%);
1839
+ --md-sys-color-neutral-500-700: oklch(0.598 0.03 300 / 70%);
1840
+ --md-sys-color-neutral-500-800: oklch(0.598 0.03 300 / 80%);
1841
+ --md-sys-color-neutral-500-900: oklch(0.598 0.03 300 / 90%);
1842
+ --md-sys-color-neutral-500-950: oklch(0.598 0.03 300 / 95%);
1391
1843
  /* primary — hue 300, chroma 0.95x */
1392
1844
  --md-sys-color-primary-100: oklch(0.9609 0.0057 299.34);
1393
1845
  --md-sys-color-primary-125: oklch(0.9413 0.0132 295.5);