@kanzo-tech/theme 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +61 -22
  2. package/dist/contrast.d.ts +34 -0
  3. package/dist/contrast.d.ts.map +1 -0
  4. package/dist/index.d.ts +35 -74
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +188 -133
  7. package/dist/index.js.map +1 -1
  8. package/dist/ink.d.ts +2 -2
  9. package/dist/sections.d.ts +0 -7
  10. package/dist/sections.d.ts.map +1 -1
  11. package/package.json +1 -1
  12. package/theme-data.json +35 -107
  13. package/themes/catppuccin-latte.css +52 -45
  14. package/themes/catppuccin-mocha.css +55 -47
  15. package/themes/kanzo-dark.css +55 -55
  16. package/themes/kanzo.css +53 -50
  17. package/themes/lofi-dark.css +70 -0
  18. package/themes/lofi.css +38 -22
  19. package/themes/nord-dark.css +54 -46
  20. package/themes/nord.css +55 -47
  21. package/themes.css +4 -25
  22. package/tokens.css +49 -35
  23. package/themes/acid.css +0 -54
  24. package/themes/bank-dark.css +0 -62
  25. package/themes/bank-private-dark.css +0 -62
  26. package/themes/bank-private.css +0 -61
  27. package/themes/bank.css +0 -61
  28. package/themes/catppuccin-latte-dark.css +0 -62
  29. package/themes/catppuccin-mocha-dark.css +0 -62
  30. package/themes/cmyk.css +0 -54
  31. package/themes/coffee.css +0 -54
  32. package/themes/cyberpunk.css +0 -54
  33. package/themes/dim.css +0 -54
  34. package/themes/dracula-dark.css +0 -62
  35. package/themes/dracula.css +0 -61
  36. package/themes/forest.css +0 -54
  37. package/themes/lemonade.css +0 -54
  38. package/themes/luxury.css +0 -54
  39. package/themes/monochrome-dark.css +0 -62
  40. package/themes/monochrome.css +0 -61
  41. package/themes/night.css +0 -54
  42. package/themes/sunset.css +0 -54
  43. package/themes/synthwave.css +0 -54
  44. package/themes/wireframe.css +0 -54
@@ -1,62 +1,70 @@
1
- /* nord-dark — a theme is one mode, one flat block, written by hand. */
1
+ /* @family nord
2
+ @label Nord Dark
3
+
4
+ Nord's Polar Night: #2e3440 ground, Snow Storm ink, Frost #88c0d0 for the brand, Aurora for
5
+ state.
6
+ One mode, one flat block, written by hand. */
2
7
  [data-theme="nord-dark"] {
3
8
  color-scheme: dark;
4
9
 
5
- /* The twenty-one */
6
- --background: #090a0c;
7
- --foreground: #edf1fb;
8
- --card: #0b0c0e;
9
- --muted: #101217;
10
- --muted-foreground: #959fb2;
11
- --primary: #679eae;
12
- --primary-foreground: #070b0c;
13
- --secondary: #161921;
14
- --accent: #1e222b;
15
- --destructive: #e7000b;
16
- --destructive-content: #ffffff;
17
- --info: #155dfc;
18
- --info-content: #e8f0ff;
19
- --success: #009966;
20
- --success-content: #060c08;
21
- --warning: #e17100;
22
- --warning-content: #100805;
23
- --border: #282d36;
24
- --ring: #567a84;
10
+ /* Surfaces, ink, brand, lines */
11
+ --background: #2e3440;
12
+ --foreground: #eceff4;
13
+ --card: #323846;
14
+ --popover: #3b4252;
15
+ --muted: #3b4252;
16
+ --muted-foreground: #d8dee9;
17
+ --primary: #88c0d0;
18
+ --primary-foreground: #2e3440;
19
+ --secondary: #434c5e;
20
+ --accent: #434c5e;
21
+ --border: #4c566a;
22
+ --input: #7b88a1;
23
+ --ring: #88c0d0;
24
+ --field: #2e3440;
25
+ --faint: #c0c8d6;
25
26
 
26
- /* Optional: each falls back to a bridge default in tokens.css when left out */
27
- --popover: #101217;
28
- --input: #545e73;
29
- --field: #090a0c;
30
- --faint: #959fb2;
31
- --destructive-foreground: #ff8677;
32
- --info-foreground: #7aa7ff;
33
- --success-foreground: #66c999;
34
- --warning-foreground: #ffa264;
27
+ /* Status: the fill, the ink on it, and the same family read on the page */
28
+ --destructive: #d0707a;
29
+ --destructive-content: #100405;
30
+ --destructive-foreground: #dfa3a9;
31
+ --info: #81a1c1;
32
+ --info-content: #06090e;
33
+ --info-foreground: #abc0d6;
34
+ --success: #a3be8c;
35
+ --success-content: #0a0d07;
36
+ --success-foreground: #c0d2b5;
37
+ --warning: #ebcb8b;
38
+ --warning-content: #130f07;
39
+ --warning-foreground: #ecdab7;
35
40
 
36
41
  /* Shape */
37
- --radius-box: 0.75rem;
38
- --radius-field: 0.5rem;
42
+ --radius-box: 0.5rem;
43
+ --radius-field: 0.375rem;
39
44
  --radius-selector: 0.25rem;
40
45
  --size-field: 0.25rem;
41
46
  --size-selector: 0.25rem;
42
47
  --stroke: 1px;
43
48
  --relief: 0;
44
49
 
45
- /* Optional: categorical set and syntax */
50
+ /* Categorical set */
46
51
  --chart-capacity: 8;
47
- --chart-1: #e12afb;
48
- --chart-2: #a65f00;
49
- --chart-3: #0092b8;
50
- --chart-4: #f54900;
51
- --chart-5: #2b7fff;
52
- --chart-6: #ff2056;
53
- --chart-7: #7f22fe;
54
- --chart-8: #008236;
55
- --syntax-keyword: #b48ead;
52
+ --chart-1: #87cee8;
53
+ --chart-2: #bd7137;
54
+ --chart-3: #68ab8f;
55
+ --chart-4: #ca95ba;
56
+ --chart-5: #dc9577;
57
+ --chart-6: #cac3fd;
58
+ --chart-7: #e8f1ac;
59
+ --chart-8: #7a80b5;
60
+
61
+ /* Syntax */
62
+ --syntax-keyword: #93b4d4;
56
63
  --syntax-string: #a3be8c;
57
- --syntax-number: #d08770;
58
- --syntax-function: #81a1c1;
59
- --syntax-identifier: #bf616a;
60
- --syntax-property: #88c0d0;
64
+ --syntax-number: #caa4c3;
65
+ --syntax-function: #88c0d0;
66
+ --syntax-variable: #d8dee9;
67
+ --syntax-property: #8fbcbb;
61
68
  --syntax-type: #ebcb8b;
69
+ --syntax-annotation: #e99e87;
62
70
  }
package/themes/nord.css CHANGED
@@ -1,61 +1,69 @@
1
- /* nord — a theme is one mode, one flat block, written by hand. */
1
+ /* @family nord
2
+ @label Nord
3
+
4
+ Arctic Ice Studio's Nord, Snow Storm side: #eceff4 ground, Polar Night ink, Frost for the
5
+ brand.
6
+ One mode, one flat block, written by hand. */
2
7
  [data-theme="nord"] {
3
8
  color-scheme: light;
4
9
 
5
- /* The twenty-one */
6
- --background: #f9fafb;
7
- --foreground: #0c1017;
8
- --card: #f9fafb;
9
- --muted: #ebedf1;
10
- --muted-foreground: #2e3646;
11
- --primary: #6299a9;
12
- --primary-foreground: #001016;
13
- --secondary: #dde1e8;
14
- --accent: #cdd2db;
15
- --destructive: #e7000b;
16
- --destructive-content: #fef9f8;
17
- --info: #155dfc;
18
- --info-content: #f8fafe;
19
- --success: #009966;
20
- --success-content: #001309;
21
- --warning: #e17100;
22
- --warning-content: #1b0700;
23
- --border: #b8bdc8;
24
- --ring: #6299a9;
10
+ /* Surfaces, ink, brand, lines */
11
+ --background: #eceff4;
12
+ --foreground: #2e3440;
13
+ --card: #f2f4f8;
14
+ --muted: #e5e9f0;
15
+ --muted-foreground: #4c566a;
16
+ --primary: #4c6a92;
17
+ --primary-foreground: #f2f4f8;
18
+ --secondary: #d8dee9;
19
+ --accent: #dde2eb;
20
+ --border: #c7cfdc;
21
+ --input: #7b879b;
22
+ --ring: #5e81ac;
23
+ --field: #f2f4f8;
24
+ --faint: #56607a;
25
25
 
26
- /* Optional: each falls back to a bridge default in tokens.css when left out */
27
- --input: #798191;
28
- --field: #0000000a;
29
- --faint: #444e61;
30
- --destructive-foreground: #8d0003;
31
- --info-foreground: #0032a7;
32
- --success-foreground: #005b3b;
33
- --warning-foreground: #844000;
26
+ /* Status: the fill, the ink on it, and the same family read on the page */
27
+ --destructive: #bf616a;
28
+ --destructive-content: #0d0304;
29
+ --destructive-foreground: #83505a;
30
+ --info: #5e81ac;
31
+ --info-content: #03060b;
32
+ --info-foreground: #4a617f;
33
+ --success: #a3be8c;
34
+ --success-content: #0a0d07;
35
+ --success-foreground: #607063;
36
+ --warning: #ebcb8b;
37
+ --warning-content: #130f07;
38
+ --warning-foreground: #706a5e;
34
39
 
35
40
  /* Shape */
36
- --radius-box: 0.75rem;
37
- --radius-field: 0.5rem;
41
+ --radius-box: 0.5rem;
42
+ --radius-field: 0.375rem;
38
43
  --radius-selector: 0.25rem;
39
44
  --size-field: 0.25rem;
40
45
  --size-selector: 0.25rem;
41
46
  --stroke: 1px;
42
47
  --relief: 0;
43
48
 
44
- /* Optional: categorical set and syntax */
49
+ /* Categorical set */
45
50
  --chart-capacity: 8;
46
- --chart-1: #00c950;
47
- --chart-2: #a800b7;
48
- --chart-3: #ff8904;
49
- --chart-4: #2b7fff;
50
- --chart-5: #ff2056;
51
- --chart-6: #7008e7;
52
- --chart-7: #a65f00;
53
- --chart-8: #0092b8;
54
- --syntax-keyword: #84607e;
55
- --syntax-string: #5a7344;
56
- --syntax-number: #9e5944;
57
- --syntax-function: #506e8c;
58
- --syntax-identifier: #0c1017;
59
- --syntax-property: #0c1017;
60
- --syntax-type: #7e6120;
51
+ --chart-1: #397be2;
52
+ --chart-2: #b8323f;
53
+ --chart-3: #768f5f;
54
+ --chart-4: #a37d9c;
55
+ --chart-5: #da630e;
56
+ --chart-6: #226d84;
57
+ --chart-7: #b07f00;
58
+ --chart-8: #0062c1;
59
+
60
+ /* Syntax */
61
+ --syntax-keyword: #476993;
62
+ --syntax-string: #566e40;
63
+ --syntax-number: #7f5c79;
64
+ --syntax-function: #386f7d;
65
+ --syntax-variable: #2e3440;
66
+ --syntax-property: #436e6e;
67
+ --syntax-type: #98553f;
68
+ --syntax-annotation: #a44953;
61
69
  }
package/themes.css CHANGED
@@ -3,35 +3,14 @@
3
3
  whatever theme is on. A theme is `themes/<name>.css` and is SOURCE — hand-written, one flat
4
4
  block. This file never contains a colour. */
5
5
 
6
- @import "./themes/acid.css";
7
- @import "./themes/bank-dark.css";
8
- @import "./themes/bank-private-dark.css";
9
- @import "./themes/bank-private.css";
10
- @import "./themes/bank.css";
11
- @import "./themes/catppuccin-latte-dark.css";
6
+ @import "./themes/kanzo.css";
7
+ @import "./themes/kanzo-dark.css";
12
8
  @import "./themes/catppuccin-latte.css";
13
- @import "./themes/catppuccin-mocha-dark.css";
14
9
  @import "./themes/catppuccin-mocha.css";
15
- @import "./themes/cmyk.css";
16
- @import "./themes/coffee.css";
17
- @import "./themes/cyberpunk.css";
18
- @import "./themes/dim.css";
19
- @import "./themes/dracula-dark.css";
20
- @import "./themes/dracula.css";
21
- @import "./themes/forest.css";
22
- @import "./themes/kanzo-dark.css";
23
- @import "./themes/kanzo.css";
24
- @import "./themes/lemonade.css";
25
10
  @import "./themes/lofi.css";
26
- @import "./themes/luxury.css";
27
- @import "./themes/monochrome-dark.css";
28
- @import "./themes/monochrome.css";
29
- @import "./themes/night.css";
30
- @import "./themes/nord-dark.css";
11
+ @import "./themes/lofi-dark.css";
31
12
  @import "./themes/nord.css";
32
- @import "./themes/sunset.css";
33
- @import "./themes/synthwave.css";
34
- @import "./themes/wireframe.css";
13
+ @import "./themes/nord-dark.css";
35
14
 
36
15
  /* ── Radius (data-radius) ───────────────────────────────────────────────── */
37
16
  [data-radius="none"] {
package/tokens.css CHANGED
@@ -22,7 +22,7 @@
22
22
  * authored them, `--card-foreground` and `--popover-foreground` were byte-identical to
23
23
  * `--foreground`, and six of the eight sidebar tokens were byte-identical to the core token they
24
24
  * shadow — ninety-six declarations writing a value that was already written. Nothing authors any of
25
- * the eight today, in any of the twenty-nine. The NAMES stay, because Shark's recipes paste them
25
+ * the eight today. The NAMES stay, because Shark's recipes paste them
26
26
  * verbatim and that clause is what keeps a Shark name alive. What stopped is authoring them per
27
27
  * theme. `themes.test.ts` resolves each deleted name through this bridge in every shipped theme and
28
28
  * fails if a fallback lands somewhere other than the token it replaced, so this is checked rather
@@ -34,9 +34,9 @@
34
34
  *
35
35
  * `:root { --sidebar-primary: var(--primary) }` looks equivalent and is not. A custom property
36
36
  * inherits its **computed** value: `--sidebar-primary` resolves once, on `<html>`, against that
37
- * element's `--primary`. A scoped preview — `<div data-theme="dracula">` — sets a new `--primary`
37
+ * element's `--primary`. A scoped preview — `<div data-theme="catppuccin-mocha">` — sets a new `--primary`
38
38
  * on the div, but `--sidebar-primary` was already substituted on the ancestor and inherits that
39
- * old value. The div renders Dracula's brand with Nord's sidebar, silently.
39
+ * old value. The div renders Catppuccin's brand with Nord's sidebar, silently.
40
40
  *
41
41
  * `@theme inline` has no such problem: Tailwind inlines the value into the *utility*, so
42
42
  * `bg-sidebar-primary` compiles to `background-color: var(--primary)` and the `var()` is resolved
@@ -97,8 +97,7 @@
97
97
  `--sidebar` was `--popover` in all sixteen hand-written themes and `--sidebar-foreground` was
98
98
  `--muted-foreground` in all sixteen, so the fallbacks point there and the themes stopped
99
99
  writing them. The chain for `--sidebar` runs on to `--card`, which is where `--popover` itself
100
- defers. A theme that wants a sidebar of its own still says so; none of the twenty-nine does
101
- today, and the thirteen imported from daisyUI never had a sidebar channel to carry. */
100
+ defers. A theme that wants a sidebar of its own still says so; none does today. */
102
101
  --color-sidebar: var(--sidebar, var(--popover, var(--card)));
103
102
  --color-sidebar-foreground: var(--sidebar-foreground, var(--muted-foreground));
104
103
  --color-sidebar-border: var(--border);
@@ -150,14 +149,6 @@
150
149
  --radius-3xl: calc(var(--radius-field, 0.5rem) * 3);
151
150
  --radius-4xl: calc(var(--radius-field, 0.5rem) * 4);
152
151
 
153
- /* Fonts — a theme may carry them now, so a tenant ships a typeface with their colours. These
154
- are the fallbacks, and the shape is Shark's. daisyUI has no font in its theme at all; keeping
155
- `--font-heading` separate from `--font-sans` is the single most identity-carrying typographic
156
- choice a white-label document can make. */
157
- --font-sans: var(--font-sans, ui-sans-serif, system-ui, sans-serif);
158
- --font-heading: var(--font-heading, ui-sans-serif, system-ui, sans-serif);
159
- --font-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
160
-
161
152
  /* Height-based expand/collapse for Ark Collapsible / TreeView. Ark supplies `--height`
162
153
  at runtime (tw-animate-css can't measure it), so we ship the `expand`/`collapse` pair
163
154
  its components reference, beside the `--animate-*` names that emit `animate-expand` /
@@ -178,6 +169,20 @@
178
169
  --animate-arrive: arrive 150ms ease both;
179
170
  }
180
171
 
172
+ /* Fonts. Declared as values in a plain `@theme`, never as `var(--font-x, …)` of themselves inside
173
+ the inline bridge: that spelling made `--font-mono` refer to its own name, which is a cycle, so the
174
+ property computed to nothing and a host that set it without a fallback lost the face entirely.
175
+ `font-mono` compiles to `var(--font-mono)`, read on the element, so `[data-mono-font]` and a theme
176
+ that carries a face still win. The stacks are Geist's — the defaults `themes.css` declares as
177
+ `data-font="geist"` / `data-mono-font="geist-mono"` — each falling back to the system face when the
178
+ host has not loaded the webfont. `static`, so the variables are emitted even where no utility asks
179
+ for them: `CodeEditor` reads `--font-mono` from a style object. */
180
+ @theme static {
181
+ --font-sans: var(--font-geist-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
182
+ --font-heading: var(--font-geist-sans, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
183
+ --font-mono: var(--font-geist-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace);
184
+ }
185
+
181
186
  @keyframes expand {
182
187
  from { height: 0; }
183
188
  to { height: var(--height); }
@@ -226,10 +231,32 @@
226
231
  }
227
232
  }
228
233
 
234
+ /* ── A scoped theme starts from its own chain, never the page's ──────────────────────────────
235
+ The optional tokens above are read through a fallback: `--popover` → `--card`, `--sidebar` →
236
+ `--popover` → `--card`. A custom property inherits, so a theme that leaves one unsaid, scoped
237
+ under a page whose theme says it, would inherit the PAGE's value — a light `kanzo` preview on a
238
+ dark page drew `kanzo-dark`'s sidebar. Every element carrying a theme therefore resets them to
239
+ the guaranteed-invalid value, at zero specificity so any theme block that authors one wins, and
240
+ the bridge's fallback resolves against the theme on that element. `themes.test.ts` holds this
241
+ list to every chain the bridge reads. */
242
+ :where([data-theme]) {
243
+ --accent-foreground: initial;
244
+ --destructive-foreground: initial;
245
+ --faint: initial;
246
+ --field: initial;
247
+ --info-foreground: initial;
248
+ --input: initial;
249
+ --popover: initial;
250
+ --secondary-foreground: initial;
251
+ --sidebar: initial;
252
+ --sidebar-foreground: initial;
253
+ --success-foreground: initial;
254
+ --warning-foreground: initial;
255
+ }
256
+
229
257
  :root {
230
258
  /* ── The categorical set a theme gets by saying nothing ───────────────────────
231
- Sixteen themes author their own; thirteen do not, because daisyUI has no such channel to
232
- import, and their slots resolved to nothing.
259
+ Every shipped theme authors its own eight; this is what a tenant's theme gets when it does not.
233
260
 
234
261
  **Declared here, not bridged, and it is the one fallback in this file that is a literal.**
235
262
  Every other name above defers to another token, so it must resolve on the element that uses
@@ -241,27 +268,14 @@
241
268
  `[data-theme]` block overrides it slot by slot on the element that carries it, and both paths
242
269
  get the same answer.
243
270
 
244
- Chosen by search under the bars a chart is actually read against, all of them re-run by
245
- `categorical.test.ts` over the shipped files rather than trusted here:
246
-
247
- · every slot inside OKLCH L 0.48–0.67, the INTERSECTION of the light band (0.43–0.77) and
248
- the dark one — the only way one set is in band on `#ffffff` and on `#09002f`;
249
- · ≥ 3:1 against **all twenty-nine** backgrounds, not against the two ends. The ends are not
250
- the hard case: `dim` (#2a303c) and `cyberpunk` (#fff248) between them leave a window of
251
- relative luminance 0.188–0.251, and a set validated only at the extremes failed on six
252
- themes in the middle;
253
- · worst adjacent pair 17.6 ΔE under protan/deutan simulation, 14.4 under tritan and 21.4 to
254
- normal vision. The old per-document bar was 15;
255
- · ≥ 8 ΔE from all fifty-two distinct status fills the twenty-nine publish, so a series does
256
- not read as a state.
257
-
258
- There is no deriving these from `--primary`: `--chart-6` takes twelve distinct values across
259
- the sixteen authored sets. A set answers to *separation*, which is a property of the eight
260
- together.
271
+ `categorical.test.ts` re-runs the bars over the shipped file rather than trusting this note:
272
+ every slot inside OKLCH L 0.48–0.67 (the intersection of the light and dark bands), adjacent
273
+ slots apart to normal vision and to all three dichromacies, and clear of every status fill
274
+ the catalogue publishes so a series does not read as a state. Contrast against a ground is
275
+ checked per theme, on the set that theme actually resolves to.
261
276
 
262
- A theme that declines the channel outright still says so with `--chart-capacity: 0`, and these
263
- colours simply go unread — `monochrome` is the one, and `monochrome-is-a-palette-not-a-look`
264
- is the record. */
277
+ A theme that declines the channel outright says so with `--chart-capacity: 0`, and these
278
+ colours simply go unread. */
265
279
  --chart-1: #aa5aee;
266
280
  --chart-2: #dc356d;
267
281
  --chart-3: #737fee;
package/themes/acid.css DELETED
@@ -1,54 +0,0 @@
1
- /* acid — imported from daisyUI 5.7.20 (MIT), converted from OKLCh to hex.
2
- Copyright (c) 2020 Pouya Saadeghi. https://github.com/saadeghi/daisyui
3
-
4
- Their twenty colours mapped onto our twenty-one; the mapping and what it decides are in
5
- `scripts/import-daisy.mjs`. Not one value was corrected — a theme whose own colours failed the
6
- contrast guard was skipped rather than nudged, because a nudged `pastel` is not `pastel`.
7
-
8
- SOURCE from here on. Edit it by hand; nothing regenerates it. */
9
- [data-theme="acid"] {
10
- color-scheme: light;
11
-
12
- /* The twenty-one */
13
- --background: #f8f8f8;
14
- --foreground: #000000;
15
- --card: #f8f8f8;
16
- --muted: #eeeeee;
17
- --muted-foreground: #535353;
18
- --primary: #ff00ff;
19
- --primary-foreground: #180017;
20
- --secondary: #ff6e00;
21
- --secondary-foreground: #180400;
22
- --accent: #e6e6e6;
23
- --destructive: #ff0000;
24
- --destructive-content: #190000;
25
- --info: #007fff;
26
- --info-content: #000616;
27
- --success: #00ff8a;
28
- --success-content: #001607;
29
- --warning: #ffe200;
30
- --warning-content: #161200;
31
- --border: #e1e1e1;
32
- --ring: #ff00ff;
33
-
34
- /* The same families, read on the page rather than on their fill */
35
- --destructive-foreground: #800000;
36
- --info-foreground: #003c80;
37
- --success-foreground: #008042;
38
- --warning-foreground: #807100;
39
-
40
- /* Shape */
41
- --radius-box: 1rem;
42
- --radius-field: 1rem;
43
- --radius-selector: 1rem;
44
- --size-field: 0.25rem;
45
- --size-selector: 0.25rem;
46
- --stroke: 1px;
47
- --relief: 1;
48
-
49
- /* daisyUI has no categorical channel, so this theme authors no `--chart-*` and takes the eight
50
- `tokens.css` publishes as its fallback. It does NOT declare `--chart-capacity: 0`: zero means
51
- *this theme declines the channel*, which is `monochrome`'s answer and not this one — an absent
52
- capacity reads as the full count, which is now true because there is a full set behind it.
53
- Author eight of your own here and they win, slot by slot. */
54
- }
@@ -1,62 +0,0 @@
1
- /* bank-dark — a theme is one mode, one flat block, written by hand. */
2
- [data-theme="bank-dark"] {
3
- color-scheme: dark;
4
-
5
- /* The twenty-one */
6
- --background: #090a0c;
7
- --foreground: #eceff6;
8
- --card: #0c0d0e;
9
- --muted: #121417;
10
- --muted-foreground: #a3aab7;
11
- --primary: #2b7fff;
12
- --primary-foreground: #060a13;
13
- --secondary: #1a1d22;
14
- --accent: #25272d;
15
- --destructive: #e7000b;
16
- --destructive-content: #ffffff;
17
- --info: #155dfc;
18
- --info-content: #e8f0ff;
19
- --success: #009966;
20
- --success-content: #060c08;
21
- --warning: #e17100;
22
- --warning-content: #100805;
23
- --border: #31353b;
24
- --ring: #3065b9;
25
-
26
- /* Optional: each falls back to a bridge default in tokens.css when left out */
27
- --popover: #121417;
28
- --input: #6b7280;
29
- --field: #090a0c;
30
- --faint: #747b88;
31
- --destructive-foreground: #ff8677;
32
- --info-foreground: #7aa7ff;
33
- --success-foreground: #66c999;
34
- --warning-foreground: #ffa264;
35
-
36
- /* Shape */
37
- --radius-box: 0.75rem;
38
- --radius-field: 0.5rem;
39
- --radius-selector: 0.25rem;
40
- --size-field: 0.25rem;
41
- --size-selector: 0.25rem;
42
- --stroke: 1px;
43
- --relief: 0;
44
-
45
- /* Optional: categorical set and syntax */
46
- --chart-capacity: 8;
47
- --chart-1: #9810fa;
48
- --chart-2: #f54900;
49
- --chart-3: #0092b8;
50
- --chart-4: #a65f00;
51
- --chart-5: #2b7fff;
52
- --chart-6: #e60076;
53
- --chart-7: #615fff;
54
- --chart-8: #009689;
55
- --syntax-keyword: #c27aff;
56
- --syntax-string: #00d492;
57
- --syntax-number: #ff8904;
58
- --syntax-function: #51a2ff;
59
- --syntax-identifier: #ff6467;
60
- --syntax-property: #00d3f2;
61
- --syntax-type: #fdc700;
62
- }
@@ -1,62 +0,0 @@
1
- /* bank-private-dark — a theme is one mode, one flat block, written by hand. */
2
- [data-theme="bank-private-dark"] {
3
- color-scheme: dark;
4
-
5
- /* The twenty-one */
6
- --background: #090a0c;
7
- --foreground: #eceff6;
8
- --card: #0c0d0e;
9
- --muted: #121417;
10
- --muted-foreground: #a3aab7;
11
- --primary: #a16207;
12
- --primary-foreground: #ffffff;
13
- --secondary: #1a1d22;
14
- --accent: #25272d;
15
- --destructive: #e7000b;
16
- --destructive-content: #ffffff;
17
- --info: #155dfc;
18
- --info-content: #e8f0ff;
19
- --success: #009966;
20
- --success-content: #060c08;
21
- --warning: #e17100;
22
- --warning-content: #100805;
23
- --border: #31353b;
24
- --ring: #a16207;
25
-
26
- /* Optional: each falls back to a bridge default in tokens.css when left out */
27
- --popover: #121417;
28
- --input: #6b7280;
29
- --field: #090a0c;
30
- --faint: #747b88;
31
- --destructive-foreground: #ff8677;
32
- --info-foreground: #7aa7ff;
33
- --success-foreground: #66c999;
34
- --warning-foreground: #ffa264;
35
-
36
- /* Shape */
37
- --radius-box: 0.75rem;
38
- --radius-field: 0.5rem;
39
- --radius-selector: 0.25rem;
40
- --size-field: 0.25rem;
41
- --size-selector: 0.25rem;
42
- --stroke: 1px;
43
- --relief: 0;
44
-
45
- /* Optional: categorical set and syntax */
46
- --chart-capacity: 7;
47
- --chart-1: #e12afb;
48
- --chart-2: #5ea500;
49
- --chart-3: #007a55;
50
- --chart-4: #2b7fff;
51
- --chart-5: #a65f00;
52
- --chart-6: #9810fa;
53
- --chart-7: #009689;
54
- --chart-8: var(--muted-foreground);
55
- --syntax-keyword: #c27aff;
56
- --syntax-string: #00d492;
57
- --syntax-number: #ff8904;
58
- --syntax-function: #51a2ff;
59
- --syntax-identifier: #ff6467;
60
- --syntax-property: #00d3f2;
61
- --syntax-type: #fdc700;
62
- }
@@ -1,61 +0,0 @@
1
- /* bank-private — a theme is one mode, one flat block, written by hand. */
2
- [data-theme="bank-private"] {
3
- color-scheme: light;
4
-
5
- /* The twenty-one */
6
- --background: #f9fafb;
7
- --foreground: #0c0f14;
8
- --card: #f9fafb;
9
- --muted: #eeeff2;
10
- --muted-foreground: #3e444f;
11
- --primary: #a16207;
12
- --primary-foreground: #fbfaf8;
13
- --secondary: #e3e6ea;
14
- --accent: #d6d9df;
15
- --destructive: #e7000b;
16
- --destructive-content: #fef9f8;
17
- --info: #155dfc;
18
- --info-content: #f8fafe;
19
- --success: #009966;
20
- --success-content: #001309;
21
- --warning: #e17100;
22
- --warning-content: #1b0700;
23
- --border: #c4c8d0;
24
- --ring: #a16207;
25
-
26
- /* Optional: each falls back to a bridge default in tokens.css when left out */
27
- --input: #6b7280;
28
- --field: #00000008;
29
- --faint: #636977;
30
- --destructive-foreground: #8d0003;
31
- --info-foreground: #0032a7;
32
- --success-foreground: #005b3b;
33
- --warning-foreground: #844000;
34
-
35
- /* Shape */
36
- --radius-box: 0.75rem;
37
- --radius-field: 0.5rem;
38
- --radius-selector: 0.25rem;
39
- --size-field: 0.25rem;
40
- --size-selector: 0.25rem;
41
- --stroke: 1px;
42
- --relief: 0;
43
-
44
- /* Optional: categorical set and syntax */
45
- --chart-capacity: 7;
46
- --chart-1: #a800b7;
47
- --chart-2: #c27aff;
48
- --chart-3: #a65f00;
49
- --chart-4: #00bba7;
50
- --chart-5: #007a55;
51
- --chart-6: #155dfc;
52
- --chart-7: #5ea500;
53
- --chart-8: var(--muted-foreground);
54
- --syntax-keyword: #8200db;
55
- --syntax-string: #007a55;
56
- --syntax-number: #ca3500;
57
- --syntax-function: #1447e6;
58
- --syntax-identifier: #c10007;
59
- --syntax-property: #007595;
60
- --syntax-type: #a15c00;
61
- }