@memobit/themes 1.4.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -7
- package/dist/authored/sandy-parchment.css +83 -0
- package/dist/authored.css +83 -0
- package/dist/authoredEngine.d.ts +11 -0
- package/dist/authoredEngine.js +17 -0
- package/dist/authoredThemes.d.ts +39 -0
- package/dist/authoredThemes.js +199 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -3
- package/dist/previewPalettes.js +0 -160
- package/dist/registry.d.ts +7 -0
- package/dist/registry.js +13 -0
- package/dist/themeConfig.js +2 -147
- package/dist/themes/ascend-contour-night.css +83 -0
- package/dist/themes/ascend-contour.css +83 -0
- package/dist/themes/pocket-chip.css +83 -0
- package/dist/themes/pocket-receipt.css +83 -0
- package/dist/themes/readout-highlighter.css +83 -0
- package/dist/themes/readout-night-reader.css +83 -0
- package/dist/themes/recall-calling-card.css +83 -0
- package/dist/themes/recall-stage-light.css +83 -0
- package/dist/themes/tasks-deep-work.css +83 -0
- package/dist/themes/tasks-legal-pad.css +83 -0
- package/dist/themes.css +840 -1
- package/package.json +11 -4
- package/dist/themes/amber-meridian.css +0 -1
- package/dist/themes/archive-indigo.css +0 -1
- package/dist/themes/blush-market.css +0 -1
- package/dist/themes/brass-chronicle.css +0 -1
- package/dist/themes/clinical-aqua.css +0 -1
- package/dist/themes/command-slate.css +0 -1
- package/dist/themes/ember-night.css +0 -1
- package/dist/themes/frost-petal.css +0 -1
- package/dist/themes/gilded-bear.css +0 -1
- package/dist/themes/horizon-drift.css +0 -1
- package/dist/themes/lavender-mist.css +0 -1
- package/dist/themes/light-blue.css +0 -1
- package/dist/themes/midnight-folio.css +0 -1
- package/dist/themes/mint-meadow.css +0 -1
- package/dist/themes/mintone.css +0 -1
- package/dist/themes/neon-tokyo.css +0 -1
- package/dist/themes/spectrum-vault.css +0 -1
- package/dist/themes/twilight-pulse.css +0 -1
- package/dist/themes/velvet-reel.css +0 -1
- package/dist/themes/velvet-tome.css +0 -1
- package/src/theming/amber-meridian.scss +0 -271
- package/src/theming/archive-indigo.scss +0 -270
- package/src/theming/blush-market.scss +0 -271
- package/src/theming/brass-chronicle.scss +0 -271
- package/src/theming/clinical-aqua.scss +0 -270
- package/src/theming/command-slate.scss +0 -34
- package/src/theming/ember-night.scss +0 -268
- package/src/theming/frost-petal.scss +0 -268
- package/src/theming/gilded-bear.scss +0 -271
- package/src/theming/horizon-drift.scss +0 -271
- package/src/theming/lavender-mist.scss +0 -268
- package/src/theming/light-blue.scss +0 -268
- package/src/theming/midnight-folio.scss +0 -34
- package/src/theming/mint-meadow.scss +0 -268
- package/src/theming/mintone.scss +0 -268
- package/src/theming/neon-tokyo.scss +0 -268
- package/src/theming/spectrum-vault.scss +0 -271
- package/src/theming/twilight-pulse.scss +0 -268
- package/src/theming/velvet-reel.scss +0 -272
- package/src/theming/velvet-tome.scss +0 -271
package/README.md
CHANGED
|
@@ -1,24 +1,104 @@
|
|
|
1
1
|
# @memobit/themes
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Themes for the Memobit apps, in two forms:
|
|
4
|
+
|
|
5
|
+
- **Authored** (new in 2.0): a hand-made theme written as its design choices — ink and text
|
|
6
|
+
tiers, paper surfaces, lines, the accent and status colours, how a selection looks, the
|
|
7
|
+
voice of titles and labels, shadows and glass. The build derives every component value
|
|
8
|
+
from those choices through one shared bridge, so badges, chips, inputs and toasts behave
|
|
9
|
+
the same way in every theme while each keeps its own look.
|
|
10
|
+
- **Classic**: the 49 hand-written themes, each setting ~230 component values directly and
|
|
11
|
+
published as its own stylesheet. They keep working unchanged while apps move over.
|
|
5
12
|
|
|
6
13
|
Extracted from [`@memobit/libs`](https://github.com/CristeaIulian/memobit-react-library) in
|
|
7
14
|
v3.0.0 of that library.
|
|
8
15
|
|
|
9
|
-
##
|
|
16
|
+
## Authored themes
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import '@memobit/themes/authored.css';
|
|
20
|
+
import { applyAuthoredEngine, clearAuthoredEngine } from '@memobit/themes';
|
|
21
|
+
|
|
22
|
+
applyAuthoredEngine(); // the authored version of whatever data-theme names, where one exists
|
|
23
|
+
clearAuthoredEngine(); // back to the classic theme
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
An authored theme applies under its classic theme's `data-theme` while the root carries
|
|
27
|
+
`data-theme-engine="authored"`, so an app can flip between the two. Where no authored
|
|
28
|
+
version exists, the classic theme shows through.
|
|
29
|
+
|
|
30
|
+
### Layers
|
|
31
|
+
|
|
32
|
+
1. **The theme** (`src/authored/<id>.ts`): about 20 required choices and some optional
|
|
33
|
+
ones, typed by `src/authored/contract.ts`. Written by hand or with Claude Design.
|
|
34
|
+
2. **Roles** (`scripts/authored/derive.ts`): turns the choices into semantic roles
|
|
35
|
+
(`--surface-*`, `--text-*`, `--border-*`, `--field-*`, `--tone-*`, `--selected-*`). An
|
|
36
|
+
optional choice left out gets the obvious derivation, e.g. a hover is the solid pushed
|
|
37
|
+
towards the ink.
|
|
38
|
+
3. **Bridge** (`scripts/authored/bridge.ts`): maps the roles onto every component token
|
|
39
|
+
`@memobit/libs` reads (`--button-info-background-color`, `--dropdown-header-color`…).
|
|
40
|
+
4. **Recipes** (`src/authored/recipes.css`): Badge and Chip share one tone recipe.
|
|
41
|
+
|
|
42
|
+
Every tone (neutral, accent, success, warning, danger) exposes the same roles: `solid`,
|
|
43
|
+
`solid-hover`, `on-solid`, `soft`, `soft-hover`, `on-soft`, `border`, `text`. Buttons,
|
|
44
|
+
badges, chips, toasts, progress bars and tabs all read them, which is what keeps a
|
|
45
|
+
"success" the same colour everywhere. The lib's `info` variant is its primary action and
|
|
46
|
+
maps to the accent tone. Every field (text inputs, dropdowns, date pickers, sliders) reads
|
|
47
|
+
the same `--field-*` roles, and the `selection` choice (`ink`, `soft`, `solid`) decides how
|
|
48
|
+
selected chips, tabs and ticked checkboxes look.
|
|
49
|
+
|
|
50
|
+
### Checks
|
|
51
|
+
|
|
52
|
+
`npm run build:authored` fails when
|
|
53
|
+
|
|
54
|
+
- a token some classic theme sets is not produced by the bridge, since it would leak
|
|
55
|
+
through from the classic theme still loaded underneath,
|
|
56
|
+
- a role the bridge or recipes read is not produced by a theme,
|
|
57
|
+
- a theme names a font that neither its `fonts.url` nor its classic entry loads, or
|
|
58
|
+
- a new theme has a text/background pair below its contrast target (4.5:1, 3:1 for
|
|
59
|
+
placeholders).
|
|
60
|
+
|
|
61
|
+
An authored version of a classic theme only reports contrast below target, since it
|
|
62
|
+
reproduces the classic theme as it was.
|
|
63
|
+
|
|
64
|
+
### Two kinds of authored theme
|
|
65
|
+
|
|
66
|
+
- **A new theme** (an id with no classic entry) is a theme in its own right: the build gives
|
|
67
|
+
it a stylesheet at `dist/themes/<id>.css`, served and loaded on demand like the classic
|
|
68
|
+
ones, a registry entry (with `apps` as its recommended apps) and a picker swatch, all in
|
|
69
|
+
the generated `src/authoredThemes.ts`. New themes come first in `THEME_CONFIGS`, so an app
|
|
70
|
+
listed in a theme's `apps` starts on it, light before dark. Apps pick them up by bumping
|
|
71
|
+
this package; nothing changes in the app.
|
|
72
|
+
- **An authored version of a classic theme** (same id, e.g. `sandy-parchment`) applies under
|
|
73
|
+
that classic theme while `data-theme-engine="authored"` is set, for side-by-side
|
|
74
|
+
comparison in the theme lab (`@memobit/libs/theme-lab`).
|
|
75
|
+
|
|
76
|
+
### Adding a theme
|
|
77
|
+
|
|
78
|
+
1. Draft it in `src/authored/concepts/<id>.ts` (an `AuthoredTheme` with `apps` and a
|
|
79
|
+
`description`) and run `npm run preview:concepts`. It writes `dist/concepts.html`: every
|
|
80
|
+
app theme and draft drawn as a small screen of its app, with its contrast report. Sample
|
|
81
|
+
content per app lives in `scripts/authored/samples.ts`.
|
|
82
|
+
2. Once chosen, move it to `src/authored/<id>.ts` and run `npm run build`.
|
|
83
|
+
|
|
84
|
+
To start from a classic theme instead, `npm run port:classic -- <id>` drafts
|
|
85
|
+
`src/authored/<id>.ts` from its stylesheet.
|
|
86
|
+
|
|
87
|
+
## Classic themes
|
|
88
|
+
|
|
89
|
+
### Why
|
|
10
90
|
|
|
11
91
|
Themes used to ship as a single aggregate stylesheet that every app imported wholesale —
|
|
12
92
|
~618 KB of which exactly one theme is ever active. Splitting them took one app's CSS from
|
|
13
93
|
866 KB to 295 KB.
|
|
14
94
|
|
|
15
|
-
|
|
95
|
+
### Install
|
|
16
96
|
|
|
17
97
|
```bash
|
|
18
98
|
npm install @memobit/themes
|
|
19
99
|
```
|
|
20
100
|
|
|
21
|
-
|
|
101
|
+
### Usage
|
|
22
102
|
|
|
23
103
|
Add the Vite plugin. It emits each theme as a separate asset and tells `@memobit/libs`
|
|
24
104
|
where to find them, so `ThemeProvider` fetches the selected theme and nothing else.
|
|
@@ -46,7 +126,7 @@ import '@memobit/libs/dist/styles/base.scss';
|
|
|
46
126
|
import '@memobit/libs/dist/styles/scrollbars.scss';
|
|
47
127
|
```
|
|
48
128
|
|
|
49
|
-
|
|
129
|
+
### Exports
|
|
50
130
|
|
|
51
131
|
```ts
|
|
52
132
|
import {
|
|
@@ -63,7 +143,7 @@ import {
|
|
|
63
143
|
whose stylesheet is not loaded. It is generated from the compiled CSS, because ten themes
|
|
64
144
|
build their tokens through the `_profile-theme` mixin rather than declaring them literally.
|
|
65
145
|
|
|
66
|
-
|
|
146
|
+
### Adding a theme
|
|
67
147
|
|
|
68
148
|
1. Add `src/theming/<name>.scss`, scoped to `[data-theme='<name>']`.
|
|
69
149
|
2. Add a `@use` line in `src/themes.scss`.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment']{color-scheme:light;--font-body:'Figtree', 'Avenir Next', sans-serif;--font-display:'Newsreader', Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:italic;--display-weight:500;--display-size:var(--font-size-xl);--display-transform:none;--display-tracking:normal;--label-weight:500;--label-transform:uppercase;--label-tracking:0.18em;--header-weight:500;--canvas-layers:radial-gradient(120% 100% at 0% 0%, #f8ecd0 0%, #e8d7af 45%, #cbb383 100%);--surface-canvas:#f4ecdc;--surface-card:rgba(255, 248, 230, 0.95);--surface-raised:#f4ead2;--surface-raised-alt:rgba(255, 241, 207, 0.42);--surface-overlay:#f4ead2;--button-fill:#f4ead2;--surface-overlay-card:rgba(255, 248, 230, 0.72);--surface-sunken:#e4d4a7;--control-hover:#ead8ae;--surface-hover:color-mix(in oklab, #c66f22 8%, transparent);--surface-stripe:#efe0bd;--rating-empty:color-mix(in oklab, #e4d4a7 85%, #20160d);--surface-selected:color-mix(in oklab, #c66f22 18%, transparent);--surface-blur:blur(22px) saturate(1.4);--text-strong:#20160d;--text-default:#423929;--text-soft:#635847;--text-muted:#7e725f;--text-subtle:#817664;--text-link:#a85b1c;--text-link-hover:#cf792c;--border-subtle:rgba(90, 68, 34, 0.18);--border-default:rgba(88, 67, 34, 0.22);--border-strong:rgba(88, 67, 34, 0.22);--border-card:rgba(255, 252, 240, 0.8);--border-card-hover:rgba(255, 252, 240, 0.8);--field-bg:#f4ead2;--field-bg-focus:#f8efd8;--field-bg-disabled:color-mix(in oklab, #f4ead2 94%, #20160d);--field-fg:#423929;--field-border:rgba(88, 67, 34, 0.28);--field-border-hover:#b7884d;--field-border-focus:#c66f22;--field-placeholder:#817664;--field-label:#7e725f;--field-ring:color-mix(in oklab, #c66f22 24%, transparent);--tone-neutral-solid:#20160d;--tone-neutral-solid-hover:color-mix(in oklab, #20160d 70%, #423929);--tone-neutral-on-solid:#fff8e9;--tone-neutral-soft:#ead8ae;--tone-neutral-soft-hover:color-mix(in oklab, #ead8ae 92%, #20160d);--tone-neutral-on-soft:#20160d;--tone-neutral-border:rgba(88, 67, 34, 0.22);--tone-neutral-text:#635847;--tone-accent-solid:#c66f22;--tone-accent-mark:#c66f22;--tone-accent-solid-hover:#a85618;--tone-accent-on-solid:#fff8e9;--tone-accent-soft:color-mix(in oklab, #c66f22 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #c66f22 24%, transparent);--tone-accent-on-soft:color-mix(in oklab, #c66f22 80%, #20160d);--tone-accent-border:color-mix(in oklab, #c66f22 40%, transparent);--tone-accent-text:#c66f22;--tone-success-solid:#3f7d45;--tone-success-mark:#3f7d45;--tone-success-solid-hover:#326738;--tone-success-on-solid:#fff8e9;--tone-success-soft:color-mix(in oklab, #3f7d45 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #3f7d45 24%, transparent);--tone-success-on-soft:color-mix(in oklab, #3f7d45 80%, #20160d);--tone-success-border:color-mix(in oklab, #3f7d45 40%, transparent);--tone-success-text:#3f7d45;--tone-warning-solid:#b68432;--tone-warning-mark:#b68432;--tone-warning-solid-hover:#9a6a25;--tone-warning-on-solid:#fff8e9;--tone-warning-soft:color-mix(in oklab, #b68432 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #b68432 24%, transparent);--tone-warning-on-soft:#8a5f1e;--tone-warning-border:color-mix(in oklab, #b68432 40%, transparent);--tone-warning-text:#8a5f1e;--tone-danger-solid:#9f2f2f;--tone-danger-mark:#9f2f2f;--tone-danger-solid-hover:#842525;--tone-danger-on-solid:#fff8e9;--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:color-mix(in oklab, #9f2f2f 80%, #20160d);--tone-danger-border:color-mix(in oklab, #9f2f2f 40%, transparent);--tone-danger-text:#9f2f2f;--accent-glow:#df9048;--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, #20160d 40%, transparent) 45%, transparent);--shadow-color-strong:color-mix(in oklab, color-mix(in oklab, #20160d 40%, transparent) 62%, transparent);--shadow-sm:0 1px 0 rgba(255, 252, 240, 0.9) inset, 0 0 0 1px rgba(31, 24, 17, 0.08), 0 18px 40px -20px rgba(60, 40, 20, 0.45);--shadow-md:0 18px 40px rgba(68, 50, 23, 0.14), 0 2px 8px rgba(68, 50, 23, 0.1);--shadow-lg:0 28px 80px rgba(34, 29, 22, 0.32), 0 6px 18px rgba(34, 29, 22, 0.2);--scrim:rgba(34, 29, 22, 0.42);--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:#c66f22;--toast-info-border-color:color-mix(in oklab, #c66f22 75%, #fff8e9);--toast-info-color:#fff8e9;--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:#3f7d45;--toast-success-border-color:color-mix(in oklab, #3f7d45 75%, #fff8e9);--toast-success-color:#fff8e9;--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:#b68432;--toast-warning-border-color:color-mix(in oklab, #b68432 75%, #fff8e9);--toast-warning-color:#fff8e9;--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%, #fff8e9);--toast-danger-color:#fff8e9;--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:500;--modal-title-letter-spacing:0.18em;--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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment']
|
|
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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment']{color-scheme:light;--font-body:'Figtree', 'Avenir Next', sans-serif;--font-display:'Newsreader', Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;--display-style:italic;--display-weight:500;--display-size:var(--font-size-xl);--display-transform:none;--display-tracking:normal;--label-weight:500;--label-transform:uppercase;--label-tracking:0.18em;--header-weight:500;--canvas-layers:radial-gradient(120% 100% at 0% 0%, #f8ecd0 0%, #e8d7af 45%, #cbb383 100%);--surface-canvas:#f4ecdc;--surface-card:rgba(255, 248, 230, 0.95);--surface-raised:#f4ead2;--surface-raised-alt:rgba(255, 241, 207, 0.42);--surface-overlay:#f4ead2;--button-fill:#f4ead2;--surface-overlay-card:rgba(255, 248, 230, 0.72);--surface-sunken:#e4d4a7;--control-hover:#ead8ae;--surface-hover:color-mix(in oklab, #c66f22 8%, transparent);--surface-stripe:#efe0bd;--rating-empty:color-mix(in oklab, #e4d4a7 85%, #20160d);--surface-selected:color-mix(in oklab, #c66f22 18%, transparent);--surface-blur:blur(22px) saturate(1.4);--text-strong:#20160d;--text-default:#423929;--text-soft:#635847;--text-muted:#7e725f;--text-subtle:#817664;--text-link:#a85b1c;--text-link-hover:#cf792c;--border-subtle:rgba(90, 68, 34, 0.18);--border-default:rgba(88, 67, 34, 0.22);--border-strong:rgba(88, 67, 34, 0.22);--border-card:rgba(255, 252, 240, 0.8);--border-card-hover:rgba(255, 252, 240, 0.8);--field-bg:#f4ead2;--field-bg-focus:#f8efd8;--field-bg-disabled:color-mix(in oklab, #f4ead2 94%, #20160d);--field-fg:#423929;--field-border:rgba(88, 67, 34, 0.28);--field-border-hover:#b7884d;--field-border-focus:#c66f22;--field-placeholder:#817664;--field-label:#7e725f;--field-ring:color-mix(in oklab, #c66f22 24%, transparent);--tone-neutral-solid:#20160d;--tone-neutral-solid-hover:color-mix(in oklab, #20160d 70%, #423929);--tone-neutral-on-solid:#fff8e9;--tone-neutral-soft:#ead8ae;--tone-neutral-soft-hover:color-mix(in oklab, #ead8ae 92%, #20160d);--tone-neutral-on-soft:#20160d;--tone-neutral-border:rgba(88, 67, 34, 0.22);--tone-neutral-text:#635847;--tone-accent-solid:#c66f22;--tone-accent-mark:#c66f22;--tone-accent-solid-hover:#a85618;--tone-accent-on-solid:#fff8e9;--tone-accent-soft:color-mix(in oklab, #c66f22 16%, transparent);--tone-accent-soft-hover:color-mix(in oklab, #c66f22 24%, transparent);--tone-accent-on-soft:color-mix(in oklab, #c66f22 80%, #20160d);--tone-accent-border:color-mix(in oklab, #c66f22 40%, transparent);--tone-accent-text:#c66f22;--tone-success-solid:#3f7d45;--tone-success-mark:#3f7d45;--tone-success-solid-hover:#326738;--tone-success-on-solid:#fff8e9;--tone-success-soft:color-mix(in oklab, #3f7d45 16%, transparent);--tone-success-soft-hover:color-mix(in oklab, #3f7d45 24%, transparent);--tone-success-on-soft:color-mix(in oklab, #3f7d45 80%, #20160d);--tone-success-border:color-mix(in oklab, #3f7d45 40%, transparent);--tone-success-text:#3f7d45;--tone-warning-solid:#b68432;--tone-warning-mark:#b68432;--tone-warning-solid-hover:#9a6a25;--tone-warning-on-solid:#fff8e9;--tone-warning-soft:color-mix(in oklab, #b68432 16%, transparent);--tone-warning-soft-hover:color-mix(in oklab, #b68432 24%, transparent);--tone-warning-on-soft:#8a5f1e;--tone-warning-border:color-mix(in oklab, #b68432 40%, transparent);--tone-warning-text:#8a5f1e;--tone-danger-solid:#9f2f2f;--tone-danger-mark:#9f2f2f;--tone-danger-solid-hover:#842525;--tone-danger-on-solid:#fff8e9;--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:color-mix(in oklab, #9f2f2f 80%, #20160d);--tone-danger-border:color-mix(in oklab, #9f2f2f 40%, transparent);--tone-danger-text:#9f2f2f;--accent-glow:#df9048;--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, #20160d 40%, transparent) 45%, transparent);--shadow-color-strong:color-mix(in oklab, color-mix(in oklab, #20160d 40%, transparent) 62%, transparent);--shadow-sm:0 1px 0 rgba(255, 252, 240, 0.9) inset, 0 0 0 1px rgba(31, 24, 17, 0.08), 0 18px 40px -20px rgba(60, 40, 20, 0.45);--shadow-md:0 18px 40px rgba(68, 50, 23, 0.14), 0 2px 8px rgba(68, 50, 23, 0.1);--shadow-lg:0 28px 80px rgba(34, 29, 22, 0.32), 0 6px 18px rgba(34, 29, 22, 0.2);--scrim:rgba(34, 29, 22, 0.42);--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:#c66f22;--toast-info-border-color:color-mix(in oklab, #c66f22 75%, #fff8e9);--toast-info-color:#fff8e9;--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:#3f7d45;--toast-success-border-color:color-mix(in oklab, #3f7d45 75%, #fff8e9);--toast-success-color:#fff8e9;--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:#b68432;--toast-warning-border-color:color-mix(in oklab, #b68432 75%, #fff8e9);--toast-warning-color:#fff8e9;--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%, #fff8e9);--toast-danger-color:#fff8e9;--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:500;--modal-title-letter-spacing:0.18em;--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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] :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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment']
|
|
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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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
|
+
:root[data-theme-engine='authored'][data-theme='sandy-parchment'] .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,11 @@
|
|
|
1
|
+
/** Present on the root while the authored themes are on. Every authored rule is scoped to it. */
|
|
2
|
+
export declare const THEME_ENGINE_ATTRIBUTE = "data-theme-engine";
|
|
3
|
+
export declare const AUTHORED_ENGINE_VALUE = "authored";
|
|
4
|
+
/**
|
|
5
|
+
* Switches `root` to the hand-made themes (`@memobit/themes/authored.css`). The theme itself
|
|
6
|
+
* stays whatever `data-theme` names; the authored version applies wherever one exists, and
|
|
7
|
+
* the classic theme shows through where it does not.
|
|
8
|
+
*/
|
|
9
|
+
export declare const applyAuthoredEngine: (root?: HTMLElement) => void;
|
|
10
|
+
/** Hands `root` back to the classic themes. */
|
|
11
|
+
export declare const clearAuthoredEngine: (root?: HTMLElement) => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/authoredEngine.ts
|
|
2
|
+
/** Present on the root while the authored themes are on. Every authored rule is scoped to it. */
|
|
3
|
+
var THEME_ENGINE_ATTRIBUTE = "data-theme-engine";
|
|
4
|
+
var AUTHORED_ENGINE_VALUE = "authored";
|
|
5
|
+
/**
|
|
6
|
+
* Switches `root` to the hand-made themes (`@memobit/themes/authored.css`). The theme itself
|
|
7
|
+
* stays whatever `data-theme` names; the authored version applies wherever one exists, and
|
|
8
|
+
* the classic theme shows through where it does not.
|
|
9
|
+
*/
|
|
10
|
+
var applyAuthoredEngine = (root = document.documentElement) => {
|
|
11
|
+
root.setAttribute(THEME_ENGINE_ATTRIBUTE, AUTHORED_ENGINE_VALUE);
|
|
12
|
+
};
|
|
13
|
+
/** Hands `root` back to the classic themes. */
|
|
14
|
+
var clearAuthoredEngine = (root = document.documentElement) => {
|
|
15
|
+
root.removeAttribute(THEME_ENGINE_ATTRIBUTE);
|
|
16
|
+
};
|
|
17
|
+
export { AUTHORED_ENGINE_VALUE, THEME_ENGINE_ATTRIBUTE, applyAuthoredEngine, clearAuthoredEngine };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PreviewToken } from './previewPalettes';
|
|
2
|
+
import { ThemeConfig } from './themeConfig';
|
|
3
|
+
export declare const AUTHORED_THEMES: readonly [{
|
|
4
|
+
readonly id: "ascend-contour-night";
|
|
5
|
+
readonly label: "Contour Night";
|
|
6
|
+
}, {
|
|
7
|
+
readonly id: "ascend-contour";
|
|
8
|
+
readonly label: "Contour";
|
|
9
|
+
}, {
|
|
10
|
+
readonly id: "pocket-chip";
|
|
11
|
+
readonly label: "Chip";
|
|
12
|
+
}, {
|
|
13
|
+
readonly id: "pocket-receipt";
|
|
14
|
+
readonly label: "Receipt";
|
|
15
|
+
}, {
|
|
16
|
+
readonly id: "readout-highlighter";
|
|
17
|
+
readonly label: "Highlighter";
|
|
18
|
+
}, {
|
|
19
|
+
readonly id: "readout-night-reader";
|
|
20
|
+
readonly label: "Night Reader";
|
|
21
|
+
}, {
|
|
22
|
+
readonly id: "recall-calling-card";
|
|
23
|
+
readonly label: "Calling Card";
|
|
24
|
+
}, {
|
|
25
|
+
readonly id: "recall-stage-light";
|
|
26
|
+
readonly label: "Stage Light";
|
|
27
|
+
}, {
|
|
28
|
+
readonly id: "sandy-parchment";
|
|
29
|
+
readonly label: "Sandy Parchment";
|
|
30
|
+
}, {
|
|
31
|
+
readonly id: "tasks-deep-work";
|
|
32
|
+
readonly label: "Deep Work";
|
|
33
|
+
}, {
|
|
34
|
+
readonly id: "tasks-legal-pad";
|
|
35
|
+
readonly label: "Legal Pad";
|
|
36
|
+
}];
|
|
37
|
+
export declare const AUTHORED_THEME_CONFIGS: ThemeConfig[];
|
|
38
|
+
export declare const AUTHORED_LIGHT_THEMES: readonly string[];
|
|
39
|
+
export declare const AUTHORED_PREVIEW_PALETTES: Readonly<Record<string, Readonly<Record<PreviewToken, string>>>>;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
// src/authoredThemes.ts
|
|
2
|
+
var AUTHORED_THEMES = [
|
|
3
|
+
{
|
|
4
|
+
id: "ascend-contour-night",
|
|
5
|
+
label: "Contour Night"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
id: "ascend-contour",
|
|
9
|
+
label: "Contour"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
id: "pocket-chip",
|
|
13
|
+
label: "Chip"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "pocket-receipt",
|
|
17
|
+
label: "Receipt"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: "readout-highlighter",
|
|
21
|
+
label: "Highlighter"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "readout-night-reader",
|
|
25
|
+
label: "Night Reader"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "recall-calling-card",
|
|
29
|
+
label: "Calling Card"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "recall-stage-light",
|
|
33
|
+
label: "Stage Light"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "sandy-parchment",
|
|
37
|
+
label: "Sandy Parchment"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "tasks-deep-work",
|
|
41
|
+
label: "Deep Work"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "tasks-legal-pad",
|
|
45
|
+
label: "Legal Pad"
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
var AUTHORED_THEME_CONFIGS = [
|
|
49
|
+
{
|
|
50
|
+
value: "ascend-contour",
|
|
51
|
+
label: "Contour",
|
|
52
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500..700&family=Public+Sans:wght@400;500;600;700&display=swap",
|
|
53
|
+
recommendedApps: ["Ascend"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
value: "ascend-contour-night",
|
|
57
|
+
label: "Contour Night",
|
|
58
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500..700&family=Public+Sans:wght@400;500;600;700&display=swap",
|
|
59
|
+
recommendedApps: ["Ascend"]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
value: "pocket-receipt",
|
|
63
|
+
label: "Receipt",
|
|
64
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap",
|
|
65
|
+
recommendedApps: ["Pocket"]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
value: "pocket-chip",
|
|
69
|
+
label: "Chip",
|
|
70
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap",
|
|
71
|
+
recommendedApps: ["Pocket"]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
value: "readout-highlighter",
|
|
75
|
+
label: "Highlighter",
|
|
76
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,400..700;1,7..72,400&family=Source+Sans+3:wght@400;500;600;700&display=swap",
|
|
77
|
+
recommendedApps: ["Readout"]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
value: "readout-night-reader",
|
|
81
|
+
label: "Night Reader",
|
|
82
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Newsreader:ital,opsz,wght@0,6..72,400..700;1,6..72,400&display=swap",
|
|
83
|
+
recommendedApps: ["Readout"]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
value: "recall-calling-card",
|
|
87
|
+
label: "Calling Card",
|
|
88
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap",
|
|
89
|
+
recommendedApps: ["Recall"]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
value: "recall-stage-light",
|
|
93
|
+
label: "Stage Light",
|
|
94
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Mulish:wght@400;500;600;700&display=swap",
|
|
95
|
+
recommendedApps: ["Recall"]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
value: "tasks-legal-pad",
|
|
99
|
+
label: "Legal Pad",
|
|
100
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;500;600;700;800&display=swap",
|
|
101
|
+
recommendedApps: ["Tasks"]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
value: "tasks-deep-work",
|
|
105
|
+
label: "Deep Work",
|
|
106
|
+
fontUrl: "https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&display=swap",
|
|
107
|
+
recommendedApps: ["Tasks"]
|
|
108
|
+
}
|
|
109
|
+
];
|
|
110
|
+
var AUTHORED_LIGHT_THEMES = [
|
|
111
|
+
"ascend-contour",
|
|
112
|
+
"pocket-receipt",
|
|
113
|
+
"readout-highlighter",
|
|
114
|
+
"recall-calling-card",
|
|
115
|
+
"tasks-legal-pad"
|
|
116
|
+
];
|
|
117
|
+
var AUTHORED_PREVIEW_PALETTES = {
|
|
118
|
+
"ascend-contour": {
|
|
119
|
+
"--body-background": "#eef1ed",
|
|
120
|
+
"--body-accent-color": "#1c5893",
|
|
121
|
+
"--body-color-muted": "#55635b",
|
|
122
|
+
"--card-background-color": "rgba(252, 253, 251, 0.95)",
|
|
123
|
+
"--header-background-color": "#ffffff",
|
|
124
|
+
"--header-border-bottom-color": "rgba(22, 35, 29, 0.09)"
|
|
125
|
+
},
|
|
126
|
+
"ascend-contour-night": {
|
|
127
|
+
"--body-background": "#111816",
|
|
128
|
+
"--body-accent-color": "#8cc0f0",
|
|
129
|
+
"--body-color-muted": "#93a39a",
|
|
130
|
+
"--card-background-color": "rgba(23, 33, 30, 0.96)",
|
|
131
|
+
"--header-background-color": "#121a17",
|
|
132
|
+
"--header-border-bottom-color": "rgba(214, 224, 218, 0.08)"
|
|
133
|
+
},
|
|
134
|
+
"pocket-receipt": {
|
|
135
|
+
"--body-background": "#efefeb",
|
|
136
|
+
"--body-accent-color": "#0a6464",
|
|
137
|
+
"--body-color-muted": "#5a5a5a",
|
|
138
|
+
"--card-background-color": "#fbfbf8",
|
|
139
|
+
"--header-background-color": "#ffffff",
|
|
140
|
+
"--header-border-bottom-color": "rgba(18, 18, 18, 0.1)"
|
|
141
|
+
},
|
|
142
|
+
"pocket-chip": {
|
|
143
|
+
"--body-background": "#121417",
|
|
144
|
+
"--body-accent-color": "#e0b25a",
|
|
145
|
+
"--body-color-muted": "#9a968d",
|
|
146
|
+
"--card-background-color": "#1a1d22",
|
|
147
|
+
"--header-background-color": "#15171b",
|
|
148
|
+
"--header-border-bottom-color": "rgba(243, 241, 236, 0.08)"
|
|
149
|
+
},
|
|
150
|
+
"readout-highlighter": {
|
|
151
|
+
"--body-background": "#f4f4f1",
|
|
152
|
+
"--body-accent-color": "#24357f",
|
|
153
|
+
"--body-color-muted": "#5d626a",
|
|
154
|
+
"--card-background-color": "#fdfdfb",
|
|
155
|
+
"--header-background-color": "#ffffff",
|
|
156
|
+
"--header-border-bottom-color": "rgba(27, 29, 33, 0.08)"
|
|
157
|
+
},
|
|
158
|
+
"readout-night-reader": {
|
|
159
|
+
"--body-background": "#0f1216",
|
|
160
|
+
"--body-accent-color": "#62cbc3",
|
|
161
|
+
"--body-color-muted": "#939da7",
|
|
162
|
+
"--card-background-color": "#161b21",
|
|
163
|
+
"--header-background-color": "#12161b",
|
|
164
|
+
"--header-border-bottom-color": "rgba(212, 219, 225, 0.08)"
|
|
165
|
+
},
|
|
166
|
+
"recall-calling-card": {
|
|
167
|
+
"--body-background": "#eef0f4",
|
|
168
|
+
"--body-accent-color": "#7a570e",
|
|
169
|
+
"--body-color-muted": "#5a6380",
|
|
170
|
+
"--card-background-color": "#ffffff",
|
|
171
|
+
"--header-background-color": "#ffffff",
|
|
172
|
+
"--header-border-bottom-color": "rgba(20, 27, 46, 0.09)"
|
|
173
|
+
},
|
|
174
|
+
"recall-stage-light": {
|
|
175
|
+
"--body-background": "#0e0f1c",
|
|
176
|
+
"--body-accent-color": "#e8c46a",
|
|
177
|
+
"--body-color-muted": "#a39c90",
|
|
178
|
+
"--card-background-color": "#171828",
|
|
179
|
+
"--header-background-color": "#121322",
|
|
180
|
+
"--header-border-bottom-color": "rgba(246, 241, 230, 0.08)"
|
|
181
|
+
},
|
|
182
|
+
"tasks-legal-pad": {
|
|
183
|
+
"--body-background": "#f7f3dc",
|
|
184
|
+
"--body-accent-color": "#24499a",
|
|
185
|
+
"--body-color-muted": "#525c76",
|
|
186
|
+
"--card-background-color": "#fffef6",
|
|
187
|
+
"--header-background-color": "#ffffff",
|
|
188
|
+
"--header-border-bottom-color": "rgba(24, 33, 58, 0.1)"
|
|
189
|
+
},
|
|
190
|
+
"tasks-deep-work": {
|
|
191
|
+
"--body-background": "#101317",
|
|
192
|
+
"--body-accent-color": "#8fb0ff",
|
|
193
|
+
"--body-color-muted": "#98a1ad",
|
|
194
|
+
"--card-background-color": "#171b21",
|
|
195
|
+
"--header-background-color": "#13161b",
|
|
196
|
+
"--header-border-bottom-color": "rgba(220, 225, 232, 0.08)"
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
export { AUTHORED_LIGHT_THEMES, AUTHORED_PREVIEW_PALETTES, AUTHORED_THEMES, AUTHORED_THEME_CONFIGS };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { applyAuthoredEngine, AUTHORED_ENGINE_VALUE, clearAuthoredEngine, THEME_ENGINE_ATTRIBUTE } from './authoredEngine';
|
|
2
|
+
export { AUTHORED_THEMES } from './authoredThemes';
|
|
3
|
+
export { type PreviewToken } from './previewPalettes';
|
|
4
|
+
export { getThemeAppearance, getThemeConfig, LIGHT_THEMES, previewPalettes, THEME_CONFIGS } from './registry';
|
|
5
|
+
export { FAVORITE_THEMES, type ThemeAppearance, type ThemeConfig } from './themeConfig';
|
|
3
6
|
/** Where the Vite plugin writes each theme's stylesheet, relative to the app's base URL. */
|
|
4
7
|
export declare const THEME_ASSET_DIR = "memobit-themes";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AUTHORED_ENGINE_VALUE, THEME_ENGINE_ATTRIBUTE, applyAuthoredEngine, clearAuthoredEngine } from "./authoredEngine.js";
|
|
2
|
+
import { AUTHORED_THEMES } from "./authoredThemes.js";
|
|
3
|
+
import { FAVORITE_THEMES } from "./themeConfig.js";
|
|
4
|
+
import { LIGHT_THEMES, THEME_CONFIGS, getThemeAppearance, getThemeConfig, previewPalettes } from "./registry.js";
|
|
3
5
|
// src/index.ts
|
|
4
6
|
/** Where the Vite plugin writes each theme's stylesheet, relative to the app's base URL. */
|
|
5
7
|
var THEME_ASSET_DIR = "memobit-themes";
|
|
6
|
-
export { FAVORITE_THEMES, LIGHT_THEMES, THEME_ASSET_DIR, THEME_CONFIGS, getThemeAppearance, getThemeConfig, previewPalettes };
|
|
8
|
+
export { AUTHORED_ENGINE_VALUE, AUTHORED_THEMES, FAVORITE_THEMES, LIGHT_THEMES, THEME_ASSET_DIR, THEME_CONFIGS, THEME_ENGINE_ATTRIBUTE, applyAuthoredEngine, clearAuthoredEngine, getThemeAppearance, getThemeConfig, previewPalettes };
|