@dorsk/tsumikit 0.22.0 → 0.24.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 +151 -8
- package/dist/components/atoms/Button.svelte +121 -12
- package/dist/components/atoms/Button.svelte.d.ts +4 -0
- package/dist/components/atoms/Scrim.svelte +81 -0
- package/dist/components/atoms/Scrim.svelte.d.ts +14 -0
- package/dist/components/layouts/Cluster.svelte +33 -0
- package/dist/components/layouts/Cluster.svelte.d.ts +1 -0
- package/dist/components/layouts/ResizablePanel.svelte +238 -120
- package/dist/components/layouts/ResizablePanel.svelte.d.ts +24 -8
- package/dist/components/layouts/resizable-panel-frame.d.ts +70 -0
- package/dist/components/layouts/resizable-panel-frame.js +161 -0
- package/dist/components/molecules/CopyButton.svelte +11 -2
- package/dist/components/molecules/CopyButton.svelte.d.ts +4 -0
- package/dist/components/molecules/FileButton.svelte +32 -3
- package/dist/components/molecules/FileButton.svelte.d.ts +4 -0
- package/dist/components/molecules/IconButton.svelte +34 -6
- package/dist/components/molecules/IconButton.svelte.d.ts +3 -0
- package/dist/components/molecules/Popover.svelte +32 -2
- package/dist/components/molecules/Popover.svelte.d.ts +5 -0
- package/dist/components/molecules/SelectButton.svelte +6 -1
- package/dist/components/molecules/SelectButton.svelte.d.ts +2 -0
- package/dist/components/molecules/ThemePicker.svelte +11 -13
- package/dist/components/organisms/DataTable.svelte +210 -10
- package/dist/components/organisms/DataTable.svelte.d.ts +27 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/stores/theme.svelte.d.ts +21 -5
- package/dist/stores/theme.svelte.js +48 -22
- package/dist/styles/app.css +7 -297
- package/dist/styles/reset.css +97 -0
- package/dist/styles/syntax.css +94 -0
- package/dist/styles/themes.css +729 -0
- package/dist/styles/tokens.css +207 -0
- package/dist/styles/utilities.css +111 -0
- package/dist/styles/variables.css +5 -915
- package/package.json +7 -2
|
@@ -1,918 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* THEME —
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* font and size used anywhere in the app is a `var(--…)` defined here. No
|
|
6
|
-
* component hard-codes a color or pixel value.
|
|
7
|
-
*
|
|
8
|
-
* Default is dark; `[data-theme="…"]` blocks at the bottom flip palette tokens
|
|
9
|
-
* only (everything downstream is unchanged).
|
|
2
|
+
* THEME — tokens.css (`:root` contract) + themes.css (built-in `[data-theme]`
|
|
3
|
+
* blocks). Kept as one entry point for backwards compatibility; import the two
|
|
4
|
+
* parts directly to ship your own palette without the built-in themes.
|
|
10
5
|
*/
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
scrollbars, the caret, spellcheck underlines) render their dark variant.
|
|
15
|
-
Light themes flip this in their own block. */
|
|
16
|
-
color-scheme: dark;
|
|
17
|
-
|
|
18
|
-
/* ---- Palette (raw) ---- */
|
|
19
|
-
--c-bg: #0f1115;
|
|
20
|
-
--c-bg-elev: #171a21;
|
|
21
|
-
--c-bg-elev-2: #1f232c;
|
|
22
|
-
--c-surface: #21262f;
|
|
23
|
-
--c-border: #2c323d;
|
|
24
|
-
--c-border-strong: #3a414e;
|
|
25
|
-
--c-text: #e6e9ef;
|
|
26
|
-
--c-text-muted: #9aa3b2;
|
|
27
|
-
--c-text-faint: #6b7384;
|
|
28
|
-
|
|
29
|
-
--c-accent: #5ad6a0;
|
|
30
|
-
--c-accent-ink: #04130c;
|
|
31
|
-
--c-accent-dim: #2a6e54;
|
|
32
|
-
|
|
33
|
-
--c-blue: #5aa9ff;
|
|
34
|
-
--c-amber: #f0b454;
|
|
35
|
-
--c-red: #f0716b;
|
|
36
|
-
--c-green: #5ad6a0;
|
|
37
|
-
--c-violet: #b48ef0;
|
|
38
|
-
--c-gold: #f0b454;
|
|
39
|
-
--c-teal: #4fd6cf;
|
|
40
|
-
|
|
41
|
-
/* ---- Role colors (CCT-161) — uniform message theming, all derived from
|
|
42
|
-
palette tokens so each theme adapts. Used for role badges + bubble tints. */
|
|
43
|
-
--role-user: var(--c-green);
|
|
44
|
-
--role-assistant: var(--c-blue);
|
|
45
|
-
--role-system: var(--c-violet);
|
|
46
|
-
--role-tool: var(--c-gold);
|
|
47
|
-
--role-mcp: var(--c-teal);
|
|
48
|
-
/* compact/clear boundary — neutral "paper white" so it reads as structure */
|
|
49
|
-
--role-boundary: var(--c-text-muted);
|
|
50
|
-
|
|
51
|
-
/* ---- Markdown / syntax-highlight tokens (CCT-161) — themeable ---- */
|
|
52
|
-
--md-text: var(--c-text-muted); /* base prose: grayish */
|
|
53
|
-
--md-strong: var(--c-text); /* bold: bright white-ish */
|
|
54
|
-
--md-code: var(--c-blue); /* inline code: bold blue */
|
|
55
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 14%, var(--c-bg));
|
|
56
|
-
--md-heading: var(--c-text);
|
|
57
|
-
--syn-keyword: var(--c-violet);
|
|
58
|
-
--syn-string: var(--c-green);
|
|
59
|
-
--syn-number: var(--c-amber);
|
|
60
|
-
--syn-comment: var(--c-text-faint);
|
|
61
|
-
--syn-function: var(--c-blue);
|
|
62
|
-
--syn-punct: var(--c-text-muted);
|
|
63
|
-
|
|
64
|
-
/* ---- Semantic ---- */
|
|
65
|
-
--bg: var(--c-bg);
|
|
66
|
-
--bg-elevated: var(--c-bg-elev);
|
|
67
|
-
--bg-elevated-2: var(--c-bg-elev-2);
|
|
68
|
-
--surface: var(--c-surface);
|
|
69
|
-
--border: var(--c-border);
|
|
70
|
-
--border-strong: var(--c-border-strong);
|
|
71
|
-
|
|
72
|
-
--text: var(--c-text);
|
|
73
|
-
--text-muted: var(--c-text-muted);
|
|
74
|
-
--text-faint: var(--c-text-faint);
|
|
75
|
-
--text-on-accent: var(--c-accent-ink);
|
|
76
|
-
/* Adaptive ink for filled positive actions: dark canvas ink on bright greens,
|
|
77
|
-
light canvas ink on the darker greens used by light themes. */
|
|
78
|
-
--text-on-success: var(--bg);
|
|
79
|
-
|
|
80
|
-
--accent: var(--c-accent);
|
|
81
|
-
--accent-dim: var(--c-accent-dim);
|
|
82
|
-
--link: var(--c-blue);
|
|
83
|
-
|
|
84
|
-
--ok: var(--c-green);
|
|
85
|
-
--warn: var(--c-amber);
|
|
86
|
-
--danger: var(--c-red);
|
|
87
|
-
--info: var(--c-blue);
|
|
88
|
-
|
|
89
|
-
/* status dots */
|
|
90
|
-
--dot-active: var(--c-green);
|
|
91
|
-
--dot-stale: var(--c-amber);
|
|
92
|
-
--dot-dead: var(--c-text-faint);
|
|
93
|
-
--dot-hibernated: var(--c-red);
|
|
94
|
-
|
|
95
|
-
/* attention highlight (needs-input row) */
|
|
96
|
-
--attention-bg: color-mix(in srgb, var(--c-amber) 12%, transparent);
|
|
97
|
-
--attention-bar: var(--c-amber);
|
|
98
|
-
|
|
99
|
-
/* machine-badge tinting (CCT-271, fixed CCT-272) — the hue is per-machine
|
|
100
|
-
(name hash or operator override, --mh, set on the badge element), but the
|
|
101
|
-
saturation/lightness come from the theme as `<sat%> <light%>` PAIRS. The
|
|
102
|
-
badge composes `hsl(var(--mh) var(--mach-*-sl))` itself, so both vars
|
|
103
|
-
resolve on the element where --mh lives. (Composing the full hsl() here at
|
|
104
|
-
:root would break: --mh is undefined at :root, so the token is invalid and
|
|
105
|
-
inherits down invalid → white badges.) Dark themes default here; light
|
|
106
|
-
themes flip to dark-text-on-pale-tint in their [data-theme] block. */
|
|
107
|
-
--mach-bg-sl: 45% 22%;
|
|
108
|
-
--mach-fg-sl: 70% 80%;
|
|
109
|
-
--mach-border-sl: 45% 35%;
|
|
110
|
-
|
|
111
|
-
/* ---- Typography ---- */
|
|
112
|
-
--font-sans:
|
|
113
|
-
ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
|
|
114
|
-
"Helvetica Neue", Arial, sans-serif;
|
|
115
|
-
--font-mono:
|
|
116
|
-
ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas,
|
|
117
|
-
monospace;
|
|
118
|
-
|
|
119
|
-
/* Text-scale factor (CCT-305). The UI font control multiplies ONLY the
|
|
120
|
-
font-size tokens by this — not the root font-size — so bumping the size up
|
|
121
|
-
enlarges text (chat, session text, badges, labels) meaningfully while the
|
|
122
|
-
chrome (button heights, padding, spacing, the px-pinned header) stays put.
|
|
123
|
-
Previously the control scaled the document root font-size, which grew every
|
|
124
|
-
rem-based chrome dimension in lockstep so text "barely grew" relative to the
|
|
125
|
-
ballooning UI. Default 1 = no scaling. */
|
|
126
|
-
--fs-scale: 1;
|
|
127
|
-
|
|
128
|
-
--fs-xs: calc(0.75rem * var(--fs-scale)); /* 12 */
|
|
129
|
-
--fs-sm: calc(0.8125rem * var(--fs-scale)); /* 13 */
|
|
130
|
-
--fs-base: calc(0.9375rem * var(--fs-scale)); /* 15 */
|
|
131
|
-
--fs-md: calc(1rem * var(--fs-scale)); /* 16 */
|
|
132
|
-
--fs-lg: calc(1.125rem * var(--fs-scale)); /* 18 */
|
|
133
|
-
--fs-xl: calc(1.375rem * var(--fs-scale)); /* 22 */
|
|
134
|
-
--fs-2xl: calc(1.75rem * var(--fs-scale)); /* 28 */
|
|
135
|
-
|
|
136
|
-
--fw-normal: 400;
|
|
137
|
-
--fw-medium: 500;
|
|
138
|
-
--fw-semibold: 600;
|
|
139
|
-
--fw-bold: 700;
|
|
140
|
-
|
|
141
|
-
--lh-tight: 1.25;
|
|
142
|
-
--lh-normal: 1.5;
|
|
143
|
-
|
|
144
|
-
/* ---- Spacing (4px base) ---- */
|
|
145
|
-
--sp-0: 0;
|
|
146
|
-
--sp-1: 0.25rem;
|
|
147
|
-
--sp-2: 0.5rem;
|
|
148
|
-
--sp-3: 0.75rem;
|
|
149
|
-
--sp-4: 1rem;
|
|
150
|
-
--sp-5: 1.25rem;
|
|
151
|
-
--sp-6: 1.5rem;
|
|
152
|
-
--sp-8: 2rem;
|
|
153
|
-
--sp-10: 2.5rem;
|
|
154
|
-
--sp-12: 3rem;
|
|
155
|
-
|
|
156
|
-
/* ---- Radii ---- */
|
|
157
|
-
--r-sm: 6px;
|
|
158
|
-
--r-md: 10px;
|
|
159
|
-
--r-lg: 14px;
|
|
160
|
-
--r-pill: 999px;
|
|
161
|
-
|
|
162
|
-
/* ---- Elevation ---- */
|
|
163
|
-
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
|
|
164
|
-
--shadow-md: 0 6px 20px rgba(0, 0, 0, 0.45);
|
|
165
|
-
--shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.55);
|
|
166
|
-
|
|
167
|
-
/* ---- Controls ----
|
|
168
|
-
`size="sm"` is the compact toolbar contract shared by Button, Popover and
|
|
169
|
-
SegmentedControl. `control` is the roomier uniform-height contract used by
|
|
170
|
-
Button and other composer controls. Both remain rem-based for zoom. */
|
|
171
|
-
--control-height-compact: 2rem;
|
|
172
|
-
--control-height-default: 2.5rem;
|
|
173
|
-
--control-height-large: 3rem;
|
|
174
|
-
--control-height: 2.75rem;
|
|
175
|
-
|
|
176
|
-
/* ---- Layout ---- */
|
|
177
|
-
/* Fixed (px, not rem): the header is chrome that must NOT scale with the
|
|
178
|
-
UI font slider it hosts (CCT-264) — a rem header-h would grow under the
|
|
179
|
-
slider and reflow it mid-drag. Pinning here keeps the bar height, the
|
|
180
|
-
content clearance, and the sticky offsets that key off it all consistent
|
|
181
|
-
with the fixed toolbar. */
|
|
182
|
-
--header-h: 52px;
|
|
183
|
-
--nav-h: 3.5rem;
|
|
184
|
-
--content-max: 56rem;
|
|
185
|
-
--z-header: 50;
|
|
186
|
-
--z-nav: 50;
|
|
187
|
-
--z-drawer: 100;
|
|
188
|
-
--z-modal: 200;
|
|
189
|
-
--z-toast: 300;
|
|
190
|
-
|
|
191
|
-
/* safe-area insets (phones with notch / gesture bar / bottom address bar) */
|
|
192
|
-
--safe-top: env(safe-area-inset-top, 0px);
|
|
193
|
-
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
194
|
-
--safe-left: env(safe-area-inset-left, 0px);
|
|
195
|
-
--safe-right: env(safe-area-inset-right, 0px);
|
|
196
|
-
|
|
197
|
-
--ease: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
[data-theme="light"] {
|
|
201
|
-
color-scheme: light;
|
|
202
|
-
--c-bg: #f6f7f9;
|
|
203
|
-
--c-bg-elev: #ffffff;
|
|
204
|
-
--c-bg-elev-2: #eef0f3;
|
|
205
|
-
--c-surface: #ffffff;
|
|
206
|
-
--c-border: #d9dde3;
|
|
207
|
-
--c-border-strong: #c2c8d1;
|
|
208
|
-
--c-text: #1a1d23;
|
|
209
|
-
--c-text-muted: #5b6472;
|
|
210
|
-
--c-text-faint: #8a93a3;
|
|
211
|
-
--c-accent: #1f9d6b;
|
|
212
|
-
--c-accent-ink: #ffffff;
|
|
213
|
-
--c-accent-dim: #9bd9c2;
|
|
214
|
-
--c-blue: #2f7ddb;
|
|
215
|
-
--c-amber: #c98a1d;
|
|
216
|
-
--c-red: #d6463f;
|
|
217
|
-
--c-green: #1f9d6b;
|
|
218
|
-
--c-violet: #7c3aed;
|
|
219
|
-
--c-gold: #c98a1d;
|
|
220
|
-
--c-teal: #0d9488;
|
|
221
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
222
|
-
--shadow-sm: 0 1px 2px rgba(20, 24, 31, 0.08);
|
|
223
|
-
--shadow-md: 0 6px 20px rgba(20, 24, 31, 0.12);
|
|
224
|
-
--shadow-lg: 0 12px 40px rgba(20, 24, 31, 0.18);
|
|
225
|
-
/* light bg → pale tint + dark ink so badges stay legible */
|
|
226
|
-
--mach-bg-sl: 60% 90%;
|
|
227
|
-
--mach-fg-sl: 55% 30%;
|
|
228
|
-
--mach-border-sl: 45% 72%;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/* ---- Sepia / "Claude paper" theme (CCT-161 item 3) — warm cream paper,
|
|
232
|
-
brown ink, solarized-ish accents. Same variable contract as light/dark. */
|
|
233
|
-
[data-theme="sepia"] {
|
|
234
|
-
color-scheme: light;
|
|
235
|
-
--c-bg: #f4ecd8;
|
|
236
|
-
--c-bg-elev: #faf3e3;
|
|
237
|
-
--c-bg-elev-2: #ece1c6;
|
|
238
|
-
--c-surface: #faf3e3;
|
|
239
|
-
--c-border: #ddccab;
|
|
240
|
-
--c-border-strong: #c8b48c;
|
|
241
|
-
--c-text: #3b2f1e;
|
|
242
|
-
--c-text-muted: #6f5d42;
|
|
243
|
-
--c-text-faint: #9a8868;
|
|
244
|
-
--c-accent: #5a8250;
|
|
245
|
-
--c-accent-ink: #faf3e3;
|
|
246
|
-
--c-accent-dim: #aec79f;
|
|
247
|
-
--c-blue: #2c6f9b;
|
|
248
|
-
--c-amber: #b07a18;
|
|
249
|
-
--c-red: #b5403a;
|
|
250
|
-
--c-green: #5a8250;
|
|
251
|
-
--c-violet: #8a5fa8;
|
|
252
|
-
--c-gold: #a87d1f;
|
|
253
|
-
--c-teal: #2a8f86;
|
|
254
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 14%, var(--c-bg));
|
|
255
|
-
--shadow-sm: 0 1px 2px rgba(80, 60, 30, 0.1);
|
|
256
|
-
--shadow-md: 0 6px 20px rgba(80, 60, 30, 0.14);
|
|
257
|
-
--shadow-lg: 0 12px 40px rgba(80, 60, 30, 0.2);
|
|
258
|
-
/* warm, slightly desaturated tint to sit with the cream paper */
|
|
259
|
-
--mach-bg-sl: 40% 84%;
|
|
260
|
-
--mach-fg-sl: 45% 32%;
|
|
261
|
-
--mach-border-sl: 35% 66%;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/* ---- Catppuccin Mocha - official Mocha base/surface/text/accent colors. */
|
|
265
|
-
[data-theme="mocha"] {
|
|
266
|
-
--c-bg: #1e1e2e;
|
|
267
|
-
--c-bg-elev: #242438;
|
|
268
|
-
--c-bg-elev-2: #313244;
|
|
269
|
-
--c-surface: #313244;
|
|
270
|
-
--c-border: #45475a;
|
|
271
|
-
--c-border-strong: #585b70;
|
|
272
|
-
--c-text: #cdd6f4;
|
|
273
|
-
--c-text-muted: #bac2de;
|
|
274
|
-
--c-text-faint: #7f849c;
|
|
275
|
-
--c-accent: #cba6f7;
|
|
276
|
-
--c-accent-ink: #1e1e2e;
|
|
277
|
-
--c-accent-dim: #6c7086;
|
|
278
|
-
--c-blue: #89b4fa;
|
|
279
|
-
--c-amber: #f9e2af;
|
|
280
|
-
--c-red: #f38ba8;
|
|
281
|
-
--c-green: #a6e3a1;
|
|
282
|
-
--c-violet: #cba6f7;
|
|
283
|
-
--c-gold: #f9e2af;
|
|
284
|
-
--c-teal: #94e2d5;
|
|
285
|
-
--shadow-sm: 0 1px 2px rgba(17, 17, 27, 0.36);
|
|
286
|
-
--shadow-md: 0 6px 20px rgba(17, 17, 27, 0.42);
|
|
287
|
-
--shadow-lg: 0 12px 40px rgba(17, 17, 27, 0.5);
|
|
288
|
-
/* soft pastel tint to match Catppuccin's low-saturation palette */
|
|
289
|
-
--mach-bg-sl: 35% 26%;
|
|
290
|
-
--mach-fg-sl: 55% 82%;
|
|
291
|
-
--mach-border-sl: 35% 40%;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/* ---- Dracula - official palette colors with UI contrast assignments. */
|
|
295
|
-
[data-theme="dracula"] {
|
|
296
|
-
--c-bg: #282a36;
|
|
297
|
-
--c-bg-elev: #343746;
|
|
298
|
-
--c-bg-elev-2: #44475a;
|
|
299
|
-
--c-surface: #343746;
|
|
300
|
-
--c-border: #44475a;
|
|
301
|
-
--c-border-strong: #6272a4;
|
|
302
|
-
--c-text: #f8f8f2;
|
|
303
|
-
--c-text-muted: #c7c9d1;
|
|
304
|
-
--c-text-faint: #6272a4;
|
|
305
|
-
--c-accent: #bd93f9;
|
|
306
|
-
--c-accent-ink: #1d1726;
|
|
307
|
-
--c-accent-dim: #6f558f;
|
|
308
|
-
--c-blue: #8be9fd;
|
|
309
|
-
--c-amber: #ffb86c;
|
|
310
|
-
--c-red: #ff5555;
|
|
311
|
-
--c-green: #50fa7b;
|
|
312
|
-
--c-violet: #bd93f9;
|
|
313
|
-
--c-gold: #f1fa8c;
|
|
314
|
-
--c-teal: #8be9fd;
|
|
315
|
-
--shadow-sm: 0 1px 2px rgba(20, 21, 27, 0.36);
|
|
316
|
-
--shadow-md: 0 6px 20px rgba(20, 21, 27, 0.44);
|
|
317
|
-
--shadow-lg: 0 12px 40px rgba(20, 21, 27, 0.52);
|
|
318
|
-
/* vivid, high-chroma to echo Dracula's neon accents */
|
|
319
|
-
--mach-bg-sl: 55% 24%;
|
|
320
|
-
--mach-fg-sl: 85% 82%;
|
|
321
|
-
--mach-border-sl: 55% 40%;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/* ---- Nord - Polar Night, Snow Storm, Frost, and Aurora palette tokens. */
|
|
325
|
-
[data-theme="nord"] {
|
|
326
|
-
--c-bg: #2e3440;
|
|
327
|
-
--c-bg-elev: #3b4252;
|
|
328
|
-
--c-bg-elev-2: #434c5e;
|
|
329
|
-
--c-surface: #3b4252;
|
|
330
|
-
--c-border: #4c566a;
|
|
331
|
-
--c-border-strong: #5e81ac;
|
|
332
|
-
--c-text: #eceff4;
|
|
333
|
-
--c-text-muted: #d8dee9;
|
|
334
|
-
--c-text-faint: #8fbcbb;
|
|
335
|
-
--c-accent: #88c0d0;
|
|
336
|
-
--c-accent-ink: #1f242d;
|
|
337
|
-
--c-accent-dim: #5e81ac;
|
|
338
|
-
--c-blue: #81a1c1;
|
|
339
|
-
--c-amber: #ebcb8b;
|
|
340
|
-
--c-red: #bf616a;
|
|
341
|
-
--c-green: #a3be8c;
|
|
342
|
-
--c-violet: #b48ead;
|
|
343
|
-
--c-gold: #ebcb8b;
|
|
344
|
-
--c-teal: #8fbcbb;
|
|
345
|
-
--shadow-sm: 0 1px 2px rgba(20, 25, 34, 0.34);
|
|
346
|
-
--shadow-md: 0 6px 20px rgba(20, 25, 34, 0.42);
|
|
347
|
-
--shadow-lg: 0 12px 40px rgba(20, 25, 34, 0.5);
|
|
348
|
-
/* muted, frost-cool tint in keeping with Nord's restrained palette */
|
|
349
|
-
--mach-bg-sl: 28% 30%;
|
|
350
|
-
--mach-fg-sl: 40% 84%;
|
|
351
|
-
--mach-border-sl: 28% 44%;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/* ---- Tokyo Night — deep blue/indigo base with purple + cyan accents. */
|
|
355
|
-
[data-theme="tokyonight"] {
|
|
356
|
-
--c-bg: #1a1b26;
|
|
357
|
-
--c-bg-elev: #1f2233;
|
|
358
|
-
--c-bg-elev-2: #24283b;
|
|
359
|
-
--c-surface: #1f2233;
|
|
360
|
-
--c-border: #2f344d;
|
|
361
|
-
--c-border-strong: #414868;
|
|
362
|
-
--c-text: #c0caf5;
|
|
363
|
-
--c-text-muted: #9aa5ce;
|
|
364
|
-
--c-text-faint: #565f89;
|
|
365
|
-
--c-accent: #7aa2f7;
|
|
366
|
-
--c-accent-ink: #11121d;
|
|
367
|
-
--c-accent-dim: #3d59a1;
|
|
368
|
-
--c-blue: #7aa2f7;
|
|
369
|
-
--c-amber: #e0af68;
|
|
370
|
-
--c-red: #f7768e;
|
|
371
|
-
--c-green: #9ece6a;
|
|
372
|
-
--c-violet: #bb9af7;
|
|
373
|
-
--c-gold: #e0af68;
|
|
374
|
-
--c-teal: #7dcfff;
|
|
375
|
-
--shadow-sm: 0 1px 2px rgba(13, 14, 22, 0.4);
|
|
376
|
-
--shadow-md: 0 6px 20px rgba(13, 14, 22, 0.48);
|
|
377
|
-
--shadow-lg: 0 12px 40px rgba(13, 14, 22, 0.56);
|
|
378
|
-
--mach-bg-sl: 48% 23%;
|
|
379
|
-
--mach-fg-sl: 75% 82%;
|
|
380
|
-
--mach-border-sl: 48% 38%;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/* ---- Gruvbox (dark, medium) — warm retro browns with orange/green accents. */
|
|
384
|
-
[data-theme="gruvbox"] {
|
|
385
|
-
--c-bg: #282828;
|
|
386
|
-
--c-bg-elev: #32302f;
|
|
387
|
-
--c-bg-elev-2: #3c3836;
|
|
388
|
-
--c-surface: #32302f;
|
|
389
|
-
--c-border: #504945;
|
|
390
|
-
--c-border-strong: #665c54;
|
|
391
|
-
--c-text: #ebdbb2;
|
|
392
|
-
--c-text-muted: #d5c4a1;
|
|
393
|
-
--c-text-faint: #a89984;
|
|
394
|
-
--c-accent: #fe8019;
|
|
395
|
-
--c-accent-ink: #1d1a14;
|
|
396
|
-
--c-accent-dim: #af3a03;
|
|
397
|
-
--c-blue: #83a598;
|
|
398
|
-
--c-amber: #fabd2f;
|
|
399
|
-
--c-red: #fb4934;
|
|
400
|
-
--c-green: #b8bb26;
|
|
401
|
-
--c-violet: #d3869b;
|
|
402
|
-
--c-gold: #fabd2f;
|
|
403
|
-
--c-teal: #8ec07c;
|
|
404
|
-
--shadow-sm: 0 1px 2px rgba(20, 19, 17, 0.4);
|
|
405
|
-
--shadow-md: 0 6px 20px rgba(20, 19, 17, 0.48);
|
|
406
|
-
--shadow-lg: 0 12px 40px rgba(20, 19, 17, 0.56);
|
|
407
|
-
--mach-bg-sl: 42% 25%;
|
|
408
|
-
--mach-fg-sl: 60% 80%;
|
|
409
|
-
--mach-border-sl: 42% 40%;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/* ---- Solarized Dark — Ethan Schoonover's base03 with the 16-color accents. */
|
|
413
|
-
[data-theme="solarized"] {
|
|
414
|
-
--c-bg: #002b36;
|
|
415
|
-
--c-bg-elev: #073642;
|
|
416
|
-
--c-bg-elev-2: #0a4350;
|
|
417
|
-
--c-surface: #073642;
|
|
418
|
-
--c-border: #0f4d5c;
|
|
419
|
-
--c-border-strong: #586e75;
|
|
420
|
-
--c-text: #eee8d5;
|
|
421
|
-
--c-text-muted: #93a1a1;
|
|
422
|
-
--c-text-faint: #657b83;
|
|
423
|
-
--c-accent: #2aa198;
|
|
424
|
-
--c-accent-ink: #002b36;
|
|
425
|
-
--c-accent-dim: #1a6b66;
|
|
426
|
-
--c-blue: #268bd2;
|
|
427
|
-
--c-amber: #b58900;
|
|
428
|
-
--c-red: #dc322f;
|
|
429
|
-
--c-green: #859900;
|
|
430
|
-
--c-violet: #6c71c4;
|
|
431
|
-
--c-gold: #b58900;
|
|
432
|
-
--c-teal: #2aa198;
|
|
433
|
-
--shadow-sm: 0 1px 2px rgba(0, 17, 22, 0.42);
|
|
434
|
-
--shadow-md: 0 6px 20px rgba(0, 17, 22, 0.5);
|
|
435
|
-
--shadow-lg: 0 12px 40px rgba(0, 17, 22, 0.58);
|
|
436
|
-
--mach-bg-sl: 50% 20%;
|
|
437
|
-
--mach-fg-sl: 55% 78%;
|
|
438
|
-
--mach-border-sl: 50% 34%;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
/* ---- Rosé Pine — soho-vibe with muted rose, iris (purple) and pine. */
|
|
442
|
-
[data-theme="rosepine"] {
|
|
443
|
-
--c-bg: #191724;
|
|
444
|
-
--c-bg-elev: #1f1d2e;
|
|
445
|
-
--c-bg-elev-2: #26233a;
|
|
446
|
-
--c-surface: #1f1d2e;
|
|
447
|
-
--c-border: #2a2839;
|
|
448
|
-
--c-border-strong: #403d52;
|
|
449
|
-
--c-text: #e0def4;
|
|
450
|
-
--c-text-muted: #908caa;
|
|
451
|
-
--c-text-faint: #6e6a86;
|
|
452
|
-
--c-accent: #c4a7e7;
|
|
453
|
-
--c-accent-ink: #14121d;
|
|
454
|
-
--c-accent-dim: #6c5d8a;
|
|
455
|
-
--c-blue: #9ccfd8;
|
|
456
|
-
--c-amber: #f6c177;
|
|
457
|
-
--c-red: #eb6f92;
|
|
458
|
-
--c-green: #3e8fb0;
|
|
459
|
-
--c-violet: #c4a7e7;
|
|
460
|
-
--c-gold: #f6c177;
|
|
461
|
-
--c-teal: #9ccfd8;
|
|
462
|
-
--shadow-sm: 0 1px 2px rgba(13, 12, 20, 0.42);
|
|
463
|
-
--shadow-md: 0 6px 20px rgba(13, 12, 20, 0.5);
|
|
464
|
-
--shadow-lg: 0 12px 40px rgba(13, 12, 20, 0.58);
|
|
465
|
-
--mach-bg-sl: 38% 26%;
|
|
466
|
-
--mach-fg-sl: 58% 84%;
|
|
467
|
-
--mach-border-sl: 38% 42%;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
/* ---- One Dark — Atom's classic palette, blue-leaning with warm accents. */
|
|
471
|
-
[data-theme="onedark"] {
|
|
472
|
-
--c-bg: #282c34;
|
|
473
|
-
--c-bg-elev: #2f343f;
|
|
474
|
-
--c-bg-elev-2: #353b45;
|
|
475
|
-
--c-surface: #2f343f;
|
|
476
|
-
--c-border: #3e4451;
|
|
477
|
-
--c-border-strong: #4b5263;
|
|
478
|
-
--c-text: #abb2bf;
|
|
479
|
-
--c-text-muted: #9da5b4;
|
|
480
|
-
--c-text-faint: #5c6370;
|
|
481
|
-
--c-accent: #61afef;
|
|
482
|
-
--c-accent-ink: #11151c;
|
|
483
|
-
--c-accent-dim: #2c6da3;
|
|
484
|
-
--c-blue: #61afef;
|
|
485
|
-
--c-amber: #e5c07b;
|
|
486
|
-
--c-red: #e06c75;
|
|
487
|
-
--c-green: #98c379;
|
|
488
|
-
--c-violet: #c678dd;
|
|
489
|
-
--c-gold: #e5c07b;
|
|
490
|
-
--c-teal: #56b6c2;
|
|
491
|
-
--shadow-sm: 0 1px 2px rgba(17, 19, 25, 0.4);
|
|
492
|
-
--shadow-md: 0 6px 20px rgba(17, 19, 25, 0.48);
|
|
493
|
-
--shadow-lg: 0 12px 40px rgba(17, 19, 25, 0.56);
|
|
494
|
-
--mach-bg-sl: 40% 26%;
|
|
495
|
-
--mach-fg-sl: 65% 80%;
|
|
496
|
-
--mach-border-sl: 40% 40%;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
/* ---- Everforest (dark, medium) — soft green forest base, low-contrast. */
|
|
500
|
-
[data-theme="everforest"] {
|
|
501
|
-
--c-bg: #2d353b;
|
|
502
|
-
--c-bg-elev: #343f44;
|
|
503
|
-
--c-bg-elev-2: #3d484d;
|
|
504
|
-
--c-surface: #343f44;
|
|
505
|
-
--c-border: #475258;
|
|
506
|
-
--c-border-strong: #4f585e;
|
|
507
|
-
--c-text: #d3c6aa;
|
|
508
|
-
--c-text-muted: #a7b0a3;
|
|
509
|
-
--c-text-faint: #859289;
|
|
510
|
-
--c-accent: #a7c080;
|
|
511
|
-
--c-accent-ink: #1c2226;
|
|
512
|
-
--c-accent-dim: #5c6f49;
|
|
513
|
-
--c-blue: #7fbbb3;
|
|
514
|
-
--c-amber: #dbbc7f;
|
|
515
|
-
--c-red: #e67e80;
|
|
516
|
-
--c-green: #a7c080;
|
|
517
|
-
--c-violet: #d699b6;
|
|
518
|
-
--c-gold: #dbbc7f;
|
|
519
|
-
--c-teal: #83c092;
|
|
520
|
-
--shadow-sm: 0 1px 2px rgba(22, 27, 30, 0.4);
|
|
521
|
-
--shadow-md: 0 6px 20px rgba(22, 27, 30, 0.48);
|
|
522
|
-
--shadow-lg: 0 12px 40px rgba(22, 27, 30, 0.56);
|
|
523
|
-
--mach-bg-sl: 30% 28%;
|
|
524
|
-
--mach-fg-sl: 45% 80%;
|
|
525
|
-
--mach-border-sl: 30% 42%;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
/* ---- Monokai — the vivid classic: lime, magenta, orange and cyan on slate. */
|
|
529
|
-
[data-theme="monokai"] {
|
|
530
|
-
--c-bg: #272822;
|
|
531
|
-
--c-bg-elev: #2f302a;
|
|
532
|
-
--c-bg-elev-2: #383830;
|
|
533
|
-
--c-surface: #2f302a;
|
|
534
|
-
--c-border: #49483e;
|
|
535
|
-
--c-border-strong: #5b5a4e;
|
|
536
|
-
--c-text: #f8f8f2;
|
|
537
|
-
--c-text-muted: #cfcfc2;
|
|
538
|
-
--c-text-faint: #75715e;
|
|
539
|
-
--c-accent: #a6e22e;
|
|
540
|
-
--c-accent-ink: #14160f;
|
|
541
|
-
--c-accent-dim: #5f7d18;
|
|
542
|
-
--c-blue: #66d9ef;
|
|
543
|
-
--c-amber: #fd971f;
|
|
544
|
-
--c-red: #f92672;
|
|
545
|
-
--c-green: #a6e22e;
|
|
546
|
-
--c-violet: #ae81ff;
|
|
547
|
-
--c-gold: #e6db74;
|
|
548
|
-
--c-teal: #66d9ef;
|
|
549
|
-
--shadow-sm: 0 1px 2px rgba(18, 19, 14, 0.42);
|
|
550
|
-
--shadow-md: 0 6px 20px rgba(18, 19, 14, 0.5);
|
|
551
|
-
--shadow-lg: 0 12px 40px rgba(18, 19, 14, 0.58);
|
|
552
|
-
--mach-bg-sl: 55% 22%;
|
|
553
|
-
--mach-fg-sl: 80% 80%;
|
|
554
|
-
--mach-border-sl: 55% 38%;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
/* ---- AMOLED (CCT-309) — pure-black background, high-contrast white text for
|
|
558
|
-
maximum contrast / OLED power saving. Elevated surfaces step up in tiny
|
|
559
|
-
increments off true black (so cards/popovers/composer/code blocks stay
|
|
560
|
-
distinguishable without diluting the black page), borders are bright enough
|
|
561
|
-
to read as crisp dividers, and accents are vivid for legibility on black. */
|
|
562
|
-
[data-theme="amoled"] {
|
|
563
|
-
--c-bg: #000000;
|
|
564
|
-
--c-bg-elev: #0a0a0a;
|
|
565
|
-
--c-bg-elev-2: #141414;
|
|
566
|
-
--c-surface: #0d0d0d;
|
|
567
|
-
--c-border: #787878;
|
|
568
|
-
--c-border-strong: #c8c8c8;
|
|
569
|
-
--c-text: #ffffff;
|
|
570
|
-
--c-text-muted: #c8c8c8;
|
|
571
|
-
--c-text-faint: #8e8e8e;
|
|
572
|
-
--c-accent: #34e89e;
|
|
573
|
-
--c-accent-ink: #000000;
|
|
574
|
-
--c-accent-dim: #1f8f62;
|
|
575
|
-
--c-blue: #4db5ff;
|
|
576
|
-
--c-amber: #ffc24b;
|
|
577
|
-
--c-red: #ff6b6b;
|
|
578
|
-
--c-green: #34e89e;
|
|
579
|
-
--c-violet: #c79bff;
|
|
580
|
-
--c-gold: #ffc24b;
|
|
581
|
-
--c-teal: #45e0d8;
|
|
582
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 18%, #000000);
|
|
583
|
-
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.8);
|
|
584
|
-
--shadow-md: 0 6px 20px rgba(0, 0, 0, 0.85);
|
|
585
|
-
--shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.9);
|
|
586
|
-
/* high-chroma tint to read sharply against pure black */
|
|
587
|
-
--mach-bg-sl: 60% 18%;
|
|
588
|
-
--mach-fg-sl: 90% 84%;
|
|
589
|
-
--mach-border-sl: 60% 42%;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
/* ---- High Contrast Light (CCT-309) — pure-white background, near-black text.
|
|
593
|
-
The light-mode counterpart to AMOLED: maximum contrast for bright
|
|
594
|
-
environments. Strong borders and dark, saturated accents keep every surface
|
|
595
|
-
legible on white. */
|
|
596
|
-
[data-theme="highcontrast"] {
|
|
597
|
-
color-scheme: light;
|
|
598
|
-
--c-bg: #ffffff;
|
|
599
|
-
--c-bg-elev: #ffffff;
|
|
600
|
-
--c-bg-elev-2: #f0f0f0;
|
|
601
|
-
--c-surface: #ffffff;
|
|
602
|
-
--c-border: #b0b0b0;
|
|
603
|
-
--c-border-strong: #707070;
|
|
604
|
-
--c-text: #000000;
|
|
605
|
-
--c-text-muted: #2e2e2e;
|
|
606
|
-
--c-text-faint: #555555;
|
|
607
|
-
--c-accent: #0a7d4f;
|
|
608
|
-
--c-accent-ink: #ffffff;
|
|
609
|
-
--c-accent-dim: #6fbf9a;
|
|
610
|
-
--c-blue: #0b5fc4;
|
|
611
|
-
--c-amber: #9a6500;
|
|
612
|
-
--c-red: #c4150c;
|
|
613
|
-
--c-green: #0a7d4f;
|
|
614
|
-
--c-violet: #6d28d9;
|
|
615
|
-
--c-gold: #9a6500;
|
|
616
|
-
--c-teal: #0a7d7d;
|
|
617
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 10%, #ffffff);
|
|
618
|
-
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.18);
|
|
619
|
-
--shadow-md: 0 6px 20px rgba(0, 0, 0, 0.22);
|
|
620
|
-
--shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.28);
|
|
621
|
-
/* pale tint + dark ink so badges stay legible on white */
|
|
622
|
-
--mach-bg-sl: 65% 88%;
|
|
623
|
-
--mach-fg-sl: 60% 26%;
|
|
624
|
-
--mach-border-sl: 50% 64%;
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
/* ---- Color-blind safe (Okabe-Ito) — the recognized qualitative palette that
|
|
628
|
-
stays distinguishable across protanopia, deuteranopia and tritanopia. Status
|
|
629
|
-
colors are mapped so ok/warn/danger/info never collide for any common CVD:
|
|
630
|
-
ok = bluish-green, warn = orange, danger = vermillion, info = sky-blue,
|
|
631
|
-
accent = blue. Pair with the text labels / icons the components already carry
|
|
632
|
-
so meaning is never conveyed by hue alone. Dark base for low glare. */
|
|
633
|
-
[data-theme="colorblind"] {
|
|
634
|
-
--c-bg: #16181d;
|
|
635
|
-
--c-bg-elev: #1d2027;
|
|
636
|
-
--c-bg-elev-2: #262a33;
|
|
637
|
-
--c-surface: #1d2027;
|
|
638
|
-
--c-border: #353a44;
|
|
639
|
-
--c-border-strong: #4a505c;
|
|
640
|
-
--c-text: #f2f4f8;
|
|
641
|
-
--c-text-muted: #b6bdc9;
|
|
642
|
-
--c-text-faint: #828b99;
|
|
643
|
-
--c-accent: #56b4e9; /* sky blue — distinct from the green "ok" */
|
|
644
|
-
--c-accent-ink: #06131c;
|
|
645
|
-
--c-accent-dim: #2c6f93;
|
|
646
|
-
--c-blue: #56b4e9; /* sky blue */
|
|
647
|
-
--c-amber: #e69f00; /* orange */
|
|
648
|
-
--c-red: #d55e00; /* vermillion */
|
|
649
|
-
--c-green: #009e73; /* bluish green */
|
|
650
|
-
--c-violet: #cc79a7; /* reddish purple */
|
|
651
|
-
--c-gold: #f0e442; /* yellow */
|
|
652
|
-
--c-teal: #009e73;
|
|
653
|
-
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.45);
|
|
654
|
-
--shadow-md: 0 6px 20px rgba(0, 0, 0, 0.5);
|
|
655
|
-
--shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.6);
|
|
656
|
-
--mach-bg-sl: 45% 24%;
|
|
657
|
-
--mach-fg-sl: 70% 82%;
|
|
658
|
-
--mach-border-sl: 45% 40%;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
/* ===================================================================
|
|
662
|
-
Medium-light tier (TSU-1) — light but not blinding. Cream/paper or
|
|
663
|
-
soft-tinted backgrounds (never pure white) with dark, saturated
|
|
664
|
-
accents so body text clears WCAG AA. Each ports a famous palette in a
|
|
665
|
-
distinct color base. They share the light-theme contract: color-scheme
|
|
666
|
-
light, soft shadows, pale-tint/dark-ink machine badges.
|
|
667
|
-
=================================================================== */
|
|
668
|
-
|
|
669
|
-
/* ---- Gruvbox Light (medium) — warm wood/cream, faded orange accent. */
|
|
670
|
-
[data-theme="gruvboxlight"] {
|
|
671
|
-
color-scheme: light;
|
|
672
|
-
--c-bg: #fbf1c7;
|
|
673
|
-
--c-bg-elev: #f9f5d7;
|
|
674
|
-
--c-bg-elev-2: #ebdbb2;
|
|
675
|
-
--c-surface: #f9f5d7;
|
|
676
|
-
--c-border: #d5c4a1;
|
|
677
|
-
--c-border-strong: #bdae93;
|
|
678
|
-
--c-text: #3c3836;
|
|
679
|
-
--c-text-muted: #504945;
|
|
680
|
-
--c-text-faint: #7c6f64;
|
|
681
|
-
--c-accent: #af3a03;
|
|
682
|
-
--c-accent-ink: #fbf1c7;
|
|
683
|
-
--c-accent-dim: #d65d0e;
|
|
684
|
-
--c-blue: #076678;
|
|
685
|
-
--c-amber: #b57614;
|
|
686
|
-
--c-red: #9d0006;
|
|
687
|
-
--c-green: #79740e;
|
|
688
|
-
--c-violet: #8f3f71;
|
|
689
|
-
--c-gold: #b57614;
|
|
690
|
-
--c-teal: #427b58;
|
|
691
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
692
|
-
--shadow-sm: 0 1px 2px rgba(80, 60, 30, 0.1);
|
|
693
|
-
--shadow-md: 0 6px 20px rgba(80, 60, 30, 0.14);
|
|
694
|
-
--shadow-lg: 0 12px 40px rgba(80, 60, 30, 0.2);
|
|
695
|
-
--mach-bg-sl: 45% 86%;
|
|
696
|
-
--mach-fg-sl: 55% 30%;
|
|
697
|
-
--mach-border-sl: 40% 68%;
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
/* ---- Solarized Light — Ethan Schoonover's base3 paper with 16-color accents. */
|
|
701
|
-
[data-theme="solarizedlight"] {
|
|
702
|
-
color-scheme: light;
|
|
703
|
-
--c-bg: #fdf6e3;
|
|
704
|
-
--c-bg-elev: #fbf3e0;
|
|
705
|
-
--c-bg-elev-2: #eee8d5;
|
|
706
|
-
--c-surface: #fbf3e0;
|
|
707
|
-
--c-border: #ddd6c1;
|
|
708
|
-
--c-border-strong: #cbc4ad;
|
|
709
|
-
--c-text: #073642;
|
|
710
|
-
--c-text-muted: #586e75;
|
|
711
|
-
--c-text-faint: #839496;
|
|
712
|
-
--c-accent: #2aa198;
|
|
713
|
-
--c-accent-ink: #fdf6e3;
|
|
714
|
-
--c-accent-dim: #2aa198;
|
|
715
|
-
--c-blue: #268bd2;
|
|
716
|
-
--c-amber: #b58900;
|
|
717
|
-
--c-red: #dc322f;
|
|
718
|
-
--c-green: #859900;
|
|
719
|
-
--c-violet: #6c71c4;
|
|
720
|
-
--c-gold: #b58900;
|
|
721
|
-
--c-teal: #2aa198;
|
|
722
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
723
|
-
--shadow-sm: 0 1px 2px rgba(88, 110, 117, 0.12);
|
|
724
|
-
--shadow-md: 0 6px 20px rgba(88, 110, 117, 0.16);
|
|
725
|
-
--shadow-lg: 0 12px 40px rgba(88, 110, 117, 0.22);
|
|
726
|
-
--mach-bg-sl: 45% 86%;
|
|
727
|
-
--mach-fg-sl: 50% 30%;
|
|
728
|
-
--mach-border-sl: 40% 68%;
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
/* ---- Everforest Light (medium) — soft sage/green paper, low-contrast calm. */
|
|
732
|
-
[data-theme="everforestlight"] {
|
|
733
|
-
color-scheme: light;
|
|
734
|
-
--c-bg: #fdf6e3;
|
|
735
|
-
--c-bg-elev: #f4f0d9;
|
|
736
|
-
--c-bg-elev-2: #efebd4;
|
|
737
|
-
--c-surface: #f4f0d9;
|
|
738
|
-
--c-border: #e0dcc7;
|
|
739
|
-
--c-border-strong: #bdc3af;
|
|
740
|
-
--c-text: #5c6a72;
|
|
741
|
-
--c-text-muted: #708089;
|
|
742
|
-
--c-text-faint: #939f91;
|
|
743
|
-
--c-accent: #8da101;
|
|
744
|
-
--c-accent-ink: #fdf6e3;
|
|
745
|
-
--c-accent-dim: #8da101;
|
|
746
|
-
--c-blue: #3a94c5;
|
|
747
|
-
--c-amber: #dfa000;
|
|
748
|
-
--c-red: #f85552;
|
|
749
|
-
--c-green: #8da101;
|
|
750
|
-
--c-violet: #df69ba;
|
|
751
|
-
--c-gold: #dfa000;
|
|
752
|
-
--c-teal: #35a77c;
|
|
753
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
754
|
-
--shadow-sm: 0 1px 2px rgba(92, 106, 114, 0.12);
|
|
755
|
-
--shadow-md: 0 6px 20px rgba(92, 106, 114, 0.16);
|
|
756
|
-
--shadow-lg: 0 12px 40px rgba(92, 106, 114, 0.22);
|
|
757
|
-
--mach-bg-sl: 35% 86%;
|
|
758
|
-
--mach-fg-sl: 45% 32%;
|
|
759
|
-
--mach-border-sl: 30% 68%;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
/* ---- Rosé Pine Dawn — official light variant: muted rose, iris, foam. */
|
|
763
|
-
[data-theme="rosepinedawn"] {
|
|
764
|
-
color-scheme: light;
|
|
765
|
-
--c-bg: #faf4ed;
|
|
766
|
-
--c-bg-elev: #fffaf3;
|
|
767
|
-
--c-bg-elev-2: #f2e9e1;
|
|
768
|
-
--c-surface: #fffaf3;
|
|
769
|
-
--c-border: #dfdad9;
|
|
770
|
-
--c-border-strong: #cecacd;
|
|
771
|
-
--c-text: #575279;
|
|
772
|
-
--c-text-muted: #797593;
|
|
773
|
-
--c-text-faint: #9893a5;
|
|
774
|
-
--c-accent: #907aa9;
|
|
775
|
-
--c-accent-ink: #faf4ed;
|
|
776
|
-
--c-accent-dim: #907aa9;
|
|
777
|
-
--c-blue: #286983;
|
|
778
|
-
--c-amber: #ea9d34;
|
|
779
|
-
--c-red: #b4637a;
|
|
780
|
-
--c-green: #56949f;
|
|
781
|
-
--c-violet: #907aa9;
|
|
782
|
-
--c-gold: #ea9d34;
|
|
783
|
-
--c-teal: #56949f;
|
|
784
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
785
|
-
--shadow-sm: 0 1px 2px rgba(87, 82, 121, 0.1);
|
|
786
|
-
--shadow-md: 0 6px 20px rgba(87, 82, 121, 0.14);
|
|
787
|
-
--shadow-lg: 0 12px 40px rgba(87, 82, 121, 0.2);
|
|
788
|
-
--mach-bg-sl: 35% 88%;
|
|
789
|
-
--mach-fg-sl: 30% 38%;
|
|
790
|
-
--mach-border-sl: 28% 72%;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
/* ---- Catppuccin Latte — the official light flavour: neutral with mauve accent. */
|
|
794
|
-
[data-theme="latte"] {
|
|
795
|
-
color-scheme: light;
|
|
796
|
-
--c-bg: #eff1f5;
|
|
797
|
-
--c-bg-elev: #e6e9ef;
|
|
798
|
-
--c-bg-elev-2: #dce0e8;
|
|
799
|
-
--c-surface: #e6e9ef;
|
|
800
|
-
--c-border: #ccd0da;
|
|
801
|
-
--c-border-strong: #bcc0cc;
|
|
802
|
-
--c-text: #4c4f69;
|
|
803
|
-
--c-text-muted: #5c5f77;
|
|
804
|
-
--c-text-faint: #8c8fa1;
|
|
805
|
-
--c-accent: #8839ef;
|
|
806
|
-
--c-accent-ink: #eff1f5;
|
|
807
|
-
--c-accent-dim: #8839ef;
|
|
808
|
-
--c-blue: #1e66f5;
|
|
809
|
-
--c-amber: #df8e1d;
|
|
810
|
-
--c-red: #d20f39;
|
|
811
|
-
--c-green: #40a02b;
|
|
812
|
-
--c-violet: #8839ef;
|
|
813
|
-
--c-gold: #df8e1d;
|
|
814
|
-
--c-teal: #179299;
|
|
815
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 10%, var(--c-bg));
|
|
816
|
-
--shadow-sm: 0 1px 2px rgba(76, 79, 105, 0.1);
|
|
817
|
-
--shadow-md: 0 6px 20px rgba(76, 79, 105, 0.14);
|
|
818
|
-
--shadow-lg: 0 12px 40px rgba(76, 79, 105, 0.2);
|
|
819
|
-
--mach-bg-sl: 45% 88%;
|
|
820
|
-
--mach-fg-sl: 45% 34%;
|
|
821
|
-
--mach-border-sl: 35% 72%;
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
/* ---- Nord Light — Snow Storm base, Polar Night ink, darkened Frost/Aurora
|
|
825
|
-
accents so they read against the pale blue-gray paper. */
|
|
826
|
-
[data-theme="nordlight"] {
|
|
827
|
-
color-scheme: light;
|
|
828
|
-
--c-bg: #eceff4;
|
|
829
|
-
--c-bg-elev: #f4f6f9;
|
|
830
|
-
--c-bg-elev-2: #e5e9f0;
|
|
831
|
-
--c-surface: #f4f6f9;
|
|
832
|
-
--c-border: #d8dee9;
|
|
833
|
-
--c-border-strong: #c2cad6;
|
|
834
|
-
--c-text: #2e3440;
|
|
835
|
-
--c-text-muted: #434c5e;
|
|
836
|
-
--c-text-faint: #6b7689;
|
|
837
|
-
--c-accent: #5e81ac;
|
|
838
|
-
--c-accent-ink: #eceff4;
|
|
839
|
-
--c-accent-dim: #5e81ac;
|
|
840
|
-
--c-blue: #5e81ac;
|
|
841
|
-
--c-amber: #9a6f12;
|
|
842
|
-
--c-red: #bf616a;
|
|
843
|
-
--c-green: #5a7444;
|
|
844
|
-
--c-violet: #9a6c93;
|
|
845
|
-
--c-gold: #9a6f12;
|
|
846
|
-
--c-teal: #3a8a87;
|
|
847
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
848
|
-
--shadow-sm: 0 1px 2px rgba(46, 52, 64, 0.1);
|
|
849
|
-
--shadow-md: 0 6px 20px rgba(46, 52, 64, 0.14);
|
|
850
|
-
--shadow-lg: 0 12px 40px rgba(46, 52, 64, 0.2);
|
|
851
|
-
--mach-bg-sl: 30% 88%;
|
|
852
|
-
--mach-fg-sl: 35% 34%;
|
|
853
|
-
--mach-border-sl: 28% 72%;
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
/* ---- Tokyo Night Day — the official light variant: muted blue paper, the
|
|
857
|
-
signature blue ink, saturated day accents. */
|
|
858
|
-
[data-theme="tokyoday"] {
|
|
859
|
-
color-scheme: light;
|
|
860
|
-
--c-bg: #e1e2e7;
|
|
861
|
-
--c-bg-elev: #eaeaee;
|
|
862
|
-
--c-bg-elev-2: #d5d6db;
|
|
863
|
-
--c-surface: #eaeaee;
|
|
864
|
-
--c-border: #c4c8da;
|
|
865
|
-
--c-border-strong: #a8acc4;
|
|
866
|
-
--c-text: #3760bf;
|
|
867
|
-
--c-text-muted: #6172b0;
|
|
868
|
-
--c-text-faint: #848cb5;
|
|
869
|
-
--c-accent: #2e7de9;
|
|
870
|
-
--c-accent-ink: #ffffff;
|
|
871
|
-
--c-accent-dim: #2e7de9;
|
|
872
|
-
--c-blue: #2e7de9;
|
|
873
|
-
--c-amber: #8c6c3e;
|
|
874
|
-
--c-red: #f52a65;
|
|
875
|
-
--c-green: #587539;
|
|
876
|
-
--c-violet: #9854f1;
|
|
877
|
-
--c-gold: #8c6c3e;
|
|
878
|
-
--c-teal: #118c74;
|
|
879
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
880
|
-
--shadow-sm: 0 1px 2px rgba(55, 96, 191, 0.1);
|
|
881
|
-
--shadow-md: 0 6px 20px rgba(55, 96, 191, 0.14);
|
|
882
|
-
--shadow-lg: 0 12px 40px rgba(55, 96, 191, 0.2);
|
|
883
|
-
--mach-bg-sl: 40% 88%;
|
|
884
|
-
--mach-fg-sl: 45% 34%;
|
|
885
|
-
--mach-border-sl: 32% 72%;
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
/* ---- Kanagawa Lotus — the official light variant: warm woodblock paper,
|
|
889
|
-
ink-violet accent, muted earthen hues (brownish base). */
|
|
890
|
-
[data-theme="kanagawalotus"] {
|
|
891
|
-
color-scheme: light;
|
|
892
|
-
--c-bg: #f2ecbc;
|
|
893
|
-
--c-bg-elev: #ebe3b0;
|
|
894
|
-
--c-bg-elev-2: #e5ddb0;
|
|
895
|
-
--c-surface: #ebe3b0;
|
|
896
|
-
--c-border: #d5cea3;
|
|
897
|
-
--c-border-strong: #c9c193;
|
|
898
|
-
--c-text: #545464;
|
|
899
|
-
--c-text-muted: #766b90;
|
|
900
|
-
--c-text-faint: #a09cac;
|
|
901
|
-
--c-accent: #624c83;
|
|
902
|
-
--c-accent-ink: #f2ecbc;
|
|
903
|
-
--c-accent-dim: #624c83;
|
|
904
|
-
--c-blue: #4d699b;
|
|
905
|
-
--c-amber: #cc6d00;
|
|
906
|
-
--c-red: #c84053;
|
|
907
|
-
--c-green: #6f894e;
|
|
908
|
-
--c-violet: #624c83;
|
|
909
|
-
--c-gold: #836f4a;
|
|
910
|
-
--c-teal: #597b75;
|
|
911
|
-
--md-code-bg: color-mix(in srgb, var(--c-blue) 12%, var(--c-bg));
|
|
912
|
-
--shadow-sm: 0 1px 2px rgba(84, 84, 100, 0.12);
|
|
913
|
-
--shadow-md: 0 6px 20px rgba(84, 84, 100, 0.16);
|
|
914
|
-
--shadow-lg: 0 12px 40px rgba(84, 84, 100, 0.22);
|
|
915
|
-
--mach-bg-sl: 35% 84%;
|
|
916
|
-
--mach-fg-sl: 35% 34%;
|
|
917
|
-
--mach-border-sl: 30% 66%;
|
|
918
|
-
}
|
|
7
|
+
@import './tokens.css';
|
|
8
|
+
@import './themes.css';
|