@memobit/themes 2.0.0 → 2.2.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.
Files changed (37) hide show
  1. package/README.md +27 -10
  2. package/dist/authored/sandy-parchment.css +1 -1
  3. package/dist/authored.css +1 -1
  4. package/dist/authoredThemes.d.ts +80 -0
  5. package/dist/authoredThemes.js +475 -5
  6. package/dist/index.d.ts +3 -2
  7. package/dist/index.js +2 -2
  8. package/dist/registry.d.ts +7 -0
  9. package/dist/registry.js +13 -0
  10. package/dist/themeConfig.js +17 -111
  11. package/dist/themes/ascend-contour-night.css +83 -0
  12. package/dist/themes/ascend-contour.css +83 -0
  13. package/dist/themes/cookbook-slate.css +83 -0
  14. package/dist/themes/cookbook-terracotta.css +83 -0
  15. package/dist/themes/garage-night-drive.css +83 -0
  16. package/dist/themes/garage-redline.css +83 -0
  17. package/dist/themes/garage-workshop.css +83 -0
  18. package/dist/themes/hub-deep-water.css +83 -0
  19. package/dist/themes/hub-shallows.css +83 -0
  20. package/dist/themes/impulse-pause.css +83 -0
  21. package/dist/themes/impulse-still-water.css +83 -0
  22. package/dist/themes/nutritrack-fresh-market.css +83 -0
  23. package/dist/themes/nutritrack-verdant.css +83 -0
  24. package/dist/themes/pocket-chip.css +83 -0
  25. package/dist/themes/pocket-receipt.css +83 -0
  26. package/dist/themes/pulse-ivory.css +83 -0
  27. package/dist/themes/pulse-night-chart.css +83 -0
  28. package/dist/themes/readout-highlighter.css +83 -0
  29. package/dist/themes/readout-night-reader.css +83 -0
  30. package/dist/themes/recall-calling-card.css +83 -0
  31. package/dist/themes/recall-stage-light.css +83 -0
  32. package/dist/themes/seeds-blossom.css +83 -0
  33. package/dist/themes/seeds-nightlight.css +83 -0
  34. package/dist/themes/tasks-deep-work.css +83 -0
  35. package/dist/themes/tasks-legal-pad.css +83 -0
  36. package/dist/themes.css +2099 -0
  37. package/package.json +3 -1
@@ -0,0 +1,83 @@
1
+ [data-theme='pocket-chip']{color-scheme:dark;--font-body:'Manrope', system-ui, sans-serif;--font-display:'Sora', system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:normal;--display-weight:600;--display-size:var(--font-size-lg);--display-transform:none;--display-tracking:-0.01em;--label-weight:600;--label-transform:none;--label-tracking:0.02em;--header-weight:600;--canvas-layers:linear-gradient(160deg, #191c21 0%, #121417 60%, #0e1013 100%);--surface-canvas:#121417;--surface-card:#1a1d22;--surface-raised:#15171b;--surface-raised-alt:#20242a;--surface-overlay:#21252b;--button-fill:#22262d;--surface-overlay-card:#1a1d22;--surface-sunken:#262a31;--control-hover:#272b32;--surface-hover:color-mix(in oklab, #e0b25a 8%, transparent);--surface-stripe:#1c1f24;--rating-empty:color-mix(in oklab, #262a31 85%, #f3f1ec);--surface-selected:color-mix(in oklab, #e0b25a 18%, transparent);--surface-blur:none;--text-strong:#f3f1ec;--text-default:#dcd9d2;--text-soft:#bdb9b0;--text-muted:#9a968d;--text-subtle:#77736b;--text-link:#e0b25a;--text-link-hover:#efcb85;--border-subtle:rgba(243, 241, 236, 0.08);--border-default:rgba(243, 241, 236, 0.14);--border-strong:rgba(243, 241, 236, 0.14);--border-card:rgba(243, 241, 236, 0.08);--border-card-hover:rgba(214, 166, 74, 0.45);--field-bg:#15171b;--field-bg-focus:#15171b;--field-bg-disabled:color-mix(in oklab, #15171b 94%, #f3f1ec);--field-fg:#dcd9d2;--field-border:rgba(243, 241, 236, 0.16);--field-border-hover:#d6a64a;--field-border-focus:#e0b25a;--field-placeholder:#77736b;--field-label:#9a968d;--field-ring:color-mix(in oklab, #e0b25a 24%, transparent);--tone-neutral-solid:#f3f1ec;--tone-neutral-solid-hover:color-mix(in oklab, #f3f1ec 70%, #dcd9d2);--tone-neutral-on-solid:#17130a;--tone-neutral-soft:#272b32;--tone-neutral-soft-hover:color-mix(in oklab, #272b32 92%, #f3f1ec);--tone-neutral-on-soft:#f3f1ec;--tone-neutral-border:rgba(243, 241, 236, 0.14);--tone-neutral-text:#bdb9b0;--tone-accent-solid:#d6a64a;--tone-accent-mark:#e0b25a;--tone-accent-solid-hover:#e2b862;--tone-accent-on-solid:#17130a;--tone-accent-soft:color-mix(in oklab, #e0b25a 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #e0b25a 24%, transparent);--tone-accent-on-soft:#e0b25a;--tone-accent-border:color-mix(in oklab, #e0b25a 40%, transparent);--tone-accent-text:#e0b25a;--tone-success-solid:#5cbf86;--tone-success-mark:#5cbf86;--tone-success-solid-hover:#74cb98;--tone-success-on-solid:#17130a;--tone-success-soft:color-mix(in oklab, #5cbf86 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #5cbf86 24%, transparent);--tone-success-on-soft:#7ccf9f;--tone-success-border:color-mix(in oklab, #5cbf86 40%, transparent);--tone-success-text:#7ccf9f;--tone-warning-solid:#f09060;--tone-warning-mark:#f09060;--tone-warning-solid-hover:#f4a47b;--tone-warning-on-solid:#17130a;--tone-warning-soft:color-mix(in oklab, #f09060 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #f09060 24%, transparent);--tone-warning-on-soft:#f5a57e;--tone-warning-border:color-mix(in oklab, #f09060 40%, transparent);--tone-warning-text:#f5a57e;--tone-danger-solid:#ee6b6b;--tone-danger-mark:#ee6b6b;--tone-danger-solid-hover:#f28585;--tone-danger-on-solid:#17130a;--tone-danger-soft:color-mix(in oklab, #ee6b6b 16%, transparent);--tone-danger-soft-hover:color-mix(in oklab, #ee6b6b 24%, transparent);--tone-danger-on-soft:#f38c8c;--tone-danger-border:color-mix(in oklab, #ee6b6b 40%, transparent);--tone-danger-text:#f38c8c;--accent-glow:#c97b4a;--selected-bg:var(--tone-accent-solid);--selected-bg-hover:var(--tone-accent-solid-hover);--selected-fg:var(--tone-accent-on-solid);--selected-border:var(--tone-accent-solid);--selected-solid:var(--tone-accent-solid);--selected-solid-fg:var(--tone-accent-on-solid);--shadow-color:color-mix(in oklab, #000 45%, transparent);--shadow-color-strong:color-mix(in oklab, #000 62%, transparent);--shadow-sm:0 1px 0 rgba(243, 241, 236, 0.04) inset, 0 2px 6px rgba(0, 0, 0, 0.35);--shadow-md:0 14px 32px -16px rgba(0, 0, 0, 0.75), 0 1px 0 rgba(243, 241, 236, 0.04) inset;--shadow-lg:0 28px 72px rgba(0, 0, 0, 0.7);--scrim:color-mix(in oklab, #f3f1ec 45%, transparent);--body-background:var(--canvas-layers), var(--surface-canvas);--body-background-base:var(--surface-canvas);--body-background-wash:var(--canvas-layers), var(--surface-canvas);--body-background-glow:none;--body-color:var(--text-default);--body-color-accent:var(--text-strong);--body-color-muted:var(--text-muted);--body-title-color:var(--text-strong);--body-sub-title-color:var(--text-soft);--body-accent-color:var(--tone-accent-text);--body-danger-color:var(--tone-danger-text);--backdrop-color:var(--scrim);--box-shadow:var(--shadow-color);--text-shadow:var(--shadow-color);--border-color:var(--border-strong);--delimiter-color:var(--border-subtle);--links-color:var(--text-link);--links-hover-color:var(--text-link-hover);--font-family:var(--font-body);--font-family-sans:var(--font-body);--font-family-display:var(--font-display);--font-family-mono:var(--font-mono);--header-background-color:var(--surface-raised);--header-border-bottom-color:var(--border-subtle);--header-color:var(--text-strong);--header-font-weight:var(--header-weight);--button-default-background-color:var(--button-fill);--button-default-border-color:var(--border-default);--button-default-color:var(--text-default);--button-default-hover-background-color:var(--control-hover);--button-default-hover-border-color:var(--field-border-hover);--button-default-hover-color:var(--text-strong);--button-ghost-background-color:transparent;--button-ghost-border-color:transparent;--button-ghost-color:var(--text-soft);--button-ghost-hover-background-color:var(--control-hover);--button-ghost-hover-border-color:transparent;--button-ghost-hover-color:var(--text-strong);--button-plain-color:var(--text-soft);--button-plain-hover-color:var(--text-strong);--button-info-background-color:var(--tone-accent-solid);--button-info-border-color:var(--tone-accent-mark);--button-info-color:var(--tone-accent-on-solid);--button-info-hover-background-color:var(--tone-accent-solid-hover);--button-info-hover-border-color:var(--tone-accent-mark);--button-info-hover-color:var(--tone-accent-on-solid);--toast-info-background-color:var(--tone-accent-soft);--toast-info-border-color:var(--tone-accent-border);--toast-info-color:var(--tone-accent-on-soft);--progress-info-bar-border-color:var(--tone-accent-mark);--progress-info-bar-fill-color:var(--tone-accent-mark);--rating-color-info:var(--tone-accent-mark);--card-tint-info-background:var(--tone-accent-soft);--button-success-background-color:var(--tone-success-solid);--button-success-border-color:var(--tone-success-mark);--button-success-color:var(--tone-success-on-solid);--button-success-hover-background-color:var(--tone-success-solid-hover);--button-success-hover-border-color:var(--tone-success-mark);--button-success-hover-color:var(--tone-success-on-solid);--toast-success-background-color:var(--tone-success-soft);--toast-success-border-color:var(--tone-success-border);--toast-success-color:var(--tone-success-on-soft);--progress-success-bar-border-color:var(--tone-success-mark);--progress-success-bar-fill-color:var(--tone-success-mark);--rating-color-success:var(--tone-success-mark);--card-tint-success-background:var(--tone-success-soft);--button-warning-background-color:var(--tone-warning-solid);--button-warning-border-color:var(--tone-warning-mark);--button-warning-color:var(--tone-warning-on-solid);--button-warning-hover-background-color:var(--tone-warning-solid-hover);--button-warning-hover-border-color:var(--tone-warning-mark);--button-warning-hover-color:var(--tone-warning-on-solid);--toast-warning-background-color:var(--tone-warning-soft);--toast-warning-border-color:var(--tone-warning-border);--toast-warning-color:var(--tone-warning-on-soft);--progress-warning-bar-border-color:var(--tone-warning-mark);--progress-warning-bar-fill-color:var(--tone-warning-mark);--rating-color-warning:var(--tone-warning-mark);--card-tint-warning-background:var(--tone-warning-soft);--button-danger-background-color:var(--tone-danger-solid);--button-danger-border-color:var(--tone-danger-mark);--button-danger-color:var(--tone-danger-on-solid);--button-danger-hover-background-color:var(--tone-danger-solid-hover);--button-danger-hover-border-color:var(--tone-danger-mark);--button-danger-hover-color:var(--tone-danger-on-solid);--toast-danger-background-color:var(--tone-danger-soft);--toast-danger-border-color:var(--tone-danger-border);--toast-danger-color:var(--tone-danger-on-soft);--progress-danger-bar-border-color:var(--tone-danger-mark);--progress-danger-bar-fill-color:var(--tone-danger-mark);--rating-color-danger:var(--tone-danger-mark);--card-tint-danger-background:var(--tone-danger-soft);--progress-bar-background-color:var(--surface-sunken);--progress-bar-color:var(--text-default);--progress-default-bar-border-color:var(--border-strong);--progress-default-bar-fill-color:var(--text-muted);--rating-empty-color:var(--rating-empty);--rating-empty-label-color:var(--text-muted);--rating-half-rate-empty-color:var(--rating-empty);--card-tint-default-background:var(--surface-raised-alt);--card-accent-color:var(--tone-accent-text);--card-backdrop-filter:var(--surface-blur);--card-background-accent-color:var(--surface-raised-alt);--card-background-color:var(--surface-card);--card-border-accent-color:var(--tone-accent-mark);--card-border-color:var(--border-card);--card-box-shadow:var(--shadow-md);--card-color:var(--text-default);--card-footer-background-color:var(--surface-raised-alt);--card-footer-color:var(--text-soft);--card-hover-border-color:var(--border-card-hover);--card-surface-box-shadow:var(--shadow-sm);--card-title-color:var(--text-strong);--card-title-font-family:var(--font-display);--card-title-font-size:var(--display-size);--card-title-font-style:var(--display-style);--card-title-font-weight:var(--display-weight);--card-title-letter-spacing:var(--display-tracking);--card-title-text-transform:var(--display-transform);--modal-backdrop-filter:var(--surface-blur);--modal-background-color:var(--surface-overlay-card);--modal-body-color:var(--text-default);--modal-border-color:var(--border-card);--modal-box-shadow:var(--shadow-lg);--modal-box-shadow-hover:var(--shadow-lg);--modal-color:var(--text-default);--modal-footer-background-color:var(--surface-raised-alt);--modal-header-background-color:var(--surface-raised-alt);--modal-header-color:var(--text-strong);--modal-surface-box-shadow:var(--shadow-lg);--modal-title-color:var(--text-strong);--modal-title-font-family:var(--font-display);--modal-title-font-size:var(--font-size-xl);--modal-title-font-style:normal;--modal-title-font-weight:600;--modal-title-letter-spacing:-0.01em;--modal-title-text-transform:none;--drawer-background-color:var(--surface-overlay-card);--drawer-header-background-color:var(--surface-raised-alt);--drawer-border-color:var(--border-card);--drawer-shadow:var(--shadow-lg);--form-control-background-color:var(--field-bg);--form-control-border-color:var(--field-border);--form-control-color:var(--field-fg);--form-control-focus-background-color:var(--field-bg-focus);--form-control-focus-border-color:var(--field-border-focus);--form-control-focus-color:var(--field-fg);--form-control-focus-ring:var(--field-ring);--form-control-error-background-color:color-mix(in oklab, var(--tone-danger-solid) 6%, var(--field-bg));--form-control-error-border-color:var(--tone-danger-mark);--form-control-error-color:var(--tone-danger-text);--form-control-success-background-color:color-mix(in oklab, var(--tone-success-solid) 7%, var(--field-bg));--form-control-success-border-color:var(--tone-success-mark);--form-control-success-color:var(--tone-success-text);--form-control-font-family:var(--font-body);--form-control-label-color:var(--field-label);--form-control-label-font-size:var(--font-size-xs);--form-control-label-font-weight:var(--label-weight);--form-control-label-letter-spacing:var(--label-tracking);--form-control-label-text-transform:var(--label-transform);--form-control-placeholder-color:var(--field-placeholder);--form-control-selection-background-color:var(--selected-solid);--form-control-selection-border-color:var(--selected-solid);--form-control-selection-color:var(--selected-solid-fg);--form-control-selection-label-color:var(--text-default);--datepicker-input-background-color:var(--field-bg);--dropdown-border-color:var(--field-border);--dropdown-header-background-color:var(--field-bg);--dropdown-header-border-focus-color:var(--field-border-focus);--dropdown-header-color:var(--field-fg);--dropdown-options-background-color:var(--surface-overlay);--dropdown-options-color:var(--text-default);--dropdown-options-hover-background-color:var(--surface-hover);--dropdown-options-hover-color:var(--text-strong);--dropdown-options-selected-background-color:var(--surface-selected);--dropdown-options-selected-color:var(--text-strong);--dropdown-action-background-color:var(--surface-raised-alt);--dropdown-action-color:var(--text-link);--dropdown-action-hover-background-color:var(--surface-hover);--dropdown-action-hover-color:var(--text-link-hover);--dropdown-chips-background-color:var(--selected-bg);--dropdown-chips-border-color:var(--selected-border);--dropdown-chips-color:var(--selected-fg);--dropdown-chips-hover-background-color:var(--selected-bg-hover);--slider-track-background-color:var(--surface-sunken);--slider-track-border-color:var(--field-border);--slider-track-hover-background-color:var(--control-hover);--slider-track-hover-border-color:var(--field-border-hover);--slider-thumb-background-color:var(--tone-accent-mark);--slider-thumb-border-color:var(--tone-accent-mark);--slider-thumb-hover-background-color:var(--tone-accent-solid-hover);--slider-thumb-hover-border-color:var(--tone-accent-solid-hover);--calendar-background-color:var(--surface-overlay);--calendar-border-color:var(--border-default);--calendar-day-color:var(--text-soft);--calendar-day-disabled-color:var(--text-subtle);--calendar-day-hover-background-color:var(--control-hover);--calendar-day-selected-background-color:var(--tone-accent-solid);--calendar-day-selected-color:var(--tone-accent-on-solid);--calendar-day-today-border-color:var(--tone-accent-mark);--calendar-day-weekend-color:var(--text-muted);--calendar-header-background-color:var(--surface-raised-alt);--calendar-header-color:var(--text-strong);--chip-hover-background-color:var(--surface-hover);--chip-hover-border-color:var(--border-strong);--chip-hover-color:var(--text-strong);--chip-selected-background-color:var(--selected-bg);--chip-selected-border-color:var(--selected-border);--chip-selected-color:var(--selected-fg);--chip-selected-count-color:color-mix(in oklab, var(--selected-fg) 72%, transparent);--list-alternate-background-color:var(--surface-stripe);--list-hover-background-color:var(--surface-hover);--tabs-active-background-color:var(--selected-bg);--tabs-active-color:var(--selected-fg);--tabs-inactive-background-color:transparent;--tabs-inactive-color:var(--text-muted);--tooltip-background-color:var(--tone-neutral-solid);--tooltip-border-color:var(--tone-neutral-solid);--tooltip-color:var(--tone-neutral-on-solid);--popover-background-color:var(--surface-overlay);--popover-border-color:var(--border-default);--popover-color:var(--text-default);--popover-arrow-color:var(--border-default);--loader-border-color:var(--tone-accent-soft);--loader-border-top-color:var(--tone-accent-mark);--tour-hud-accent-color:var(--tone-accent-mark);--note-container-effect-background-color:var(--tone-accent-soft);--note-container-effect-color:var(--tone-accent-on-soft);--note-container-effect-border-left-color:var(--tone-accent-mark);--glow-box-shadow-color:0 0 16px color-mix(in oklab, var(--tone-accent-mark) 45%, transparent);--glow-hover-border-color:var(--tone-accent-border);--infuse-effect-before-background:linear-gradient(90deg, var(--tone-accent-mark), var(--accent-glow));--infuse-effect-hover-border-color:var(--tone-accent-mark);--infuse-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent);--up-lift-effect-before-background:linear-gradient(135deg, var(--tone-accent-mark), var(--accent-glow));--up-lift-effect-box-shadow-color:var(--shadow-color-strong);--up-lift-effect-hover-border-color:var(--tone-accent-mark);--up-lift-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent)}
2
+ /*
3
+ * Component recipes for the authored themes. Badge and Chip take a tone and one shared set
4
+ * of roles (soft background, ink on soft, border), so a "success" badge, a selected
5
+ * "success" chip and a success toast carry the same three colours.
6
+ *
7
+ * These rules sit here rather than in @memobit/libs while the classic themes still drive
8
+ * the same components. Once the classic themes are retired they move into the lib.
9
+ */
10
+
11
+ [data-theme='pocket-chip'] .badge-variant--default {
12
+ --recipe-soft: var(--tone-neutral-soft);
13
+ --recipe-soft-hover: var(--tone-neutral-soft-hover);
14
+ --recipe-on-soft: var(--tone-neutral-on-soft);
15
+ --recipe-border: var(--tone-neutral-border);
16
+ }
17
+
18
+ [data-theme='pocket-chip'] :is(.badge-variant--info, .chip--info) {
19
+ --recipe-soft: var(--tone-accent-soft);
20
+ --recipe-soft-hover: var(--tone-accent-soft-hover);
21
+ --recipe-on-soft: var(--tone-accent-on-soft);
22
+ --recipe-border: var(--tone-accent-border);
23
+ }
24
+
25
+ [data-theme='pocket-chip'] :is(.badge-variant--success, .chip--success) {
26
+ --recipe-soft: var(--tone-success-soft);
27
+ --recipe-soft-hover: var(--tone-success-soft-hover);
28
+ --recipe-on-soft: var(--tone-success-on-soft);
29
+ --recipe-border: var(--tone-success-border);
30
+ }
31
+
32
+ [data-theme='pocket-chip'] :is(.badge-variant--warning, .chip--warning) {
33
+ --recipe-soft: var(--tone-warning-soft);
34
+ --recipe-soft-hover: var(--tone-warning-soft-hover);
35
+ --recipe-on-soft: var(--tone-warning-on-soft);
36
+ --recipe-border: var(--tone-warning-border);
37
+ }
38
+
39
+ [data-theme='pocket-chip'] :is(.badge-variant--danger, .chip--danger) {
40
+ --recipe-soft: var(--tone-danger-soft);
41
+ --recipe-soft-hover: var(--tone-danger-soft-hover);
42
+ --recipe-on-soft: var(--tone-danger-on-soft);
43
+ --recipe-border: var(--tone-danger-border);
44
+ }
45
+
46
+ [data-theme='pocket-chip']
47
+ .badge:is(.badge-variant--default, .badge-variant--info, .badge-variant--success, .badge-variant--warning, .badge-variant--danger) {
48
+ border-color: var(--recipe-border);
49
+ background-color: var(--recipe-soft);
50
+ color: var(--recipe-on-soft);
51
+ }
52
+
53
+ [data-theme='pocket-chip'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger) {
54
+ border-color: var(--border-default);
55
+ background: transparent;
56
+ color: var(--text-default);
57
+ }
58
+
59
+ [data-theme='pocket-chip'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger):hover:not(:disabled) {
60
+ border-color: var(--recipe-border);
61
+ background: var(--surface-hover);
62
+ color: var(--text-strong);
63
+ }
64
+
65
+ [data-theme='pocket-chip'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected {
66
+ border-color: var(--recipe-border);
67
+ background: var(--recipe-soft);
68
+ color: var(--recipe-on-soft);
69
+ }
70
+
71
+ [data-theme='pocket-chip'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected:hover:not(:disabled) {
72
+ border-color: var(--recipe-border);
73
+ background: var(--recipe-soft-hover);
74
+ color: var(--recipe-on-soft);
75
+ }
76
+
77
+ /* A default chip carries no tone, so its selected state is the theme's selection style. */
78
+ [data-theme='pocket-chip'] .chip.chip--default {
79
+ --recipe-soft: var(--selected-bg);
80
+ --recipe-soft-hover: var(--selected-bg-hover);
81
+ --recipe-on-soft: var(--selected-fg);
82
+ --recipe-border: var(--selected-border);
83
+ }
@@ -0,0 +1,83 @@
1
+ [data-theme='pocket-receipt']{color-scheme:light;--font-body:'IBM Plex Sans', system-ui, sans-serif;--font-display:'IBM Plex Mono', ui-monospace, monospace;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:normal;--display-weight:600;--display-size:var(--font-size-md);--display-transform:uppercase;--display-tracking:0.04em;--label-weight:600;--label-transform:uppercase;--label-tracking:0.1em;--header-weight:600;--canvas-layers:none;--surface-canvas:#efefeb;--surface-card:#fbfbf8;--surface-raised:#ffffff;--surface-raised-alt:#f3f3ee;--surface-overlay:#ffffff;--button-fill:#ffffff;--surface-overlay-card:#fbfbf8;--surface-sunken:#e2e2dc;--control-hover:#e9e9e3;--surface-hover:color-mix(in oklab, #0b6e6e 8%, transparent);--surface-stripe:#f6f6f2;--rating-empty:color-mix(in oklab, #e2e2dc 85%, #121212);--surface-selected:color-mix(in oklab, #0b6e6e 18%, transparent);--surface-blur:none;--text-strong:#121212;--text-default:#262626;--text-soft:#404040;--text-muted:#5a5a5a;--text-subtle:#858585;--text-link:#0a6464;--text-link-hover:#064848;--border-subtle:rgba(18, 18, 18, 0.1);--border-default:rgba(18, 18, 18, 0.18);--border-strong:rgba(18, 18, 18, 0.18);--border-card:rgba(18, 18, 18, 0.12);--border-card-hover:rgba(18, 18, 18, 0.35);--field-bg:#ffffff;--field-bg-focus:#ffffff;--field-bg-disabled:color-mix(in oklab, #ffffff 94%, #121212);--field-fg:#262626;--field-border:rgba(18, 18, 18, 0.24);--field-border-hover:#121212;--field-border-focus:#0b6e6e;--field-placeholder:#858585;--field-label:#5a5a5a;--field-ring:color-mix(in oklab, #0b6e6e 24%, transparent);--tone-neutral-solid:#121212;--tone-neutral-solid-hover:color-mix(in oklab, #121212 70%, #262626);--tone-neutral-on-solid:#ffffff;--tone-neutral-soft:#e9e9e3;--tone-neutral-soft-hover:color-mix(in oklab, #e9e9e3 92%, #121212);--tone-neutral-on-soft:#121212;--tone-neutral-border:rgba(18, 18, 18, 0.18);--tone-neutral-text:#404040;--tone-accent-solid:#0b6e6e;--tone-accent-mark:#0b6e6e;--tone-accent-solid-hover:#085858;--tone-accent-on-solid:#ffffff;--tone-accent-soft:color-mix(in oklab, #0b6e6e 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #0b6e6e 24%, transparent);--tone-accent-on-soft:#0a6464;--tone-accent-border:color-mix(in oklab, #0b6e6e 40%, transparent);--tone-accent-text:#0a6464;--tone-success-solid:#1e7a3c;--tone-success-mark:#1e7a3c;--tone-success-solid-hover:#18622f;--tone-success-on-solid:#ffffff;--tone-success-soft:color-mix(in oklab, #1e7a3c 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #1e7a3c 24%, transparent);--tone-success-on-soft:#18632f;--tone-success-border:color-mix(in oklab, #1e7a3c 40%, transparent);--tone-success-text:#18632f;--tone-warning-solid:#9c5a00;--tone-warning-mark:#9c5a00;--tone-warning-solid-hover:#7f4900;--tone-warning-on-solid:#ffffff;--tone-warning-soft:color-mix(in oklab, #9c5a00 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #9c5a00 24%, transparent);--tone-warning-on-soft:#874e00;--tone-warning-border:color-mix(in oklab, #9c5a00 40%, transparent);--tone-warning-text:#874e00;--tone-danger-solid:#b42318;--tone-danger-mark:#b42318;--tone-danger-solid-hover:#931c13;--tone-danger-on-solid:#ffffff;--tone-danger-soft:color-mix(in oklab, #b42318 16%, transparent);--tone-danger-soft-hover:color-mix(in oklab, #b42318 24%, transparent);--tone-danger-on-soft:#a3201a;--tone-danger-border:color-mix(in oklab, #b42318 40%, transparent);--tone-danger-text:#a3201a;--accent-glow:#28a8a0;--selected-bg:var(--tone-neutral-solid);--selected-bg-hover:var(--tone-neutral-solid-hover);--selected-fg:var(--tone-neutral-on-solid);--selected-border:var(--tone-neutral-solid);--selected-solid:var(--tone-neutral-solid);--selected-solid-fg:var(--tone-neutral-on-solid);--shadow-color:color-mix(in oklab, color-mix(in oklab, #121212 40%, transparent) 45%, transparent);--shadow-color-strong:color-mix(in oklab, color-mix(in oklab, #121212 40%, transparent) 62%, transparent);--shadow-sm:0 1px 2px rgba(18, 18, 18, 0.06);--shadow-md:0 1px 0 rgba(18, 18, 18, 0.04), 0 1px 3px rgba(18, 18, 18, 0.08);--shadow-lg:0 18px 48px rgba(18, 18, 18, 0.22);--scrim:color-mix(in oklab, #121212 45%, transparent);--body-background:var(--canvas-layers), var(--surface-canvas);--body-background-base:var(--surface-canvas);--body-background-wash:var(--canvas-layers), var(--surface-canvas);--body-background-glow:none;--body-color:var(--text-default);--body-color-accent:var(--text-strong);--body-color-muted:var(--text-muted);--body-title-color:var(--text-strong);--body-sub-title-color:var(--text-soft);--body-accent-color:var(--tone-accent-text);--body-danger-color:var(--tone-danger-text);--backdrop-color:var(--scrim);--box-shadow:var(--shadow-color);--text-shadow:var(--shadow-color);--border-color:var(--border-strong);--delimiter-color:var(--border-subtle);--links-color:var(--text-link);--links-hover-color:var(--text-link-hover);--font-family:var(--font-body);--font-family-sans:var(--font-body);--font-family-display:var(--font-display);--font-family-mono:var(--font-mono);--header-background-color:var(--surface-raised);--header-border-bottom-color:var(--border-subtle);--header-color:var(--text-strong);--header-font-weight:var(--header-weight);--button-default-background-color:var(--button-fill);--button-default-border-color:var(--border-default);--button-default-color:var(--text-default);--button-default-hover-background-color:var(--control-hover);--button-default-hover-border-color:var(--field-border-hover);--button-default-hover-color:var(--text-strong);--button-ghost-background-color:transparent;--button-ghost-border-color:transparent;--button-ghost-color:var(--text-soft);--button-ghost-hover-background-color:var(--control-hover);--button-ghost-hover-border-color:transparent;--button-ghost-hover-color:var(--text-strong);--button-plain-color:var(--text-soft);--button-plain-hover-color:var(--text-strong);--button-info-background-color:var(--tone-accent-solid);--button-info-border-color:var(--tone-accent-mark);--button-info-color:var(--tone-accent-on-solid);--button-info-hover-background-color:var(--tone-accent-solid-hover);--button-info-hover-border-color:var(--tone-accent-mark);--button-info-hover-color:var(--tone-accent-on-solid);--toast-info-background-color:var(--tone-accent-soft);--toast-info-border-color:var(--tone-accent-border);--toast-info-color:var(--tone-accent-on-soft);--progress-info-bar-border-color:var(--tone-accent-mark);--progress-info-bar-fill-color:var(--tone-accent-mark);--rating-color-info:var(--tone-accent-mark);--card-tint-info-background:var(--tone-accent-soft);--button-success-background-color:var(--tone-success-solid);--button-success-border-color:var(--tone-success-mark);--button-success-color:var(--tone-success-on-solid);--button-success-hover-background-color:var(--tone-success-solid-hover);--button-success-hover-border-color:var(--tone-success-mark);--button-success-hover-color:var(--tone-success-on-solid);--toast-success-background-color:var(--tone-success-soft);--toast-success-border-color:var(--tone-success-border);--toast-success-color:var(--tone-success-on-soft);--progress-success-bar-border-color:var(--tone-success-mark);--progress-success-bar-fill-color:var(--tone-success-mark);--rating-color-success:var(--tone-success-mark);--card-tint-success-background:var(--tone-success-soft);--button-warning-background-color:var(--tone-warning-solid);--button-warning-border-color:var(--tone-warning-mark);--button-warning-color:var(--tone-warning-on-solid);--button-warning-hover-background-color:var(--tone-warning-solid-hover);--button-warning-hover-border-color:var(--tone-warning-mark);--button-warning-hover-color:var(--tone-warning-on-solid);--toast-warning-background-color:var(--tone-warning-soft);--toast-warning-border-color:var(--tone-warning-border);--toast-warning-color:var(--tone-warning-on-soft);--progress-warning-bar-border-color:var(--tone-warning-mark);--progress-warning-bar-fill-color:var(--tone-warning-mark);--rating-color-warning:var(--tone-warning-mark);--card-tint-warning-background:var(--tone-warning-soft);--button-danger-background-color:var(--tone-danger-solid);--button-danger-border-color:var(--tone-danger-mark);--button-danger-color:var(--tone-danger-on-solid);--button-danger-hover-background-color:var(--tone-danger-solid-hover);--button-danger-hover-border-color:var(--tone-danger-mark);--button-danger-hover-color:var(--tone-danger-on-solid);--toast-danger-background-color:var(--tone-danger-soft);--toast-danger-border-color:var(--tone-danger-border);--toast-danger-color:var(--tone-danger-on-soft);--progress-danger-bar-border-color:var(--tone-danger-mark);--progress-danger-bar-fill-color:var(--tone-danger-mark);--rating-color-danger:var(--tone-danger-mark);--card-tint-danger-background:var(--tone-danger-soft);--progress-bar-background-color:var(--surface-sunken);--progress-bar-color:var(--text-default);--progress-default-bar-border-color:var(--border-strong);--progress-default-bar-fill-color:var(--text-muted);--rating-empty-color:var(--rating-empty);--rating-empty-label-color:var(--text-muted);--rating-half-rate-empty-color:var(--rating-empty);--card-tint-default-background:var(--surface-raised-alt);--card-accent-color:var(--tone-accent-text);--card-backdrop-filter:var(--surface-blur);--card-background-accent-color:var(--surface-raised-alt);--card-background-color:var(--surface-card);--card-border-accent-color:var(--tone-accent-mark);--card-border-color:var(--border-card);--card-box-shadow:var(--shadow-md);--card-color:var(--text-default);--card-footer-background-color:var(--surface-raised-alt);--card-footer-color:var(--text-soft);--card-hover-border-color:var(--border-card-hover);--card-surface-box-shadow:var(--shadow-sm);--card-title-color:var(--text-strong);--card-title-font-family:var(--font-display);--card-title-font-size:var(--display-size);--card-title-font-style:var(--display-style);--card-title-font-weight:var(--display-weight);--card-title-letter-spacing:var(--display-tracking);--card-title-text-transform:var(--display-transform);--modal-backdrop-filter:var(--surface-blur);--modal-background-color:var(--surface-overlay-card);--modal-body-color:var(--text-default);--modal-border-color:var(--border-card);--modal-box-shadow:var(--shadow-lg);--modal-box-shadow-hover:var(--shadow-lg);--modal-color:var(--text-default);--modal-footer-background-color:var(--surface-raised-alt);--modal-header-background-color:var(--surface-raised-alt);--modal-header-color:var(--text-strong);--modal-surface-box-shadow:var(--shadow-lg);--modal-title-color:var(--text-strong);--modal-title-font-family:var(--font-display);--modal-title-font-size:var(--font-size-md);--modal-title-font-style:normal;--modal-title-font-weight:600;--modal-title-letter-spacing:0.04em;--modal-title-text-transform:uppercase;--drawer-background-color:var(--surface-overlay-card);--drawer-header-background-color:var(--surface-raised-alt);--drawer-border-color:var(--border-card);--drawer-shadow:var(--shadow-lg);--form-control-background-color:var(--field-bg);--form-control-border-color:var(--field-border);--form-control-color:var(--field-fg);--form-control-focus-background-color:var(--field-bg-focus);--form-control-focus-border-color:var(--field-border-focus);--form-control-focus-color:var(--field-fg);--form-control-focus-ring:var(--field-ring);--form-control-error-background-color:color-mix(in oklab, var(--tone-danger-solid) 6%, var(--field-bg));--form-control-error-border-color:var(--tone-danger-mark);--form-control-error-color:var(--tone-danger-text);--form-control-success-background-color:color-mix(in oklab, var(--tone-success-solid) 7%, var(--field-bg));--form-control-success-border-color:var(--tone-success-mark);--form-control-success-color:var(--tone-success-text);--form-control-font-family:var(--font-body);--form-control-label-color:var(--field-label);--form-control-label-font-size:var(--font-size-xs);--form-control-label-font-weight:var(--label-weight);--form-control-label-letter-spacing:var(--label-tracking);--form-control-label-text-transform:var(--label-transform);--form-control-placeholder-color:var(--field-placeholder);--form-control-selection-background-color:var(--selected-solid);--form-control-selection-border-color:var(--selected-solid);--form-control-selection-color:var(--selected-solid-fg);--form-control-selection-label-color:var(--text-default);--datepicker-input-background-color:var(--field-bg);--dropdown-border-color:var(--field-border);--dropdown-header-background-color:var(--field-bg);--dropdown-header-border-focus-color:var(--field-border-focus);--dropdown-header-color:var(--field-fg);--dropdown-options-background-color:var(--surface-overlay);--dropdown-options-color:var(--text-default);--dropdown-options-hover-background-color:var(--surface-hover);--dropdown-options-hover-color:var(--text-strong);--dropdown-options-selected-background-color:var(--surface-selected);--dropdown-options-selected-color:var(--text-strong);--dropdown-action-background-color:var(--surface-raised-alt);--dropdown-action-color:var(--text-link);--dropdown-action-hover-background-color:var(--surface-hover);--dropdown-action-hover-color:var(--text-link-hover);--dropdown-chips-background-color:var(--selected-bg);--dropdown-chips-border-color:var(--selected-border);--dropdown-chips-color:var(--selected-fg);--dropdown-chips-hover-background-color:var(--selected-bg-hover);--slider-track-background-color:var(--surface-sunken);--slider-track-border-color:var(--field-border);--slider-track-hover-background-color:var(--control-hover);--slider-track-hover-border-color:var(--field-border-hover);--slider-thumb-background-color:var(--tone-accent-mark);--slider-thumb-border-color:var(--tone-accent-mark);--slider-thumb-hover-background-color:var(--tone-accent-solid-hover);--slider-thumb-hover-border-color:var(--tone-accent-solid-hover);--calendar-background-color:var(--surface-overlay);--calendar-border-color:var(--border-default);--calendar-day-color:var(--text-soft);--calendar-day-disabled-color:var(--text-subtle);--calendar-day-hover-background-color:var(--control-hover);--calendar-day-selected-background-color:var(--tone-accent-solid);--calendar-day-selected-color:var(--tone-accent-on-solid);--calendar-day-today-border-color:var(--tone-accent-mark);--calendar-day-weekend-color:var(--text-muted);--calendar-header-background-color:var(--surface-raised-alt);--calendar-header-color:var(--text-strong);--chip-hover-background-color:var(--surface-hover);--chip-hover-border-color:var(--border-strong);--chip-hover-color:var(--text-strong);--chip-selected-background-color:var(--selected-bg);--chip-selected-border-color:var(--selected-border);--chip-selected-color:var(--selected-fg);--chip-selected-count-color:color-mix(in oklab, var(--selected-fg) 72%, transparent);--list-alternate-background-color:var(--surface-stripe);--list-hover-background-color:var(--surface-hover);--tabs-active-background-color:var(--selected-bg);--tabs-active-color:var(--selected-fg);--tabs-inactive-background-color:transparent;--tabs-inactive-color:var(--text-muted);--tooltip-background-color:var(--tone-neutral-solid);--tooltip-border-color:var(--tone-neutral-solid);--tooltip-color:var(--tone-neutral-on-solid);--popover-background-color:var(--surface-overlay);--popover-border-color:var(--border-default);--popover-color:var(--text-default);--popover-arrow-color:var(--border-default);--loader-border-color:var(--tone-accent-soft);--loader-border-top-color:var(--tone-accent-mark);--tour-hud-accent-color:var(--tone-accent-mark);--note-container-effect-background-color:var(--tone-accent-soft);--note-container-effect-color:var(--tone-accent-on-soft);--note-container-effect-border-left-color:var(--tone-accent-mark);--glow-box-shadow-color:0 0 16px color-mix(in oklab, var(--tone-accent-mark) 45%, transparent);--glow-hover-border-color:var(--tone-accent-border);--infuse-effect-before-background:linear-gradient(90deg, var(--tone-accent-mark), var(--accent-glow));--infuse-effect-hover-border-color:var(--tone-accent-mark);--infuse-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent);--up-lift-effect-before-background:linear-gradient(135deg, var(--tone-accent-mark), var(--accent-glow));--up-lift-effect-box-shadow-color:var(--shadow-color-strong);--up-lift-effect-hover-border-color:var(--tone-accent-mark);--up-lift-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent)}
2
+ /*
3
+ * Component recipes for the authored themes. Badge and Chip take a tone and one shared set
4
+ * of roles (soft background, ink on soft, border), so a "success" badge, a selected
5
+ * "success" chip and a success toast carry the same three colours.
6
+ *
7
+ * These rules sit here rather than in @memobit/libs while the classic themes still drive
8
+ * the same components. Once the classic themes are retired they move into the lib.
9
+ */
10
+
11
+ [data-theme='pocket-receipt'] .badge-variant--default {
12
+ --recipe-soft: var(--tone-neutral-soft);
13
+ --recipe-soft-hover: var(--tone-neutral-soft-hover);
14
+ --recipe-on-soft: var(--tone-neutral-on-soft);
15
+ --recipe-border: var(--tone-neutral-border);
16
+ }
17
+
18
+ [data-theme='pocket-receipt'] :is(.badge-variant--info, .chip--info) {
19
+ --recipe-soft: var(--tone-accent-soft);
20
+ --recipe-soft-hover: var(--tone-accent-soft-hover);
21
+ --recipe-on-soft: var(--tone-accent-on-soft);
22
+ --recipe-border: var(--tone-accent-border);
23
+ }
24
+
25
+ [data-theme='pocket-receipt'] :is(.badge-variant--success, .chip--success) {
26
+ --recipe-soft: var(--tone-success-soft);
27
+ --recipe-soft-hover: var(--tone-success-soft-hover);
28
+ --recipe-on-soft: var(--tone-success-on-soft);
29
+ --recipe-border: var(--tone-success-border);
30
+ }
31
+
32
+ [data-theme='pocket-receipt'] :is(.badge-variant--warning, .chip--warning) {
33
+ --recipe-soft: var(--tone-warning-soft);
34
+ --recipe-soft-hover: var(--tone-warning-soft-hover);
35
+ --recipe-on-soft: var(--tone-warning-on-soft);
36
+ --recipe-border: var(--tone-warning-border);
37
+ }
38
+
39
+ [data-theme='pocket-receipt'] :is(.badge-variant--danger, .chip--danger) {
40
+ --recipe-soft: var(--tone-danger-soft);
41
+ --recipe-soft-hover: var(--tone-danger-soft-hover);
42
+ --recipe-on-soft: var(--tone-danger-on-soft);
43
+ --recipe-border: var(--tone-danger-border);
44
+ }
45
+
46
+ [data-theme='pocket-receipt']
47
+ .badge:is(.badge-variant--default, .badge-variant--info, .badge-variant--success, .badge-variant--warning, .badge-variant--danger) {
48
+ border-color: var(--recipe-border);
49
+ background-color: var(--recipe-soft);
50
+ color: var(--recipe-on-soft);
51
+ }
52
+
53
+ [data-theme='pocket-receipt'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger) {
54
+ border-color: var(--border-default);
55
+ background: transparent;
56
+ color: var(--text-default);
57
+ }
58
+
59
+ [data-theme='pocket-receipt'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger):hover:not(:disabled) {
60
+ border-color: var(--recipe-border);
61
+ background: var(--surface-hover);
62
+ color: var(--text-strong);
63
+ }
64
+
65
+ [data-theme='pocket-receipt'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected {
66
+ border-color: var(--recipe-border);
67
+ background: var(--recipe-soft);
68
+ color: var(--recipe-on-soft);
69
+ }
70
+
71
+ [data-theme='pocket-receipt'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected:hover:not(:disabled) {
72
+ border-color: var(--recipe-border);
73
+ background: var(--recipe-soft-hover);
74
+ color: var(--recipe-on-soft);
75
+ }
76
+
77
+ /* A default chip carries no tone, so its selected state is the theme's selection style. */
78
+ [data-theme='pocket-receipt'] .chip.chip--default {
79
+ --recipe-soft: var(--selected-bg);
80
+ --recipe-soft-hover: var(--selected-bg-hover);
81
+ --recipe-on-soft: var(--selected-fg);
82
+ --recipe-border: var(--selected-border);
83
+ }
@@ -0,0 +1,83 @@
1
+ [data-theme='pulse-ivory']{color-scheme:light;--font-body:'Lato', 'Avenir Next', sans-serif;--font-display:'Playfair Display', Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:normal;--display-weight:600;--display-size:var(--font-size-lg);--display-transform:none;--display-tracking:normal;--label-weight:700;--label-transform:uppercase;--label-tracking:0.12em;--header-weight:700;--canvas-layers:radial-gradient(50% 45% at 100% 0%, rgba(197, 160, 40, 0.1) 0%, transparent 65%), radial-gradient(45% 50% at 0% 100%, rgba(30, 58, 95, 0.08) 0%, transparent 65%), radial-gradient(110% 90% at 20% 0%, #faf8f2 0%, #f0ede2 50%, #e8e2d2 100%);--surface-canvas:#f4f1e8;--surface-card:rgba(255, 255, 255, 0.94);--surface-raised:#fbfaf5;--surface-raised-alt:rgba(248, 246, 240, 0.6);--surface-overlay:#fdfcf8;--button-fill:#f4f1e8;--surface-overlay-card:rgba(255, 255, 255, 0.94);--surface-sunken:#e8e2d2;--control-hover:#eee8d0;--surface-hover:color-mix(in oklab, #b08a1e 8%, transparent);--surface-stripe:#f8f6ef;--rating-empty:color-mix(in oklab, #e8e2d2 85%, #0c1020);--surface-selected:color-mix(in oklab, #b08a1e 18%, transparent);--surface-blur:blur(20px) saturate(1.3);--text-strong:#0c1020;--text-default:#1e2433;--text-soft:#3a4560;--text-muted:#5c6270;--text-subtle:#858b99;--text-link:#1e3a5f;--text-link-hover:#7d6012;--border-subtle:rgba(30, 36, 51, 0.11);--border-default:rgba(30, 36, 51, 0.18);--border-strong:rgba(30, 36, 51, 0.18);--border-card:rgba(255, 255, 255, 0.85);--border-card-hover:rgba(197, 160, 40, 0.55);--field-bg:#fbfaf5;--field-bg-focus:#ffffff;--field-bg-disabled:color-mix(in oklab, #fbfaf5 94%, #0c1020);--field-fg:#1e2433;--field-border:rgba(30, 36, 51, 0.22);--field-border-hover:#1e3a5f;--field-border-focus:#b08a1e;--field-placeholder:#858b99;--field-label:#5c6270;--field-ring:color-mix(in oklab, #b08a1e 24%, transparent);--tone-neutral-solid:#0c1020;--tone-neutral-solid-hover:color-mix(in oklab, #0c1020 70%, #1e2433);--tone-neutral-on-solid:#ffffff;--tone-neutral-soft:#eee8d0;--tone-neutral-soft-hover:color-mix(in oklab, #eee8d0 92%, #0c1020);--tone-neutral-on-soft:#0c1020;--tone-neutral-border:rgba(30, 36, 51, 0.18);--tone-neutral-text:#3a4560;--tone-accent-solid:#1e3a5f;--tone-accent-mark:#b08a1e;--tone-accent-solid-hover:#162c49;--tone-accent-on-solid:#ffffff;--tone-accent-soft:color-mix(in oklab, #b08a1e 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #b08a1e 24%, transparent);--tone-accent-on-soft:#1e3a5f;--tone-accent-border:color-mix(in oklab, #b08a1e 40%, transparent);--tone-accent-text:#1e3a5f;--tone-success-solid:#2e7d3e;--tone-success-mark:#2e7d3e;--tone-success-solid-hover:#256832;--tone-success-on-solid:#ffffff;--tone-success-soft:color-mix(in oklab, #2e7d3e 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #2e7d3e 24%, transparent);--tone-success-on-soft:#2a7239;--tone-success-border:color-mix(in oklab, #2e7d3e 40%, transparent);--tone-success-text:#2a7239;--tone-warning-solid:#93690f;--tone-warning-mark:#c5a028;--tone-warning-solid-hover:#7a570c;--tone-warning-on-solid:#ffffff;--tone-warning-soft:color-mix(in oklab, #c5a028 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #c5a028 24%, transparent);--tone-warning-on-soft:#7c5c0b;--tone-warning-border:color-mix(in oklab, #c5a028 40%, transparent);--tone-warning-text:#7c5c0b;--tone-danger-solid:#9f2f2f;--tone-danger-mark:#9f2f2f;--tone-danger-solid-hover:#842525;--tone-danger-on-solid:#ffffff;--tone-danger-soft:color-mix(in oklab, #9f2f2f 16%, transparent);--tone-danger-soft-hover:color-mix(in oklab, #9f2f2f 24%, transparent);--tone-danger-on-soft:#922b2b;--tone-danger-border:color-mix(in oklab, #9f2f2f 40%, transparent);--tone-danger-text:#922b2b;--accent-glow:#e8c04a;--selected-bg:var(--tone-neutral-solid);--selected-bg-hover:var(--tone-neutral-solid-hover);--selected-fg:var(--tone-neutral-on-solid);--selected-border:var(--tone-neutral-solid);--selected-solid:var(--tone-neutral-solid);--selected-solid-fg:var(--tone-neutral-on-solid);--shadow-color:color-mix(in oklab, rgba(12, 16, 32, 0.14) 45%, transparent);--shadow-color-strong:color-mix(in oklab, rgba(12, 16, 32, 0.14) 62%, transparent);--shadow-sm:0 1px 2px color-mix(in oklab, #0c1020 12%, transparent);--shadow-md:0 8px 24px color-mix(in oklab, #0c1020 14%, transparent);--shadow-lg:0 24px 64px color-mix(in oklab, #0c1020 26%, transparent);--scrim:rgba(12, 16, 32, 0.38);--body-background:var(--canvas-layers), var(--surface-canvas);--body-background-base:var(--surface-canvas);--body-background-wash:var(--canvas-layers), var(--surface-canvas);--body-background-glow:none;--body-color:var(--text-default);--body-color-accent:var(--text-strong);--body-color-muted:var(--text-muted);--body-title-color:var(--text-strong);--body-sub-title-color:var(--text-soft);--body-accent-color:var(--tone-accent-text);--body-danger-color:var(--tone-danger-text);--backdrop-color:var(--scrim);--box-shadow:var(--shadow-color);--text-shadow:var(--shadow-color);--border-color:var(--border-strong);--delimiter-color:var(--border-subtle);--links-color:var(--text-link);--links-hover-color:var(--text-link-hover);--font-family:var(--font-body);--font-family-sans:var(--font-body);--font-family-display:var(--font-display);--font-family-mono:var(--font-mono);--header-background-color:var(--surface-raised);--header-border-bottom-color:var(--border-subtle);--header-color:var(--text-strong);--header-font-weight:var(--header-weight);--button-default-background-color:var(--button-fill);--button-default-border-color:var(--border-default);--button-default-color:var(--text-default);--button-default-hover-background-color:var(--control-hover);--button-default-hover-border-color:var(--field-border-hover);--button-default-hover-color:var(--text-strong);--button-ghost-background-color:transparent;--button-ghost-border-color:transparent;--button-ghost-color:var(--text-soft);--button-ghost-hover-background-color:var(--control-hover);--button-ghost-hover-border-color:transparent;--button-ghost-hover-color:var(--text-strong);--button-plain-color:var(--text-soft);--button-plain-hover-color:var(--text-strong);--button-info-background-color:var(--tone-accent-solid);--button-info-border-color:var(--tone-accent-mark);--button-info-color:var(--tone-accent-on-solid);--button-info-hover-background-color:var(--tone-accent-solid-hover);--button-info-hover-border-color:var(--tone-accent-mark);--button-info-hover-color:var(--tone-accent-on-solid);--toast-info-background-color:#1e3a5f;--toast-info-border-color:color-mix(in oklab, #1e3a5f 75%, #ffffff);--toast-info-color:#ffffff;--progress-info-bar-border-color:var(--tone-accent-mark);--progress-info-bar-fill-color:var(--tone-accent-mark);--rating-color-info:var(--tone-accent-mark);--card-tint-info-background:var(--tone-accent-soft);--button-success-background-color:var(--tone-success-solid);--button-success-border-color:var(--tone-success-mark);--button-success-color:var(--tone-success-on-solid);--button-success-hover-background-color:var(--tone-success-solid-hover);--button-success-hover-border-color:var(--tone-success-mark);--button-success-hover-color:var(--tone-success-on-solid);--toast-success-background-color:#2e7d3e;--toast-success-border-color:color-mix(in oklab, #2e7d3e 75%, #ffffff);--toast-success-color:#ffffff;--progress-success-bar-border-color:var(--tone-success-mark);--progress-success-bar-fill-color:var(--tone-success-mark);--rating-color-success:var(--tone-success-mark);--card-tint-success-background:var(--tone-success-soft);--button-warning-background-color:var(--tone-warning-solid);--button-warning-border-color:var(--tone-warning-mark);--button-warning-color:var(--tone-warning-on-solid);--button-warning-hover-background-color:var(--tone-warning-solid-hover);--button-warning-hover-border-color:var(--tone-warning-mark);--button-warning-hover-color:var(--tone-warning-on-solid);--toast-warning-background-color:#93690f;--toast-warning-border-color:color-mix(in oklab, #93690f 75%, #ffffff);--toast-warning-color:#ffffff;--progress-warning-bar-border-color:var(--tone-warning-mark);--progress-warning-bar-fill-color:var(--tone-warning-mark);--rating-color-warning:var(--tone-warning-mark);--card-tint-warning-background:var(--tone-warning-soft);--button-danger-background-color:var(--tone-danger-solid);--button-danger-border-color:var(--tone-danger-mark);--button-danger-color:var(--tone-danger-on-solid);--button-danger-hover-background-color:var(--tone-danger-solid-hover);--button-danger-hover-border-color:var(--tone-danger-mark);--button-danger-hover-color:var(--tone-danger-on-solid);--toast-danger-background-color:#9f2f2f;--toast-danger-border-color:color-mix(in oklab, #9f2f2f 75%, #ffffff);--toast-danger-color:#ffffff;--progress-danger-bar-border-color:var(--tone-danger-mark);--progress-danger-bar-fill-color:var(--tone-danger-mark);--rating-color-danger:var(--tone-danger-mark);--card-tint-danger-background:var(--tone-danger-soft);--progress-bar-background-color:var(--surface-sunken);--progress-bar-color:var(--text-default);--progress-default-bar-border-color:var(--border-strong);--progress-default-bar-fill-color:var(--text-muted);--rating-empty-color:var(--rating-empty);--rating-empty-label-color:var(--text-muted);--rating-half-rate-empty-color:var(--rating-empty);--card-tint-default-background:var(--surface-raised-alt);--card-accent-color:var(--tone-accent-text);--card-backdrop-filter:var(--surface-blur);--card-background-accent-color:var(--surface-raised-alt);--card-background-color:var(--surface-card);--card-border-accent-color:var(--tone-accent-mark);--card-border-color:var(--border-card);--card-box-shadow:var(--shadow-md);--card-color:var(--text-default);--card-footer-background-color:var(--surface-raised-alt);--card-footer-color:var(--text-soft);--card-hover-border-color:var(--border-card-hover);--card-surface-box-shadow:var(--shadow-sm);--card-title-color:var(--text-strong);--card-title-font-family:var(--font-display);--card-title-font-size:var(--display-size);--card-title-font-style:var(--display-style);--card-title-font-weight:var(--display-weight);--card-title-letter-spacing:var(--display-tracking);--card-title-text-transform:var(--display-transform);--modal-backdrop-filter:var(--surface-blur);--modal-background-color:var(--surface-overlay-card);--modal-body-color:var(--text-default);--modal-border-color:var(--border-card);--modal-box-shadow:var(--shadow-lg);--modal-box-shadow-hover:var(--shadow-lg);--modal-color:var(--text-default);--modal-footer-background-color:var(--surface-raised-alt);--modal-header-background-color:var(--surface-raised-alt);--modal-header-color:var(--text-strong);--modal-surface-box-shadow:var(--shadow-lg);--modal-title-color:var(--text-strong);--modal-title-font-family:var(--font-body);--modal-title-font-size:var(--font-size-sm);--modal-title-font-style:normal;--modal-title-font-weight:700;--modal-title-letter-spacing:0.15em;--modal-title-text-transform:uppercase;--drawer-background-color:var(--surface-overlay-card);--drawer-header-background-color:var(--surface-raised-alt);--drawer-border-color:var(--border-card);--drawer-shadow:var(--shadow-lg);--form-control-background-color:var(--field-bg);--form-control-border-color:var(--field-border);--form-control-color:var(--field-fg);--form-control-focus-background-color:var(--field-bg-focus);--form-control-focus-border-color:var(--field-border-focus);--form-control-focus-color:var(--field-fg);--form-control-focus-ring:var(--field-ring);--form-control-error-background-color:color-mix(in oklab, var(--tone-danger-solid) 6%, var(--field-bg));--form-control-error-border-color:var(--tone-danger-mark);--form-control-error-color:var(--tone-danger-text);--form-control-success-background-color:color-mix(in oklab, var(--tone-success-solid) 7%, var(--field-bg));--form-control-success-border-color:var(--tone-success-mark);--form-control-success-color:var(--tone-success-text);--form-control-font-family:var(--font-body);--form-control-label-color:var(--field-label);--form-control-label-font-size:var(--font-size-xs);--form-control-label-font-weight:var(--label-weight);--form-control-label-letter-spacing:var(--label-tracking);--form-control-label-text-transform:var(--label-transform);--form-control-placeholder-color:var(--field-placeholder);--form-control-selection-background-color:var(--selected-solid);--form-control-selection-border-color:var(--selected-solid);--form-control-selection-color:var(--selected-solid-fg);--form-control-selection-label-color:var(--text-default);--datepicker-input-background-color:var(--field-bg);--dropdown-border-color:var(--field-border);--dropdown-header-background-color:var(--field-bg);--dropdown-header-border-focus-color:var(--field-border-focus);--dropdown-header-color:var(--field-fg);--dropdown-options-background-color:var(--surface-overlay);--dropdown-options-color:var(--text-default);--dropdown-options-hover-background-color:var(--surface-hover);--dropdown-options-hover-color:var(--text-strong);--dropdown-options-selected-background-color:var(--surface-selected);--dropdown-options-selected-color:var(--text-strong);--dropdown-action-background-color:var(--surface-raised-alt);--dropdown-action-color:var(--text-link);--dropdown-action-hover-background-color:var(--surface-hover);--dropdown-action-hover-color:var(--text-link-hover);--dropdown-chips-background-color:var(--selected-bg);--dropdown-chips-border-color:var(--selected-border);--dropdown-chips-color:var(--selected-fg);--dropdown-chips-hover-background-color:var(--selected-bg-hover);--slider-track-background-color:var(--surface-sunken);--slider-track-border-color:var(--field-border);--slider-track-hover-background-color:var(--control-hover);--slider-track-hover-border-color:var(--field-border-hover);--slider-thumb-background-color:var(--tone-accent-mark);--slider-thumb-border-color:var(--tone-accent-mark);--slider-thumb-hover-background-color:var(--tone-accent-solid-hover);--slider-thumb-hover-border-color:var(--tone-accent-solid-hover);--calendar-background-color:var(--surface-overlay);--calendar-border-color:var(--border-default);--calendar-day-color:var(--text-soft);--calendar-day-disabled-color:var(--text-subtle);--calendar-day-hover-background-color:var(--control-hover);--calendar-day-selected-background-color:var(--tone-accent-solid);--calendar-day-selected-color:var(--tone-accent-on-solid);--calendar-day-today-border-color:var(--tone-accent-mark);--calendar-day-weekend-color:var(--text-muted);--calendar-header-background-color:var(--surface-raised-alt);--calendar-header-color:var(--text-strong);--chip-hover-background-color:var(--surface-hover);--chip-hover-border-color:var(--border-strong);--chip-hover-color:var(--text-strong);--chip-selected-background-color:var(--selected-bg);--chip-selected-border-color:var(--selected-border);--chip-selected-color:var(--selected-fg);--chip-selected-count-color:color-mix(in oklab, var(--selected-fg) 72%, transparent);--list-alternate-background-color:var(--surface-stripe);--list-hover-background-color:var(--surface-hover);--tabs-active-background-color:var(--selected-bg);--tabs-active-color:var(--selected-fg);--tabs-inactive-background-color:transparent;--tabs-inactive-color:var(--text-muted);--tooltip-background-color:var(--tone-neutral-solid);--tooltip-border-color:var(--tone-neutral-solid);--tooltip-color:var(--tone-neutral-on-solid);--popover-background-color:var(--surface-overlay);--popover-border-color:var(--border-default);--popover-color:var(--text-default);--popover-arrow-color:var(--border-default);--loader-border-color:var(--tone-accent-soft);--loader-border-top-color:var(--tone-accent-mark);--tour-hud-accent-color:var(--tone-accent-mark);--note-container-effect-background-color:var(--tone-accent-soft);--note-container-effect-color:var(--tone-accent-on-soft);--note-container-effect-border-left-color:var(--tone-accent-mark);--glow-box-shadow-color:0 0 16px color-mix(in oklab, var(--tone-accent-mark) 45%, transparent);--glow-hover-border-color:var(--tone-accent-border);--infuse-effect-before-background:linear-gradient(90deg, var(--tone-accent-mark), var(--accent-glow));--infuse-effect-hover-border-color:var(--tone-accent-mark);--infuse-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent);--up-lift-effect-before-background:linear-gradient(135deg, var(--tone-accent-mark), var(--accent-glow));--up-lift-effect-box-shadow-color:var(--shadow-color-strong);--up-lift-effect-hover-border-color:var(--tone-accent-mark);--up-lift-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent)}
2
+ /*
3
+ * Component recipes for the authored themes. Badge and Chip take a tone and one shared set
4
+ * of roles (soft background, ink on soft, border), so a "success" badge, a selected
5
+ * "success" chip and a success toast carry the same three colours.
6
+ *
7
+ * These rules sit here rather than in @memobit/libs while the classic themes still drive
8
+ * the same components. Once the classic themes are retired they move into the lib.
9
+ */
10
+
11
+ [data-theme='pulse-ivory'] .badge-variant--default {
12
+ --recipe-soft: var(--tone-neutral-soft);
13
+ --recipe-soft-hover: var(--tone-neutral-soft-hover);
14
+ --recipe-on-soft: var(--tone-neutral-on-soft);
15
+ --recipe-border: var(--tone-neutral-border);
16
+ }
17
+
18
+ [data-theme='pulse-ivory'] :is(.badge-variant--info, .chip--info) {
19
+ --recipe-soft: var(--tone-accent-soft);
20
+ --recipe-soft-hover: var(--tone-accent-soft-hover);
21
+ --recipe-on-soft: var(--tone-accent-on-soft);
22
+ --recipe-border: var(--tone-accent-border);
23
+ }
24
+
25
+ [data-theme='pulse-ivory'] :is(.badge-variant--success, .chip--success) {
26
+ --recipe-soft: var(--tone-success-soft);
27
+ --recipe-soft-hover: var(--tone-success-soft-hover);
28
+ --recipe-on-soft: var(--tone-success-on-soft);
29
+ --recipe-border: var(--tone-success-border);
30
+ }
31
+
32
+ [data-theme='pulse-ivory'] :is(.badge-variant--warning, .chip--warning) {
33
+ --recipe-soft: var(--tone-warning-soft);
34
+ --recipe-soft-hover: var(--tone-warning-soft-hover);
35
+ --recipe-on-soft: var(--tone-warning-on-soft);
36
+ --recipe-border: var(--tone-warning-border);
37
+ }
38
+
39
+ [data-theme='pulse-ivory'] :is(.badge-variant--danger, .chip--danger) {
40
+ --recipe-soft: var(--tone-danger-soft);
41
+ --recipe-soft-hover: var(--tone-danger-soft-hover);
42
+ --recipe-on-soft: var(--tone-danger-on-soft);
43
+ --recipe-border: var(--tone-danger-border);
44
+ }
45
+
46
+ [data-theme='pulse-ivory']
47
+ .badge:is(.badge-variant--default, .badge-variant--info, .badge-variant--success, .badge-variant--warning, .badge-variant--danger) {
48
+ border-color: var(--recipe-border);
49
+ background-color: var(--recipe-soft);
50
+ color: var(--recipe-on-soft);
51
+ }
52
+
53
+ [data-theme='pulse-ivory'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger) {
54
+ border-color: var(--border-default);
55
+ background: transparent;
56
+ color: var(--text-default);
57
+ }
58
+
59
+ [data-theme='pulse-ivory'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger):hover:not(:disabled) {
60
+ border-color: var(--recipe-border);
61
+ background: var(--surface-hover);
62
+ color: var(--text-strong);
63
+ }
64
+
65
+ [data-theme='pulse-ivory'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected {
66
+ border-color: var(--recipe-border);
67
+ background: var(--recipe-soft);
68
+ color: var(--recipe-on-soft);
69
+ }
70
+
71
+ [data-theme='pulse-ivory'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected:hover:not(:disabled) {
72
+ border-color: var(--recipe-border);
73
+ background: var(--recipe-soft-hover);
74
+ color: var(--recipe-on-soft);
75
+ }
76
+
77
+ /* A default chip carries no tone, so its selected state is the theme's selection style. */
78
+ [data-theme='pulse-ivory'] .chip.chip--default {
79
+ --recipe-soft: var(--selected-bg);
80
+ --recipe-soft-hover: var(--selected-bg-hover);
81
+ --recipe-on-soft: var(--selected-fg);
82
+ --recipe-border: var(--selected-border);
83
+ }
@@ -0,0 +1,83 @@
1
+ [data-theme='pulse-night-chart']{color-scheme:dark;--font-body:'Lato', 'Avenir Next', sans-serif;--font-display:'Playfair Display', Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:normal;--display-weight:600;--display-size:var(--font-size-lg);--display-transform:none;--display-tracking:normal;--label-weight:700;--label-transform:uppercase;--label-tracking:0.12em;--header-weight:700;--canvas-layers:radial-gradient(50% 45% at 100% 0%, rgba(217, 181, 74, 0.07) 0%, transparent 65%), radial-gradient(45% 50% at 0% 100%, rgba(60, 100, 160, 0.12) 0%, transparent 65%), linear-gradient(160deg, #0f1524 0%, #0a0e18 100%);--surface-canvas:#0c111c;--surface-card:#131a28;--surface-raised:#0f1522;--surface-raised-alt:#18202f;--surface-overlay:#1a2232;--button-fill:#1c2536;--surface-overlay-card:#141b29;--surface-sunken:#202a3c;--control-hover:#1f283a;--surface-hover:color-mix(in oklab, #d9b54a 8%, transparent);--surface-stripe:#151c2a;--rating-empty:color-mix(in oklab, #202a3c 85%, #f6f2e6);--surface-selected:color-mix(in oklab, #d9b54a 18%, transparent);--surface-blur:none;--text-strong:#f6f2e6;--text-default:#e3e3df;--text-soft:#c2c6cf;--text-muted:#9aa1b0;--text-subtle:#737c8d;--text-link:#9bbcec;--text-link-hover:#c2d6f4;--border-subtle:rgba(227, 227, 223, 0.08);--border-default:rgba(227, 227, 223, 0.13);--border-strong:rgba(227, 227, 223, 0.13);--border-card:rgba(227, 227, 223, 0.07);--border-card-hover:rgba(217, 181, 74, 0.45);--field-bg:#0f1522;--field-bg-focus:#0f1522;--field-bg-disabled:color-mix(in oklab, #0f1522 94%, #f6f2e6);--field-fg:#e3e3df;--field-border:rgba(227, 227, 223, 0.16);--field-border-hover:#d9b54a;--field-border-focus:#d9b54a;--field-placeholder:#737c8d;--field-label:#9aa1b0;--field-ring:color-mix(in oklab, #d9b54a 24%, transparent);--tone-neutral-solid:#f6f2e6;--tone-neutral-solid-hover:color-mix(in oklab, #f6f2e6 70%, #e3e3df);--tone-neutral-on-solid:#ffffff;--tone-neutral-soft:#1f283a;--tone-neutral-soft-hover:color-mix(in oklab, #1f283a 92%, #f6f2e6);--tone-neutral-on-soft:#f6f2e6;--tone-neutral-border:rgba(227, 227, 223, 0.13);--tone-neutral-text:#c2c6cf;--tone-accent-solid:#2f5a93;--tone-accent-mark:#d9b54a;--tone-accent-solid-hover:#3a69a6;--tone-accent-on-solid:#ffffff;--tone-accent-soft:color-mix(in oklab, #d9b54a 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #d9b54a 24%, transparent);--tone-accent-on-soft:#e3c467;--tone-accent-border:color-mix(in oklab, #d9b54a 40%, transparent);--tone-accent-text:#e3c467;--tone-success-solid:#2e7a44;--tone-success-mark:#6cc58a;--tone-success-solid-hover:#378d50;--tone-success-on-solid:#ffffff;--tone-success-soft:color-mix(in oklab, #6cc58a 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #6cc58a 24%, transparent);--tone-success-on-soft:#86d19f;--tone-success-border:color-mix(in oklab, #6cc58a 40%, transparent);--tone-success-text:#86d19f;--tone-warning-solid:#8f650e;--tone-warning-mark:#e0b84e;--tone-warning-solid-hover:#a37616;--tone-warning-on-solid:#ffffff;--tone-warning-soft:color-mix(in oklab, #e0b84e 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #e0b84e 24%, transparent);--tone-warning-on-soft:#ecc76b;--tone-warning-border:color-mix(in oklab, #e0b84e 40%, transparent);--tone-warning-text:#ecc76b;--tone-danger-solid:#a8383a;--tone-danger-mark:#ef7f80;--tone-danger-solid-hover:#bd4547;--tone-danger-on-solid:#ffffff;--tone-danger-soft:color-mix(in oklab, #ef7f80 16%, transparent);--tone-danger-soft-hover:color-mix(in oklab, #ef7f80 24%, transparent);--tone-danger-on-soft:#f39697;--tone-danger-border:color-mix(in oklab, #ef7f80 40%, transparent);--tone-danger-text:#f39697;--accent-glow:#f0d27a;--selected-bg:var(--tone-accent-soft);--selected-bg-hover:var(--tone-accent-soft-hover);--selected-fg:var(--tone-accent-on-soft);--selected-border:var(--tone-accent-border);--selected-solid:var(--tone-accent-solid);--selected-solid-fg:var(--tone-accent-on-solid);--shadow-color:color-mix(in oklab, #000 45%, transparent);--shadow-color-strong:color-mix(in oklab, #000 62%, transparent);--shadow-sm:0 1px 0 rgba(246, 242, 230, 0.03) inset, 0 2px 8px rgba(0, 0, 0, 0.4);--shadow-md:0 12px 30px -14px rgba(0, 0, 0, 0.75);--shadow-lg:0 28px 70px rgba(0, 0, 0, 0.65);--scrim:color-mix(in oklab, #f6f2e6 45%, transparent);--body-background:var(--canvas-layers), var(--surface-canvas);--body-background-base:var(--surface-canvas);--body-background-wash:var(--canvas-layers), var(--surface-canvas);--body-background-glow:none;--body-color:var(--text-default);--body-color-accent:var(--text-strong);--body-color-muted:var(--text-muted);--body-title-color:var(--text-strong);--body-sub-title-color:var(--text-soft);--body-accent-color:var(--tone-accent-text);--body-danger-color:var(--tone-danger-text);--backdrop-color:var(--scrim);--box-shadow:var(--shadow-color);--text-shadow:var(--shadow-color);--border-color:var(--border-strong);--delimiter-color:var(--border-subtle);--links-color:var(--text-link);--links-hover-color:var(--text-link-hover);--font-family:var(--font-body);--font-family-sans:var(--font-body);--font-family-display:var(--font-display);--font-family-mono:var(--font-mono);--header-background-color:var(--surface-raised);--header-border-bottom-color:var(--border-subtle);--header-color:var(--text-strong);--header-font-weight:var(--header-weight);--button-default-background-color:var(--button-fill);--button-default-border-color:var(--border-default);--button-default-color:var(--text-default);--button-default-hover-background-color:var(--control-hover);--button-default-hover-border-color:var(--field-border-hover);--button-default-hover-color:var(--text-strong);--button-ghost-background-color:transparent;--button-ghost-border-color:transparent;--button-ghost-color:var(--text-soft);--button-ghost-hover-background-color:var(--control-hover);--button-ghost-hover-border-color:transparent;--button-ghost-hover-color:var(--text-strong);--button-plain-color:var(--text-soft);--button-plain-hover-color:var(--text-strong);--button-info-background-color:var(--tone-accent-solid);--button-info-border-color:var(--tone-accent-mark);--button-info-color:var(--tone-accent-on-solid);--button-info-hover-background-color:var(--tone-accent-solid-hover);--button-info-hover-border-color:var(--tone-accent-mark);--button-info-hover-color:var(--tone-accent-on-solid);--toast-info-background-color:var(--tone-accent-soft);--toast-info-border-color:var(--tone-accent-border);--toast-info-color:var(--tone-accent-on-soft);--progress-info-bar-border-color:var(--tone-accent-mark);--progress-info-bar-fill-color:var(--tone-accent-mark);--rating-color-info:var(--tone-accent-mark);--card-tint-info-background:var(--tone-accent-soft);--button-success-background-color:var(--tone-success-solid);--button-success-border-color:var(--tone-success-mark);--button-success-color:var(--tone-success-on-solid);--button-success-hover-background-color:var(--tone-success-solid-hover);--button-success-hover-border-color:var(--tone-success-mark);--button-success-hover-color:var(--tone-success-on-solid);--toast-success-background-color:var(--tone-success-soft);--toast-success-border-color:var(--tone-success-border);--toast-success-color:var(--tone-success-on-soft);--progress-success-bar-border-color:var(--tone-success-mark);--progress-success-bar-fill-color:var(--tone-success-mark);--rating-color-success:var(--tone-success-mark);--card-tint-success-background:var(--tone-success-soft);--button-warning-background-color:var(--tone-warning-solid);--button-warning-border-color:var(--tone-warning-mark);--button-warning-color:var(--tone-warning-on-solid);--button-warning-hover-background-color:var(--tone-warning-solid-hover);--button-warning-hover-border-color:var(--tone-warning-mark);--button-warning-hover-color:var(--tone-warning-on-solid);--toast-warning-background-color:var(--tone-warning-soft);--toast-warning-border-color:var(--tone-warning-border);--toast-warning-color:var(--tone-warning-on-soft);--progress-warning-bar-border-color:var(--tone-warning-mark);--progress-warning-bar-fill-color:var(--tone-warning-mark);--rating-color-warning:var(--tone-warning-mark);--card-tint-warning-background:var(--tone-warning-soft);--button-danger-background-color:var(--tone-danger-solid);--button-danger-border-color:var(--tone-danger-mark);--button-danger-color:var(--tone-danger-on-solid);--button-danger-hover-background-color:var(--tone-danger-solid-hover);--button-danger-hover-border-color:var(--tone-danger-mark);--button-danger-hover-color:var(--tone-danger-on-solid);--toast-danger-background-color:var(--tone-danger-soft);--toast-danger-border-color:var(--tone-danger-border);--toast-danger-color:var(--tone-danger-on-soft);--progress-danger-bar-border-color:var(--tone-danger-mark);--progress-danger-bar-fill-color:var(--tone-danger-mark);--rating-color-danger:var(--tone-danger-mark);--card-tint-danger-background:var(--tone-danger-soft);--progress-bar-background-color:var(--surface-sunken);--progress-bar-color:var(--text-default);--progress-default-bar-border-color:var(--border-strong);--progress-default-bar-fill-color:var(--text-muted);--rating-empty-color:var(--rating-empty);--rating-empty-label-color:var(--text-muted);--rating-half-rate-empty-color:var(--rating-empty);--card-tint-default-background:var(--surface-raised-alt);--card-accent-color:var(--tone-accent-text);--card-backdrop-filter:var(--surface-blur);--card-background-accent-color:var(--surface-raised-alt);--card-background-color:var(--surface-card);--card-border-accent-color:var(--tone-accent-mark);--card-border-color:var(--border-card);--card-box-shadow:var(--shadow-md);--card-color:var(--text-default);--card-footer-background-color:var(--surface-raised-alt);--card-footer-color:var(--text-soft);--card-hover-border-color:var(--border-card-hover);--card-surface-box-shadow:var(--shadow-sm);--card-title-color:var(--text-strong);--card-title-font-family:var(--font-display);--card-title-font-size:var(--display-size);--card-title-font-style:var(--display-style);--card-title-font-weight:var(--display-weight);--card-title-letter-spacing:var(--display-tracking);--card-title-text-transform:var(--display-transform);--modal-backdrop-filter:var(--surface-blur);--modal-background-color:var(--surface-overlay-card);--modal-body-color:var(--text-default);--modal-border-color:var(--border-card);--modal-box-shadow:var(--shadow-lg);--modal-box-shadow-hover:var(--shadow-lg);--modal-color:var(--text-default);--modal-footer-background-color:var(--surface-raised-alt);--modal-header-background-color:var(--surface-raised-alt);--modal-header-color:var(--text-strong);--modal-surface-box-shadow:var(--shadow-lg);--modal-title-color:var(--text-strong);--modal-title-font-family:var(--font-body);--modal-title-font-size:var(--font-size-sm);--modal-title-font-style:normal;--modal-title-font-weight:700;--modal-title-letter-spacing:0.15em;--modal-title-text-transform:uppercase;--drawer-background-color:var(--surface-overlay-card);--drawer-header-background-color:var(--surface-raised-alt);--drawer-border-color:var(--border-card);--drawer-shadow:var(--shadow-lg);--form-control-background-color:var(--field-bg);--form-control-border-color:var(--field-border);--form-control-color:var(--field-fg);--form-control-focus-background-color:var(--field-bg-focus);--form-control-focus-border-color:var(--field-border-focus);--form-control-focus-color:var(--field-fg);--form-control-focus-ring:var(--field-ring);--form-control-error-background-color:color-mix(in oklab, var(--tone-danger-solid) 6%, var(--field-bg));--form-control-error-border-color:var(--tone-danger-mark);--form-control-error-color:var(--tone-danger-text);--form-control-success-background-color:color-mix(in oklab, var(--tone-success-solid) 7%, var(--field-bg));--form-control-success-border-color:var(--tone-success-mark);--form-control-success-color:var(--tone-success-text);--form-control-font-family:var(--font-body);--form-control-label-color:var(--field-label);--form-control-label-font-size:var(--font-size-xs);--form-control-label-font-weight:var(--label-weight);--form-control-label-letter-spacing:var(--label-tracking);--form-control-label-text-transform:var(--label-transform);--form-control-placeholder-color:var(--field-placeholder);--form-control-selection-background-color:var(--selected-solid);--form-control-selection-border-color:var(--selected-solid);--form-control-selection-color:var(--selected-solid-fg);--form-control-selection-label-color:var(--text-default);--datepicker-input-background-color:var(--field-bg);--dropdown-border-color:var(--field-border);--dropdown-header-background-color:var(--field-bg);--dropdown-header-border-focus-color:var(--field-border-focus);--dropdown-header-color:var(--field-fg);--dropdown-options-background-color:var(--surface-overlay);--dropdown-options-color:var(--text-default);--dropdown-options-hover-background-color:var(--surface-hover);--dropdown-options-hover-color:var(--text-strong);--dropdown-options-selected-background-color:var(--surface-selected);--dropdown-options-selected-color:var(--text-strong);--dropdown-action-background-color:var(--surface-raised-alt);--dropdown-action-color:var(--text-link);--dropdown-action-hover-background-color:var(--surface-hover);--dropdown-action-hover-color:var(--text-link-hover);--dropdown-chips-background-color:var(--selected-bg);--dropdown-chips-border-color:var(--selected-border);--dropdown-chips-color:var(--selected-fg);--dropdown-chips-hover-background-color:var(--selected-bg-hover);--slider-track-background-color:var(--surface-sunken);--slider-track-border-color:var(--field-border);--slider-track-hover-background-color:var(--control-hover);--slider-track-hover-border-color:var(--field-border-hover);--slider-thumb-background-color:var(--tone-accent-mark);--slider-thumb-border-color:var(--tone-accent-mark);--slider-thumb-hover-background-color:var(--tone-accent-solid-hover);--slider-thumb-hover-border-color:var(--tone-accent-solid-hover);--calendar-background-color:var(--surface-overlay);--calendar-border-color:var(--border-default);--calendar-day-color:var(--text-soft);--calendar-day-disabled-color:var(--text-subtle);--calendar-day-hover-background-color:var(--control-hover);--calendar-day-selected-background-color:var(--tone-accent-solid);--calendar-day-selected-color:var(--tone-accent-on-solid);--calendar-day-today-border-color:var(--tone-accent-mark);--calendar-day-weekend-color:var(--text-muted);--calendar-header-background-color:var(--surface-raised-alt);--calendar-header-color:var(--text-strong);--chip-hover-background-color:var(--surface-hover);--chip-hover-border-color:var(--border-strong);--chip-hover-color:var(--text-strong);--chip-selected-background-color:var(--selected-bg);--chip-selected-border-color:var(--selected-border);--chip-selected-color:var(--selected-fg);--chip-selected-count-color:color-mix(in oklab, var(--selected-fg) 72%, transparent);--list-alternate-background-color:var(--surface-stripe);--list-hover-background-color:var(--surface-hover);--tabs-active-background-color:var(--selected-bg);--tabs-active-color:var(--selected-fg);--tabs-inactive-background-color:transparent;--tabs-inactive-color:var(--text-muted);--tooltip-background-color:var(--tone-neutral-solid);--tooltip-border-color:var(--tone-neutral-solid);--tooltip-color:var(--tone-neutral-on-solid);--popover-background-color:var(--surface-overlay);--popover-border-color:var(--border-default);--popover-color:var(--text-default);--popover-arrow-color:var(--border-default);--loader-border-color:var(--tone-accent-soft);--loader-border-top-color:var(--tone-accent-mark);--tour-hud-accent-color:var(--tone-accent-mark);--note-container-effect-background-color:var(--tone-accent-soft);--note-container-effect-color:var(--tone-accent-on-soft);--note-container-effect-border-left-color:var(--tone-accent-mark);--glow-box-shadow-color:0 0 16px color-mix(in oklab, var(--tone-accent-mark) 45%, transparent);--glow-hover-border-color:var(--tone-accent-border);--infuse-effect-before-background:linear-gradient(90deg, var(--tone-accent-mark), var(--accent-glow));--infuse-effect-hover-border-color:var(--tone-accent-mark);--infuse-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent);--up-lift-effect-before-background:linear-gradient(135deg, var(--tone-accent-mark), var(--accent-glow));--up-lift-effect-box-shadow-color:var(--shadow-color-strong);--up-lift-effect-hover-border-color:var(--tone-accent-mark);--up-lift-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent)}
2
+ /*
3
+ * Component recipes for the authored themes. Badge and Chip take a tone and one shared set
4
+ * of roles (soft background, ink on soft, border), so a "success" badge, a selected
5
+ * "success" chip and a success toast carry the same three colours.
6
+ *
7
+ * These rules sit here rather than in @memobit/libs while the classic themes still drive
8
+ * the same components. Once the classic themes are retired they move into the lib.
9
+ */
10
+
11
+ [data-theme='pulse-night-chart'] .badge-variant--default {
12
+ --recipe-soft: var(--tone-neutral-soft);
13
+ --recipe-soft-hover: var(--tone-neutral-soft-hover);
14
+ --recipe-on-soft: var(--tone-neutral-on-soft);
15
+ --recipe-border: var(--tone-neutral-border);
16
+ }
17
+
18
+ [data-theme='pulse-night-chart'] :is(.badge-variant--info, .chip--info) {
19
+ --recipe-soft: var(--tone-accent-soft);
20
+ --recipe-soft-hover: var(--tone-accent-soft-hover);
21
+ --recipe-on-soft: var(--tone-accent-on-soft);
22
+ --recipe-border: var(--tone-accent-border);
23
+ }
24
+
25
+ [data-theme='pulse-night-chart'] :is(.badge-variant--success, .chip--success) {
26
+ --recipe-soft: var(--tone-success-soft);
27
+ --recipe-soft-hover: var(--tone-success-soft-hover);
28
+ --recipe-on-soft: var(--tone-success-on-soft);
29
+ --recipe-border: var(--tone-success-border);
30
+ }
31
+
32
+ [data-theme='pulse-night-chart'] :is(.badge-variant--warning, .chip--warning) {
33
+ --recipe-soft: var(--tone-warning-soft);
34
+ --recipe-soft-hover: var(--tone-warning-soft-hover);
35
+ --recipe-on-soft: var(--tone-warning-on-soft);
36
+ --recipe-border: var(--tone-warning-border);
37
+ }
38
+
39
+ [data-theme='pulse-night-chart'] :is(.badge-variant--danger, .chip--danger) {
40
+ --recipe-soft: var(--tone-danger-soft);
41
+ --recipe-soft-hover: var(--tone-danger-soft-hover);
42
+ --recipe-on-soft: var(--tone-danger-on-soft);
43
+ --recipe-border: var(--tone-danger-border);
44
+ }
45
+
46
+ [data-theme='pulse-night-chart']
47
+ .badge:is(.badge-variant--default, .badge-variant--info, .badge-variant--success, .badge-variant--warning, .badge-variant--danger) {
48
+ border-color: var(--recipe-border);
49
+ background-color: var(--recipe-soft);
50
+ color: var(--recipe-on-soft);
51
+ }
52
+
53
+ [data-theme='pulse-night-chart'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger) {
54
+ border-color: var(--border-default);
55
+ background: transparent;
56
+ color: var(--text-default);
57
+ }
58
+
59
+ [data-theme='pulse-night-chart'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger):hover:not(:disabled) {
60
+ border-color: var(--recipe-border);
61
+ background: var(--surface-hover);
62
+ color: var(--text-strong);
63
+ }
64
+
65
+ [data-theme='pulse-night-chart'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected {
66
+ border-color: var(--recipe-border);
67
+ background: var(--recipe-soft);
68
+ color: var(--recipe-on-soft);
69
+ }
70
+
71
+ [data-theme='pulse-night-chart'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected:hover:not(:disabled) {
72
+ border-color: var(--recipe-border);
73
+ background: var(--recipe-soft-hover);
74
+ color: var(--recipe-on-soft);
75
+ }
76
+
77
+ /* A default chip carries no tone, so its selected state is the theme's selection style. */
78
+ [data-theme='pulse-night-chart'] .chip.chip--default {
79
+ --recipe-soft: var(--selected-bg);
80
+ --recipe-soft-hover: var(--selected-bg-hover);
81
+ --recipe-on-soft: var(--selected-fg);
82
+ --recipe-border: var(--selected-border);
83
+ }
@@ -0,0 +1,83 @@
1
+ [data-theme='readout-highlighter']{color-scheme:light;--font-body:'Source Sans 3', system-ui, sans-serif;--font-display:'Literata', Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:normal;--display-weight:600;--display-size:var(--font-size-lg);--display-transform:none;--display-tracking:-0.005em;--label-weight:600;--label-transform:none;--label-tracking:0.01em;--header-weight:600;--canvas-layers:none;--surface-canvas:#f4f4f1;--surface-card:#fdfdfb;--surface-raised:#ffffff;--surface-raised-alt:#f6f6f2;--surface-overlay:#ffffff;--button-fill:#ffffff;--surface-overlay-card:#fdfdfb;--surface-sunken:#e6e6de;--control-hover:#ecece5;--surface-hover:color-mix(in oklab, #f2c514 8%, transparent);--surface-stripe:#f9f9f6;--rating-empty:color-mix(in oklab, #e6e6de 85%, #1b1d21);--surface-selected:color-mix(in oklab, #f2c514 18%, transparent);--surface-blur:none;--text-strong:#1b1d21;--text-default:#2d3036;--text-soft:#474b53;--text-muted:#5d626a;--text-subtle:#858990;--text-link:#24357f;--text-link-hover:#1a2763;--border-subtle:rgba(27, 29, 33, 0.08);--border-default:rgba(27, 29, 33, 0.14);--border-strong:rgba(27, 29, 33, 0.14);--border-card:rgba(27, 29, 33, 0.08);--border-card-hover:rgba(27, 29, 33, 0.08);--field-bg:#ffffff;--field-bg-focus:#ffffff;--field-bg-disabled:color-mix(in oklab, #ffffff 94%, #1b1d21);--field-fg:#2d3036;--field-border:rgba(27, 29, 33, 0.2);--field-border-hover:#2c3e8f;--field-border-focus:#f2c514;--field-placeholder:#858990;--field-label:#5d626a;--field-ring:color-mix(in oklab, #f2c514 24%, transparent);--tone-neutral-solid:#1b1d21;--tone-neutral-solid-hover:color-mix(in oklab, #1b1d21 70%, #2d3036);--tone-neutral-on-solid:#ffffff;--tone-neutral-soft:#ecece5;--tone-neutral-soft-hover:color-mix(in oklab, #ecece5 92%, #1b1d21);--tone-neutral-on-soft:#1b1d21;--tone-neutral-border:rgba(27, 29, 33, 0.14);--tone-neutral-text:#474b53;--tone-accent-solid:#2c3e8f;--tone-accent-mark:#f2c514;--tone-accent-solid-hover:#22327a;--tone-accent-on-solid:#ffffff;--tone-accent-soft:color-mix(in oklab, #f2c514 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #f2c514 24%, transparent);--tone-accent-on-soft:#24357f;--tone-accent-border:color-mix(in oklab, #f2c514 40%, transparent);--tone-accent-text:#24357f;--tone-success-solid:#1d7a46;--tone-success-mark:#1d7a46;--tone-success-solid-hover:#176239;--tone-success-on-solid:#ffffff;--tone-success-soft:color-mix(in oklab, #1d7a46 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #1d7a46 24%, transparent);--tone-success-on-soft:#17643a;--tone-success-border:color-mix(in oklab, #1d7a46 40%, transparent);--tone-success-text:#17643a;--tone-warning-solid:#a3560c;--tone-warning-mark:#a3560c;--tone-warning-solid-hover:#86460a;--tone-warning-on-solid:#ffffff;--tone-warning-soft:color-mix(in oklab, #a3560c 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #a3560c 24%, transparent);--tone-warning-on-soft:#8a4b05;--tone-warning-border:color-mix(in oklab, #a3560c 40%, transparent);--tone-warning-text:#8a4b05;--tone-danger-solid:#b3261e;--tone-danger-mark:#b3261e;--tone-danger-solid-hover:#931f19;--tone-danger-on-solid:#ffffff;--tone-danger-soft:color-mix(in oklab, #b3261e 16%, transparent);--tone-danger-soft-hover:color-mix(in oklab, #b3261e 24%, transparent);--tone-danger-on-soft:#a3221b;--tone-danger-border:color-mix(in oklab, #b3261e 40%, transparent);--tone-danger-text:#a3221b;--accent-glow:#f2c514;--selected-bg:var(--tone-accent-soft);--selected-bg-hover:var(--tone-accent-soft-hover);--selected-fg:var(--tone-accent-on-soft);--selected-border:var(--tone-accent-border);--selected-solid:var(--tone-accent-solid);--selected-solid-fg:var(--tone-accent-on-solid);--shadow-color:color-mix(in oklab, color-mix(in oklab, #1b1d21 40%, transparent) 45%, transparent);--shadow-color-strong:color-mix(in oklab, color-mix(in oklab, #1b1d21 40%, transparent) 62%, transparent);--shadow-sm:0 1px 2px rgba(27, 29, 33, 0.05);--shadow-md:0 1px 2px rgba(27, 29, 33, 0.05), 0 8px 20px -14px rgba(27, 29, 33, 0.2);--shadow-lg:0 24px 60px rgba(27, 29, 33, 0.22);--scrim:color-mix(in oklab, #1b1d21 45%, transparent);--body-background:var(--canvas-layers), var(--surface-canvas);--body-background-base:var(--surface-canvas);--body-background-wash:var(--canvas-layers), var(--surface-canvas);--body-background-glow:none;--body-color:var(--text-default);--body-color-accent:var(--text-strong);--body-color-muted:var(--text-muted);--body-title-color:var(--text-strong);--body-sub-title-color:var(--text-soft);--body-accent-color:var(--tone-accent-text);--body-danger-color:var(--tone-danger-text);--backdrop-color:var(--scrim);--box-shadow:var(--shadow-color);--text-shadow:var(--shadow-color);--border-color:var(--border-strong);--delimiter-color:var(--border-subtle);--links-color:var(--text-link);--links-hover-color:var(--text-link-hover);--font-family:var(--font-body);--font-family-sans:var(--font-body);--font-family-display:var(--font-display);--font-family-mono:var(--font-mono);--header-background-color:var(--surface-raised);--header-border-bottom-color:var(--border-subtle);--header-color:var(--text-strong);--header-font-weight:var(--header-weight);--button-default-background-color:var(--button-fill);--button-default-border-color:var(--border-default);--button-default-color:var(--text-default);--button-default-hover-background-color:var(--control-hover);--button-default-hover-border-color:var(--field-border-hover);--button-default-hover-color:var(--text-strong);--button-ghost-background-color:transparent;--button-ghost-border-color:transparent;--button-ghost-color:var(--text-soft);--button-ghost-hover-background-color:var(--control-hover);--button-ghost-hover-border-color:transparent;--button-ghost-hover-color:var(--text-strong);--button-plain-color:var(--text-soft);--button-plain-hover-color:var(--text-strong);--button-info-background-color:var(--tone-accent-solid);--button-info-border-color:var(--tone-accent-mark);--button-info-color:var(--tone-accent-on-solid);--button-info-hover-background-color:var(--tone-accent-solid-hover);--button-info-hover-border-color:var(--tone-accent-mark);--button-info-hover-color:var(--tone-accent-on-solid);--toast-info-background-color:var(--tone-accent-soft);--toast-info-border-color:var(--tone-accent-border);--toast-info-color:var(--tone-accent-on-soft);--progress-info-bar-border-color:var(--tone-accent-mark);--progress-info-bar-fill-color:var(--tone-accent-mark);--rating-color-info:var(--tone-accent-mark);--card-tint-info-background:var(--tone-accent-soft);--button-success-background-color:var(--tone-success-solid);--button-success-border-color:var(--tone-success-mark);--button-success-color:var(--tone-success-on-solid);--button-success-hover-background-color:var(--tone-success-solid-hover);--button-success-hover-border-color:var(--tone-success-mark);--button-success-hover-color:var(--tone-success-on-solid);--toast-success-background-color:var(--tone-success-soft);--toast-success-border-color:var(--tone-success-border);--toast-success-color:var(--tone-success-on-soft);--progress-success-bar-border-color:var(--tone-success-mark);--progress-success-bar-fill-color:var(--tone-success-mark);--rating-color-success:var(--tone-success-mark);--card-tint-success-background:var(--tone-success-soft);--button-warning-background-color:var(--tone-warning-solid);--button-warning-border-color:var(--tone-warning-mark);--button-warning-color:var(--tone-warning-on-solid);--button-warning-hover-background-color:var(--tone-warning-solid-hover);--button-warning-hover-border-color:var(--tone-warning-mark);--button-warning-hover-color:var(--tone-warning-on-solid);--toast-warning-background-color:var(--tone-warning-soft);--toast-warning-border-color:var(--tone-warning-border);--toast-warning-color:var(--tone-warning-on-soft);--progress-warning-bar-border-color:var(--tone-warning-mark);--progress-warning-bar-fill-color:var(--tone-warning-mark);--rating-color-warning:var(--tone-warning-mark);--card-tint-warning-background:var(--tone-warning-soft);--button-danger-background-color:var(--tone-danger-solid);--button-danger-border-color:var(--tone-danger-mark);--button-danger-color:var(--tone-danger-on-solid);--button-danger-hover-background-color:var(--tone-danger-solid-hover);--button-danger-hover-border-color:var(--tone-danger-mark);--button-danger-hover-color:var(--tone-danger-on-solid);--toast-danger-background-color:var(--tone-danger-soft);--toast-danger-border-color:var(--tone-danger-border);--toast-danger-color:var(--tone-danger-on-soft);--progress-danger-bar-border-color:var(--tone-danger-mark);--progress-danger-bar-fill-color:var(--tone-danger-mark);--rating-color-danger:var(--tone-danger-mark);--card-tint-danger-background:var(--tone-danger-soft);--progress-bar-background-color:var(--surface-sunken);--progress-bar-color:var(--text-default);--progress-default-bar-border-color:var(--border-strong);--progress-default-bar-fill-color:var(--text-muted);--rating-empty-color:var(--rating-empty);--rating-empty-label-color:var(--text-muted);--rating-half-rate-empty-color:var(--rating-empty);--card-tint-default-background:var(--surface-raised-alt);--card-accent-color:var(--tone-accent-text);--card-backdrop-filter:var(--surface-blur);--card-background-accent-color:var(--surface-raised-alt);--card-background-color:var(--surface-card);--card-border-accent-color:var(--tone-accent-mark);--card-border-color:var(--border-card);--card-box-shadow:var(--shadow-md);--card-color:var(--text-default);--card-footer-background-color:var(--surface-raised-alt);--card-footer-color:var(--text-soft);--card-hover-border-color:var(--border-card-hover);--card-surface-box-shadow:var(--shadow-sm);--card-title-color:var(--text-strong);--card-title-font-family:var(--font-display);--card-title-font-size:var(--display-size);--card-title-font-style:var(--display-style);--card-title-font-weight:var(--display-weight);--card-title-letter-spacing:var(--display-tracking);--card-title-text-transform:var(--display-transform);--modal-backdrop-filter:var(--surface-blur);--modal-background-color:var(--surface-overlay-card);--modal-body-color:var(--text-default);--modal-border-color:var(--border-card);--modal-box-shadow:var(--shadow-lg);--modal-box-shadow-hover:var(--shadow-lg);--modal-color:var(--text-default);--modal-footer-background-color:var(--surface-raised-alt);--modal-header-background-color:var(--surface-raised-alt);--modal-header-color:var(--text-strong);--modal-surface-box-shadow:var(--shadow-lg);--modal-title-color:var(--text-strong);--modal-title-font-family:var(--font-display);--modal-title-font-size:var(--font-size-xl);--modal-title-font-style:normal;--modal-title-font-weight:600;--modal-title-letter-spacing:normal;--modal-title-text-transform:none;--drawer-background-color:var(--surface-overlay-card);--drawer-header-background-color:var(--surface-raised-alt);--drawer-border-color:var(--border-card);--drawer-shadow:var(--shadow-lg);--form-control-background-color:var(--field-bg);--form-control-border-color:var(--field-border);--form-control-color:var(--field-fg);--form-control-focus-background-color:var(--field-bg-focus);--form-control-focus-border-color:var(--field-border-focus);--form-control-focus-color:var(--field-fg);--form-control-focus-ring:var(--field-ring);--form-control-error-background-color:color-mix(in oklab, var(--tone-danger-solid) 6%, var(--field-bg));--form-control-error-border-color:var(--tone-danger-mark);--form-control-error-color:var(--tone-danger-text);--form-control-success-background-color:color-mix(in oklab, var(--tone-success-solid) 7%, var(--field-bg));--form-control-success-border-color:var(--tone-success-mark);--form-control-success-color:var(--tone-success-text);--form-control-font-family:var(--font-body);--form-control-label-color:var(--field-label);--form-control-label-font-size:var(--font-size-xs);--form-control-label-font-weight:var(--label-weight);--form-control-label-letter-spacing:var(--label-tracking);--form-control-label-text-transform:var(--label-transform);--form-control-placeholder-color:var(--field-placeholder);--form-control-selection-background-color:var(--selected-solid);--form-control-selection-border-color:var(--selected-solid);--form-control-selection-color:var(--selected-solid-fg);--form-control-selection-label-color:var(--text-default);--datepicker-input-background-color:var(--field-bg);--dropdown-border-color:var(--field-border);--dropdown-header-background-color:var(--field-bg);--dropdown-header-border-focus-color:var(--field-border-focus);--dropdown-header-color:var(--field-fg);--dropdown-options-background-color:var(--surface-overlay);--dropdown-options-color:var(--text-default);--dropdown-options-hover-background-color:var(--surface-hover);--dropdown-options-hover-color:var(--text-strong);--dropdown-options-selected-background-color:var(--surface-selected);--dropdown-options-selected-color:var(--text-strong);--dropdown-action-background-color:var(--surface-raised-alt);--dropdown-action-color:var(--text-link);--dropdown-action-hover-background-color:var(--surface-hover);--dropdown-action-hover-color:var(--text-link-hover);--dropdown-chips-background-color:var(--selected-bg);--dropdown-chips-border-color:var(--selected-border);--dropdown-chips-color:var(--selected-fg);--dropdown-chips-hover-background-color:var(--selected-bg-hover);--slider-track-background-color:var(--surface-sunken);--slider-track-border-color:var(--field-border);--slider-track-hover-background-color:var(--control-hover);--slider-track-hover-border-color:var(--field-border-hover);--slider-thumb-background-color:var(--tone-accent-mark);--slider-thumb-border-color:var(--tone-accent-mark);--slider-thumb-hover-background-color:var(--tone-accent-solid-hover);--slider-thumb-hover-border-color:var(--tone-accent-solid-hover);--calendar-background-color:var(--surface-overlay);--calendar-border-color:var(--border-default);--calendar-day-color:var(--text-soft);--calendar-day-disabled-color:var(--text-subtle);--calendar-day-hover-background-color:var(--control-hover);--calendar-day-selected-background-color:var(--tone-accent-solid);--calendar-day-selected-color:var(--tone-accent-on-solid);--calendar-day-today-border-color:var(--tone-accent-mark);--calendar-day-weekend-color:var(--text-muted);--calendar-header-background-color:var(--surface-raised-alt);--calendar-header-color:var(--text-strong);--chip-hover-background-color:var(--surface-hover);--chip-hover-border-color:var(--border-strong);--chip-hover-color:var(--text-strong);--chip-selected-background-color:var(--selected-bg);--chip-selected-border-color:var(--selected-border);--chip-selected-color:var(--selected-fg);--chip-selected-count-color:color-mix(in oklab, var(--selected-fg) 72%, transparent);--list-alternate-background-color:var(--surface-stripe);--list-hover-background-color:var(--surface-hover);--tabs-active-background-color:var(--selected-bg);--tabs-active-color:var(--selected-fg);--tabs-inactive-background-color:transparent;--tabs-inactive-color:var(--text-muted);--tooltip-background-color:var(--tone-neutral-solid);--tooltip-border-color:var(--tone-neutral-solid);--tooltip-color:var(--tone-neutral-on-solid);--popover-background-color:var(--surface-overlay);--popover-border-color:var(--border-default);--popover-color:var(--text-default);--popover-arrow-color:var(--border-default);--loader-border-color:var(--tone-accent-soft);--loader-border-top-color:var(--tone-accent-mark);--tour-hud-accent-color:var(--tone-accent-mark);--note-container-effect-background-color:var(--tone-accent-soft);--note-container-effect-color:var(--tone-accent-on-soft);--note-container-effect-border-left-color:var(--tone-accent-mark);--glow-box-shadow-color:0 0 16px color-mix(in oklab, var(--tone-accent-mark) 45%, transparent);--glow-hover-border-color:var(--tone-accent-border);--infuse-effect-before-background:linear-gradient(90deg, var(--tone-accent-mark), var(--accent-glow));--infuse-effect-hover-border-color:var(--tone-accent-mark);--infuse-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent);--up-lift-effect-before-background:linear-gradient(135deg, var(--tone-accent-mark), var(--accent-glow));--up-lift-effect-box-shadow-color:var(--shadow-color-strong);--up-lift-effect-hover-border-color:var(--tone-accent-mark);--up-lift-effect-hover-box-shadow-color:color-mix(in oklab, var(--tone-accent-mark) 35%, transparent)}
2
+ /*
3
+ * Component recipes for the authored themes. Badge and Chip take a tone and one shared set
4
+ * of roles (soft background, ink on soft, border), so a "success" badge, a selected
5
+ * "success" chip and a success toast carry the same three colours.
6
+ *
7
+ * These rules sit here rather than in @memobit/libs while the classic themes still drive
8
+ * the same components. Once the classic themes are retired they move into the lib.
9
+ */
10
+
11
+ [data-theme='readout-highlighter'] .badge-variant--default {
12
+ --recipe-soft: var(--tone-neutral-soft);
13
+ --recipe-soft-hover: var(--tone-neutral-soft-hover);
14
+ --recipe-on-soft: var(--tone-neutral-on-soft);
15
+ --recipe-border: var(--tone-neutral-border);
16
+ }
17
+
18
+ [data-theme='readout-highlighter'] :is(.badge-variant--info, .chip--info) {
19
+ --recipe-soft: var(--tone-accent-soft);
20
+ --recipe-soft-hover: var(--tone-accent-soft-hover);
21
+ --recipe-on-soft: var(--tone-accent-on-soft);
22
+ --recipe-border: var(--tone-accent-border);
23
+ }
24
+
25
+ [data-theme='readout-highlighter'] :is(.badge-variant--success, .chip--success) {
26
+ --recipe-soft: var(--tone-success-soft);
27
+ --recipe-soft-hover: var(--tone-success-soft-hover);
28
+ --recipe-on-soft: var(--tone-success-on-soft);
29
+ --recipe-border: var(--tone-success-border);
30
+ }
31
+
32
+ [data-theme='readout-highlighter'] :is(.badge-variant--warning, .chip--warning) {
33
+ --recipe-soft: var(--tone-warning-soft);
34
+ --recipe-soft-hover: var(--tone-warning-soft-hover);
35
+ --recipe-on-soft: var(--tone-warning-on-soft);
36
+ --recipe-border: var(--tone-warning-border);
37
+ }
38
+
39
+ [data-theme='readout-highlighter'] :is(.badge-variant--danger, .chip--danger) {
40
+ --recipe-soft: var(--tone-danger-soft);
41
+ --recipe-soft-hover: var(--tone-danger-soft-hover);
42
+ --recipe-on-soft: var(--tone-danger-on-soft);
43
+ --recipe-border: var(--tone-danger-border);
44
+ }
45
+
46
+ [data-theme='readout-highlighter']
47
+ .badge:is(.badge-variant--default, .badge-variant--info, .badge-variant--success, .badge-variant--warning, .badge-variant--danger) {
48
+ border-color: var(--recipe-border);
49
+ background-color: var(--recipe-soft);
50
+ color: var(--recipe-on-soft);
51
+ }
52
+
53
+ [data-theme='readout-highlighter'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger) {
54
+ border-color: var(--border-default);
55
+ background: transparent;
56
+ color: var(--text-default);
57
+ }
58
+
59
+ [data-theme='readout-highlighter'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger):hover:not(:disabled) {
60
+ border-color: var(--recipe-border);
61
+ background: var(--surface-hover);
62
+ color: var(--text-strong);
63
+ }
64
+
65
+ [data-theme='readout-highlighter'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected {
66
+ border-color: var(--recipe-border);
67
+ background: var(--recipe-soft);
68
+ color: var(--recipe-on-soft);
69
+ }
70
+
71
+ [data-theme='readout-highlighter'] .chip:is(.chip--default, .chip--info, .chip--success, .chip--warning, .chip--danger).chip--selected:hover:not(:disabled) {
72
+ border-color: var(--recipe-border);
73
+ background: var(--recipe-soft-hover);
74
+ color: var(--recipe-on-soft);
75
+ }
76
+
77
+ /* A default chip carries no tone, so its selected state is the theme's selection style. */
78
+ [data-theme='readout-highlighter'] .chip.chip--default {
79
+ --recipe-soft: var(--selected-bg);
80
+ --recipe-soft-hover: var(--selected-bg-hover);
81
+ --recipe-on-soft: var(--selected-fg);
82
+ --recipe-border: var(--selected-border);
83
+ }