decklight 0.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/LICENSE +21 -0
- package/README.md +257 -0
- package/SPEC.md +372 -0
- package/cli/bundle.mjs +388 -0
- package/cli/decklight.mjs +95 -0
- package/cli/edit.mjs +142 -0
- package/cli/init.mjs +215 -0
- package/cli/rec.mjs +538 -0
- package/dist/decklight.css +1068 -0
- package/dist/decklight.js +239 -0
- package/dist/decklight.js.map +7 -0
- package/docs/architecture.svg +94 -0
- package/docs/demo.svg +124 -0
- package/package.json +54 -0
- package/themes/README.md +61 -0
- package/themes/aliens.css +84 -0
- package/themes/apple2.css +126 -0
- package/themes/aurora.css +84 -0
- package/themes/berry.css +80 -0
- package/themes/blade-runner.css +83 -0
- package/themes/c64.css +85 -0
- package/themes/carbon.css +82 -0
- package/themes/citrus.css +80 -0
- package/themes/coastal.css +80 -0
- package/themes/cosmos.css +86 -0
- package/themes/dune.css +80 -0
- package/themes/eclipse.css +82 -0
- package/themes/ember.css +80 -0
- package/themes/fjord.css +80 -0
- package/themes/friends.css +82 -0
- package/themes/gallery.html +203 -0
- package/themes/gameboy.css +118 -0
- package/themes/genesis.css +84 -0
- package/themes/glacier.css +82 -0
- package/themes/godfather.css +82 -0
- package/themes/graphite.css +80 -0
- package/themes/harvest.css +80 -0
- package/themes/ibm-modern.css +83 -0
- package/themes/ibm-oldschool.css +84 -0
- package/themes/ink.css +82 -0
- package/themes/latte.css +80 -0
- package/themes/linen.css +80 -0
- package/themes/meadow.css +80 -0
- package/themes/metropolis.css +85 -0
- package/themes/miami-vice.css +84 -0
- package/themes/midnight.css +80 -0
- package/themes/mint.css +82 -0
- package/themes/moss.css +82 -0
- package/themes/obsidian.css +82 -0
- package/themes/orchid.css +82 -0
- package/themes/packs.json +89 -0
- package/themes/paper.css +83 -0
- package/themes/peony.css +84 -0
- package/themes/porcelain.css +82 -0
- package/themes/pulp-fiction.css +84 -0
- package/themes/reveal-beige.css +87 -0
- package/themes/reveal-black.css +83 -0
- package/themes/reveal-blood.css +84 -0
- package/themes/reveal-dracula.css +83 -0
- package/themes/reveal-league.css +88 -0
- package/themes/reveal-moon.css +83 -0
- package/themes/reveal-night.css +86 -0
- package/themes/reveal-serif.css +82 -0
- package/themes/reveal-simple.css +84 -0
- package/themes/reveal-sky.css +85 -0
- package/themes/reveal-solarized.css +83 -0
- package/themes/reveal-white.css +82 -0
- package/themes/sepia.css +81 -0
- package/themes/seriph.css +82 -0
- package/themes/severance.css +82 -0
- package/themes/slate.css +80 -0
- package/themes/snes.css +82 -0
- package/themes/star-wars.css +85 -0
- package/themes/storm.css +80 -0
- package/themes/stranger-things.css +84 -0
- package/themes/synthwave.css +90 -0
- package/themes/terminator.css +84 -0
- package/themes/velvet.css +80 -0
- package/tools/gemini-tts.mjs +140 -0
- package/tools/publish-site-voices.mjs +71 -0
- package/tools/voiceover-server.mjs +0 -0
- package/tools/voiceover.mjs +155 -0
package/themes/latte.css
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · latte
|
|
3
|
+
light · Steamed milk and espresso — soft, warm café tones
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #f6efe7;
|
|
10
|
+
--bg-accent: #eee2d4;
|
|
11
|
+
--fg: #3b2f2a;
|
|
12
|
+
--muted: #6f5f55;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #6b4226;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #8a5022;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #a15b2e;
|
|
24
|
+
--accent-contrast: #fff5ec;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fcf7f0;
|
|
28
|
+
--block-border: 1px solid #e5d5c2;
|
|
29
|
+
--block-radius: 16px;
|
|
30
|
+
--shadow: 0 8px 26px rgba(110, 70, 40, 0.1);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #eee2d4;
|
|
34
|
+
--code-fg: #3a2f28;
|
|
35
|
+
--hl-keyword: #8a5022;
|
|
36
|
+
--hl-string: #276238;
|
|
37
|
+
--hl-number: #8a2e42;
|
|
38
|
+
--hl-comment: #6d5f52;
|
|
39
|
+
--hl-function: #1d558a;
|
|
40
|
+
--hl-type: #7a3f92;
|
|
41
|
+
--hl-punct: #584a40;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #8a705c;
|
|
45
|
+
--d-text: #3b2f2a;
|
|
46
|
+
--d-muted: #7c6a5e;
|
|
47
|
+
--d-accent: #a15b2e;
|
|
48
|
+
--d-fill-1: #f0dfc8;
|
|
49
|
+
--d-fill-2: #ead8c8;
|
|
50
|
+
--d-fill-3: #f5e5cd;
|
|
51
|
+
--d-fill-4: #e5d2bc;
|
|
52
|
+
--d-fill-5: #f0dcd0;
|
|
53
|
+
--d-fill-6: #ecdabf;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #291f18;
|
|
57
|
+
--term-fg: #ece2d6;
|
|
58
|
+
--term-prompt: #e8a878;
|
|
59
|
+
--term-cursor: #e8a878;
|
|
60
|
+
--term-selection: rgba(232, 168, 120, 0.26);
|
|
61
|
+
--ansi-black: #9c8a7c;
|
|
62
|
+
--ansi-red: #ef8a76;
|
|
63
|
+
--ansi-green: #aac882;
|
|
64
|
+
--ansi-yellow: #e8c06e;
|
|
65
|
+
--ansi-blue: #9cb2d8;
|
|
66
|
+
--ansi-magenta: #cfa2c0;
|
|
67
|
+
--ansi-cyan: #95cab5;
|
|
68
|
+
--ansi-white: #ebe0d4;
|
|
69
|
+
--ansi-bright-black: #ad9c8e;
|
|
70
|
+
--ansi-bright-red: #f4ab97;
|
|
71
|
+
--ansi-bright-green: #c2daa2;
|
|
72
|
+
--ansi-bright-yellow: #f2d295;
|
|
73
|
+
--ansi-bright-blue: #b8c9e8;
|
|
74
|
+
--ansi-bright-magenta: #dfbad2;
|
|
75
|
+
--ansi-bright-cyan: #b2ddcb;
|
|
76
|
+
--ansi-bright-white: #faf4ec;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
package/themes/linen.css
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · linen
|
|
3
|
+
light · Natural fiber — unbleached warm white, olive and clay
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #f8f6f1;
|
|
10
|
+
--bg-accent: #efece2;
|
|
11
|
+
--fg: #3c3a33;
|
|
12
|
+
--muted: #6e6b60;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: Seravek, "Gill Sans", "Segoe UI", Verdana, sans-serif;
|
|
16
|
+
--font-heading: Seravek, "Gill Sans", "Segoe UI", Verdana, sans-serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #55601e;
|
|
19
|
+
--heading-weight: 600;
|
|
20
|
+
--link: #5c6e14;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #5f7d1f;
|
|
24
|
+
--accent-contrast: #f7ffe2;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fdfcf8;
|
|
28
|
+
--block-border: 1px solid #e0dccc;
|
|
29
|
+
--block-radius: 6px;
|
|
30
|
+
--shadow: 0 3px 12px rgba(80, 75, 50, 0.07);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #efece2;
|
|
34
|
+
--code-fg: #3a3830;
|
|
35
|
+
--hl-keyword: #55601e;
|
|
36
|
+
--hl-string: #8a4a10;
|
|
37
|
+
--hl-number: #1d5f8a;
|
|
38
|
+
--hl-comment: #6b685c;
|
|
39
|
+
--hl-function: #256e60;
|
|
40
|
+
--hl-type: #7a3f92;
|
|
41
|
+
--hl-punct: #565348;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #7c7a5e;
|
|
45
|
+
--d-text: #3c3a33;
|
|
46
|
+
--d-muted: #787564;
|
|
47
|
+
--d-accent: #5f7d1f;
|
|
48
|
+
--d-fill-1: #ebe8d2;
|
|
49
|
+
--d-fill-2: #f0ecda;
|
|
50
|
+
--d-fill-3: #e4e4cc;
|
|
51
|
+
--d-fill-4: #f4eed8;
|
|
52
|
+
--d-fill-5: #e8e8d8;
|
|
53
|
+
--d-fill-6: #eee9cd;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #26251d;
|
|
57
|
+
--term-fg: #e8e6da;
|
|
58
|
+
--term-prompt: #c2d078;
|
|
59
|
+
--term-cursor: #c2d078;
|
|
60
|
+
--term-selection: rgba(194, 208, 120, 0.26);
|
|
61
|
+
--ansi-black: #959282;
|
|
62
|
+
--ansi-red: #f08d7c;
|
|
63
|
+
--ansi-green: #b0cc72;
|
|
64
|
+
--ansi-yellow: #e2c368;
|
|
65
|
+
--ansi-blue: #92b2d8;
|
|
66
|
+
--ansi-magenta: #c8a5c8;
|
|
67
|
+
--ansi-cyan: #92ccb2;
|
|
68
|
+
--ansi-white: #e8e5da;
|
|
69
|
+
--ansi-bright-black: #a8a494;
|
|
70
|
+
--ansi-bright-red: #f5ae9e;
|
|
71
|
+
--ansi-bright-green: #c8de95;
|
|
72
|
+
--ansi-bright-yellow: #eed592;
|
|
73
|
+
--ansi-bright-blue: #b0c8e8;
|
|
74
|
+
--ansi-bright-magenta: #dabfda;
|
|
75
|
+
--ansi-bright-cyan: #afdfc8;
|
|
76
|
+
--ansi-bright-white: #fbfaf5;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · meadow
|
|
3
|
+
light · Spring grass and clover — green-tinted daylight
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #f6faf2;
|
|
10
|
+
--bg-accent: #eaf4e2;
|
|
11
|
+
--fg: #26352a;
|
|
12
|
+
--muted: #5c6e60;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #2f6b33;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #2b6a4f;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #357a38;
|
|
24
|
+
--accent-contrast: #f2fff3;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fafafa;
|
|
28
|
+
--block-border: 1px solid #d8e6d0;
|
|
29
|
+
--block-radius: 14px;
|
|
30
|
+
--shadow: 0 6px 20px rgba(46, 90, 50, 0.08);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #e9f2e0;
|
|
34
|
+
--code-fg: #2b3a2e;
|
|
35
|
+
--hl-keyword: #256e28;
|
|
36
|
+
--hl-string: #8a4a10;
|
|
37
|
+
--hl-number: #1d5f8a;
|
|
38
|
+
--hl-comment: #5f6f62;
|
|
39
|
+
--hl-function: #1e5aa8;
|
|
40
|
+
--hl-type: #7a3f92;
|
|
41
|
+
--hl-punct: #4a5a4e;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #5a7560;
|
|
45
|
+
--d-text: #26352a;
|
|
46
|
+
--d-muted: #6b7d6f;
|
|
47
|
+
--d-accent: #3e8e41;
|
|
48
|
+
--d-fill-1: #ddefd2;
|
|
49
|
+
--d-fill-2: #e6f2dc;
|
|
50
|
+
--d-fill-3: #d2ead8;
|
|
51
|
+
--d-fill-4: #eef5d8;
|
|
52
|
+
--d-fill-5: #daedde;
|
|
53
|
+
--d-fill-6: #e2f0ca;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #1c2a1e;
|
|
57
|
+
--term-fg: #dfe9dc;
|
|
58
|
+
--term-prompt: #8fd694;
|
|
59
|
+
--term-cursor: #8fd694;
|
|
60
|
+
--term-selection: rgba(143, 214, 148, 0.26);
|
|
61
|
+
--ansi-black: #87988a;
|
|
62
|
+
--ansi-red: #eb8b80;
|
|
63
|
+
--ansi-green: #8fd694;
|
|
64
|
+
--ansi-yellow: #dcc270;
|
|
65
|
+
--ansi-blue: #88b5e0;
|
|
66
|
+
--ansi-magenta: #c0a0d5;
|
|
67
|
+
--ansi-cyan: #82ccbc;
|
|
68
|
+
--ansi-white: #e2e9df;
|
|
69
|
+
--ansi-bright-black: #9dab9f;
|
|
70
|
+
--ansi-bright-red: #f2ada5;
|
|
71
|
+
--ansi-bright-green: #aee5b2;
|
|
72
|
+
--ansi-bright-yellow: #e8d494;
|
|
73
|
+
--ansi-bright-blue: #aacbea;
|
|
74
|
+
--ansi-bright-magenta: #d4bce5;
|
|
75
|
+
--ansi-bright-cyan: #a5ded2;
|
|
76
|
+
--ansi-bright-white: #f7fbf5;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;600&display=swap');
|
|
2
|
+
|
|
3
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
4
|
+
Decklight theme · metropolis
|
|
5
|
+
light · FiraSans minimalism: paper white, spruce ink, one orange
|
|
6
|
+
Inspired by the Beamer metropolis theme (Matthias Vogelgesang) — palette kept canonical where possible,
|
|
7
|
+
every gated pair fitted to the WCAG contract.
|
|
8
|
+
rule-exception: R3 the canonical metropolis orange (#eb811b) is the identity
|
|
9
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
10
|
+
═══════════════════════════════════════════════════════════════ */
|
|
11
|
+
|
|
12
|
+
.decklight {
|
|
13
|
+
/* ── canvas ─────────────────────────────── */
|
|
14
|
+
--bg: #fafaf8;
|
|
15
|
+
--bg-accent: none;
|
|
16
|
+
--fg: #23373b;
|
|
17
|
+
--muted: #5f7175;
|
|
18
|
+
|
|
19
|
+
/* ── type ───────────────────────────────── */
|
|
20
|
+
--font-body: "Fira Sans", -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
21
|
+
--font-heading: "Fira Sans", -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
22
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
23
|
+
--heading-color: #23373b;
|
|
24
|
+
--heading-weight: 600;
|
|
25
|
+
--link: #c96a12;
|
|
26
|
+
|
|
27
|
+
/* ── accent ─────────────────────────────── */
|
|
28
|
+
--accent: #eb811b;
|
|
29
|
+
--accent-contrast: #333329;
|
|
30
|
+
|
|
31
|
+
/* ── blocks ─────────────────────────────── */
|
|
32
|
+
--block-bg: #f2f2eb;
|
|
33
|
+
--block-border: 1px solid #d9ddda;
|
|
34
|
+
--block-radius: 2px;
|
|
35
|
+
--shadow: 0 3px 12px rgba(35, 55, 59, 0.14);
|
|
36
|
+
|
|
37
|
+
/* ── code ───────────────────────────────── */
|
|
38
|
+
--code-bg: #23373b;
|
|
39
|
+
--code-fg: #eef2f2;
|
|
40
|
+
--hl-keyword: #e2ac5c;
|
|
41
|
+
--hl-string: #86cdbd;
|
|
42
|
+
--hl-number: #e39a72;
|
|
43
|
+
--hl-comment: #7e979b;
|
|
44
|
+
--hl-function: #85bce4;
|
|
45
|
+
--hl-type: #cfc088;
|
|
46
|
+
--hl-punct: #cfdadb;
|
|
47
|
+
|
|
48
|
+
/* ── diagram ────────────────────────────── */
|
|
49
|
+
--d-stroke: #5f7175;
|
|
50
|
+
--d-text: #23373b;
|
|
51
|
+
--d-muted: #5f7175;
|
|
52
|
+
--d-accent: #d06f12;
|
|
53
|
+
--d-fill-1: #e5edee;
|
|
54
|
+
--d-fill-2: #ece4dd;
|
|
55
|
+
--d-fill-3: #dcead5;
|
|
56
|
+
--d-fill-4: #e5eaee;
|
|
57
|
+
--d-fill-5: #ecdde5;
|
|
58
|
+
--d-fill-6: #eae8d5;
|
|
59
|
+
|
|
60
|
+
/* ── terminal ───────────────────────────── */
|
|
61
|
+
--term-bg: #1d2e31;
|
|
62
|
+
--term-fg: #eceae6;
|
|
63
|
+
--term-prompt: #eb811b;
|
|
64
|
+
--term-cursor: #eb811b;
|
|
65
|
+
--term-selection: rgba(235, 129, 27, 0.28);
|
|
66
|
+
--ansi-black: #9f9489;
|
|
67
|
+
--ansi-red: #db8361;
|
|
68
|
+
--ansi-green: #61db7d;
|
|
69
|
+
--ansi-yellow: #dbd461;
|
|
70
|
+
--ansi-blue: #6182db;
|
|
71
|
+
--ansi-magenta: #d861db;
|
|
72
|
+
--ansi-cyan: #61d4db;
|
|
73
|
+
--ansi-white: #e3e0de;
|
|
74
|
+
--ansi-bright-black: #b4ada7;
|
|
75
|
+
--ansi-bright-red: #eba88e;
|
|
76
|
+
--ansi-bright-green: #8eeba3;
|
|
77
|
+
--ansi-bright-yellow: #ebe68e;
|
|
78
|
+
--ansi-bright-blue: #8ea8eb;
|
|
79
|
+
--ansi-bright-magenta: #e98eeb;
|
|
80
|
+
--ansi-bright-cyan: #8ee5eb;
|
|
81
|
+
--ansi-bright-white: #f3f2f2;
|
|
82
|
+
|
|
83
|
+
/* ── builds ─────────────────────────────── */
|
|
84
|
+
--dim-opacity: 0.3;
|
|
85
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · miami-vice
|
|
3
|
+
dark · night-ocean navy, flamingo pink, seafoam teal
|
|
4
|
+
Inspired by Miami Vice — pastel neon over a hot night — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
rule-exception: R2 the neon-night duotone canvas is the identity
|
|
7
|
+
rule-exception: R3 vice pink does not do pastel-muted
|
|
8
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
9
|
+
═══════════════════════════════════════════════════════════════ */
|
|
10
|
+
|
|
11
|
+
.decklight {
|
|
12
|
+
/* ── canvas ─────────────────────────────── */
|
|
13
|
+
--bg: linear-gradient(180deg, #131a2c 0%, #1e1430 100%);
|
|
14
|
+
--bg-accent: none;
|
|
15
|
+
--fg: #f0e9ef;
|
|
16
|
+
--muted: #a89ab4;
|
|
17
|
+
|
|
18
|
+
/* ── type ───────────────────────────────── */
|
|
19
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
20
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
21
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
22
|
+
--heading-color: #57e0c8;
|
|
23
|
+
--heading-weight: 700;
|
|
24
|
+
--link: #f78fc0;
|
|
25
|
+
|
|
26
|
+
/* ── accent ─────────────────────────────── */
|
|
27
|
+
--accent: #ef6fae;
|
|
28
|
+
--accent-contrast: #303027;
|
|
29
|
+
|
|
30
|
+
/* ── blocks ─────────────────────────────── */
|
|
31
|
+
--block-bg: #1f2535;
|
|
32
|
+
--block-border: 1px solid #373b46;
|
|
33
|
+
--block-radius: 10px;
|
|
34
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
35
|
+
|
|
36
|
+
/* ── code ───────────────────────────────── */
|
|
37
|
+
--code-bg: #181022;
|
|
38
|
+
--code-fg: #f0e8f0;
|
|
39
|
+
--hl-keyword: #f78fc0;
|
|
40
|
+
--hl-string: #6fe0c8;
|
|
41
|
+
--hl-number: #f0c880;
|
|
42
|
+
--hl-comment: #8a7a9a;
|
|
43
|
+
--hl-function: #8fb8f8;
|
|
44
|
+
--hl-type: #d8a8f0;
|
|
45
|
+
--hl-punct: #c0b4cc;
|
|
46
|
+
|
|
47
|
+
/* ── diagram ────────────────────────────── */
|
|
48
|
+
--d-stroke: #a89ab4;
|
|
49
|
+
--d-text: #f0e9ef;
|
|
50
|
+
--d-muted: #a89ab4;
|
|
51
|
+
--d-accent: #ef6fae;
|
|
52
|
+
--d-fill-1: #36272f;
|
|
53
|
+
--d-fill-2: #283f3c;
|
|
54
|
+
--d-fill-3: #332848;
|
|
55
|
+
--d-fill-4: #272f36;
|
|
56
|
+
--d-fill-5: #3f3028;
|
|
57
|
+
--d-fill-6: #482848;
|
|
58
|
+
|
|
59
|
+
/* ── terminal ───────────────────────────── */
|
|
60
|
+
--term-bg: #120c1c;
|
|
61
|
+
--term-fg: #e6e6e2;
|
|
62
|
+
--term-prompt: #ef6fae;
|
|
63
|
+
--term-cursor: #ef6fae;
|
|
64
|
+
--term-selection: rgba(239, 111, 174, 0.28);
|
|
65
|
+
--ansi-black: #9a8aa8;
|
|
66
|
+
--ansi-red: #f08a9a;
|
|
67
|
+
--ansi-green: #6fe0c8;
|
|
68
|
+
--ansi-yellow: #f0c880;
|
|
69
|
+
--ansi-blue: #8fb8f8;
|
|
70
|
+
--ansi-magenta: #f78fc0;
|
|
71
|
+
--ansi-cyan: #7fe0e8;
|
|
72
|
+
--ansi-white: #f4eef4;
|
|
73
|
+
--ansi-bright-black: #b8adc2;
|
|
74
|
+
--ansi-bright-red: #f7c0c9;
|
|
75
|
+
--ansi-bright-green: #a1ebdb;
|
|
76
|
+
--ansi-bright-yellow: #f6e0b7;
|
|
77
|
+
--ansi-bright-blue: #c9ddfc;
|
|
78
|
+
--ansi-bright-magenta: #fbc8e0;
|
|
79
|
+
--ansi-bright-cyan: #b3edf1;
|
|
80
|
+
--ansi-bright-white: #f7f3f7;
|
|
81
|
+
|
|
82
|
+
/* ── builds ─────────────────────────────── */
|
|
83
|
+
--dim-opacity: 0.28;
|
|
84
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · midnight
|
|
3
|
+
dark · Late-night indigo and warm lamplight amber — the hacking hour
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #1a1c2f;
|
|
10
|
+
--bg-accent: #1a2048;
|
|
11
|
+
--fg: #e4e7fb;
|
|
12
|
+
--muted: #a2a9d6;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #ffd9a0;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #8fb5ff;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #e7b16c;
|
|
24
|
+
--accent-contrast: #2b1800;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #1a1f45;
|
|
28
|
+
--block-border: 1px solid #2c3468;
|
|
29
|
+
--block-radius: 10px;
|
|
30
|
+
--shadow: 0 10px 32px rgba(4, 6, 24, 0.6);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #0e1129;
|
|
34
|
+
--code-fg: #dde2fa;
|
|
35
|
+
--hl-keyword: #ffb454;
|
|
36
|
+
--hl-string: #8be8ad;
|
|
37
|
+
--hl-number: #ff9e9e;
|
|
38
|
+
--hl-comment: #7f87b8;
|
|
39
|
+
--hl-function: #8fb5ff;
|
|
40
|
+
--hl-type: #c5aaff;
|
|
41
|
+
--hl-punct: #a9b0d8;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #5b64a8;
|
|
45
|
+
--d-text: #e4e7fb;
|
|
46
|
+
--d-muted: #9098c8;
|
|
47
|
+
--d-accent: #ffb454;
|
|
48
|
+
--d-fill-1: #1e2452;
|
|
49
|
+
--d-fill-2: #252c63;
|
|
50
|
+
--d-fill-3: #2b2350;
|
|
51
|
+
--d-fill-4: #1f2f5e;
|
|
52
|
+
--d-fill-5: #2c3158;
|
|
53
|
+
--d-fill-6: #232858;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #0a0d22;
|
|
57
|
+
--term-fg: #d9defa;
|
|
58
|
+
--term-prompt: #ffb454;
|
|
59
|
+
--term-cursor: #ffb454;
|
|
60
|
+
--term-selection: rgba(255, 180, 84, 0.26);
|
|
61
|
+
--ansi-black: #828ab8;
|
|
62
|
+
--ansi-red: #ff8298;
|
|
63
|
+
--ansi-green: #7fe0a8;
|
|
64
|
+
--ansi-yellow: #ffce73;
|
|
65
|
+
--ansi-blue: #82aaff;
|
|
66
|
+
--ansi-magenta: #c79bf5;
|
|
67
|
+
--ansi-cyan: #79dce8;
|
|
68
|
+
--ansi-white: #e2e6fa;
|
|
69
|
+
--ansi-bright-black: #9aa2cc;
|
|
70
|
+
--ansi-bright-red: #ffa8b8;
|
|
71
|
+
--ansi-bright-green: #a5ecc3;
|
|
72
|
+
--ansi-bright-yellow: #ffdf9c;
|
|
73
|
+
--ansi-bright-blue: #a8c4ff;
|
|
74
|
+
--ansi-bright-magenta: #dbbcfa;
|
|
75
|
+
--ansi-bright-cyan: #a3e9f0;
|
|
76
|
+
--ansi-bright-white: #fafafa;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.3;
|
|
80
|
+
}
|
package/themes/mint.css
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&display=swap');
|
|
2
|
+
|
|
3
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
4
|
+
Decklight theme · mint
|
|
5
|
+
light · Cool spearmint SaaS-fresh — pill shapes, modern grotesk
|
|
6
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #f2faf7;
|
|
12
|
+
--bg-accent: #e2f4ec;
|
|
13
|
+
--fg: #1f3a34;
|
|
14
|
+
--muted: #546b64;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: "Space Grotesk", "Avenir Next", Avenir, Futura, "Century Gothic", "Segoe UI", sans-serif;
|
|
19
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #0b6653;
|
|
21
|
+
--heading-weight: 700;
|
|
22
|
+
--link: #0c7a63;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #13725c;
|
|
26
|
+
--accent-contrast: #eafff8;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #fafafa;
|
|
30
|
+
--block-border: 1px solid #cfe8dd;
|
|
31
|
+
--block-radius: 22px;
|
|
32
|
+
--shadow: 0 6px 24px rgba(13, 147, 115, 0.09);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #e2f2eb;
|
|
36
|
+
--code-fg: #22403a;
|
|
37
|
+
--hl-keyword: #0c7a63;
|
|
38
|
+
--hl-string: #8a4a10;
|
|
39
|
+
--hl-number: #b3216a;
|
|
40
|
+
--hl-comment: #5c7068;
|
|
41
|
+
--hl-function: #1e5aa8;
|
|
42
|
+
--hl-type: #7038d8;
|
|
43
|
+
--hl-punct: #42584f;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #4d7a6d;
|
|
47
|
+
--d-text: #1f3a34;
|
|
48
|
+
--d-muted: #618078;
|
|
49
|
+
--d-accent: #0d9373;
|
|
50
|
+
--d-fill-1: #cdeee0;
|
|
51
|
+
--d-fill-2: #daf2e8;
|
|
52
|
+
--d-fill-3: #c2e8dc;
|
|
53
|
+
--d-fill-4: #e5f5e0;
|
|
54
|
+
--d-fill-5: #d2eee8;
|
|
55
|
+
--d-fill-6: #ddf0d5;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #132a24;
|
|
59
|
+
--term-fg: #d9e8e2;
|
|
60
|
+
--term-prompt: #5ce8bb;
|
|
61
|
+
--term-cursor: #5ce8bb;
|
|
62
|
+
--term-selection: rgba(92, 232, 187, 0.26);
|
|
63
|
+
--ansi-black: #7e948c;
|
|
64
|
+
--ansi-red: #f0897e;
|
|
65
|
+
--ansi-green: #5ce0a8;
|
|
66
|
+
--ansi-yellow: #dcc26e;
|
|
67
|
+
--ansi-blue: #7eb2e0;
|
|
68
|
+
--ansi-magenta: #c2a0d8;
|
|
69
|
+
--ansi-cyan: #6cd5ca;
|
|
70
|
+
--ansi-white: #dee9e4;
|
|
71
|
+
--ansi-bright-black: #97a8a1;
|
|
72
|
+
--ansi-bright-red: #f5aba2;
|
|
73
|
+
--ansi-bright-green: #8feec5;
|
|
74
|
+
--ansi-bright-yellow: #ead294;
|
|
75
|
+
--ansi-bright-blue: #a5caec;
|
|
76
|
+
--ansi-bright-magenta: #d6bce5;
|
|
77
|
+
--ansi-bright-cyan: #98e5dc;
|
|
78
|
+
--ansi-bright-white: #f4fbf8;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.35;
|
|
82
|
+
}
|
package/themes/moss.css
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · moss
|
|
3
|
+
dark · Old-forest greens with bookish serif headings — damp and calm
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #141a14;
|
|
10
|
+
--bg-accent: #1b241b;
|
|
11
|
+
--fg: #e9f0e2;
|
|
12
|
+
--muted: #adbfa5;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #cfe6b8;
|
|
19
|
+
--heading-weight: 600;
|
|
20
|
+
--link: #a8d888;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #9ccc65;
|
|
24
|
+
--accent-contrast: #15250a;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #1c241c;
|
|
28
|
+
--block-border: 1px solid #2d3a2b;
|
|
29
|
+
--block-radius: 8px;
|
|
30
|
+
--shadow: 0 8px 24px rgba(3, 8, 3, 0.55);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #101610;
|
|
34
|
+
--code-fg: #e2ead9;
|
|
35
|
+
--hl-keyword: #a8d888;
|
|
36
|
+
--hl-string: #d5c586;
|
|
37
|
+
--hl-number: #8fd0b5;
|
|
38
|
+
--hl-comment: #8ba083;
|
|
39
|
+
--hl-function: #9cc0e8;
|
|
40
|
+
--hl-type: #c5b8e0;
|
|
41
|
+
--hl-punct: #aebfa6;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #6f8a62;
|
|
45
|
+
--d-text: #e9f0e2;
|
|
46
|
+
--d-muted: #9cae93;
|
|
47
|
+
--d-accent: #9ccc65;
|
|
48
|
+
--d-fill-1: #1f2a1c;
|
|
49
|
+
--d-fill-2: #243522;
|
|
50
|
+
--d-fill-3: #2b2f1e;
|
|
51
|
+
--d-fill-4: #1e3226;
|
|
52
|
+
--d-fill-5: #293225;
|
|
53
|
+
--d-fill-6: #222d20;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #0d120d;
|
|
57
|
+
--term-fg: #dfe8d6;
|
|
58
|
+
--term-prompt: #9ccc65;
|
|
59
|
+
--term-cursor: #9ccc65;
|
|
60
|
+
--term-selection: rgba(156, 204, 101, 0.26);
|
|
61
|
+
--ansi-black: #899a82;
|
|
62
|
+
--ansi-red: #e88a80;
|
|
63
|
+
--ansi-green: #9ccc65;
|
|
64
|
+
--ansi-yellow: #d9c26b;
|
|
65
|
+
--ansi-blue: #8ab0d8;
|
|
66
|
+
--ansi-magenta: #c0a0d0;
|
|
67
|
+
--ansi-cyan: #8bccb8;
|
|
68
|
+
--ansi-white: #e6ecdd;
|
|
69
|
+
--ansi-bright-black: #a0b098;
|
|
70
|
+
--ansi-bright-red: #f2aaa2;
|
|
71
|
+
--ansi-bright-green: #b8e08c;
|
|
72
|
+
--ansi-bright-yellow: #e8d494;
|
|
73
|
+
--ansi-bright-blue: #a8c8e8;
|
|
74
|
+
--ansi-bright-magenta: #d5bce2;
|
|
75
|
+
--ansi-bright-cyan: #abdccd;
|
|
76
|
+
--ansi-bright-white: #fbfef7;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.32;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.decklight h1, .decklight h2 { font-style: italic; }
|