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
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600&display=swap');
|
|
2
|
+
|
|
3
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
4
|
+
Decklight theme · reveal-sky
|
|
5
|
+
light · pale sky wash, rounded type, sea-blue links
|
|
6
|
+
Inspired by Reveal.js 'sky' — palette kept canonical where possible,
|
|
7
|
+
every gated pair fitted to the WCAG contract.
|
|
8
|
+
rule-exception: R2 the canonical sky wash canvas
|
|
9
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
10
|
+
═══════════════════════════════════════════════════════════════ */
|
|
11
|
+
|
|
12
|
+
.decklight {
|
|
13
|
+
/* ── canvas ─────────────────────────────── */
|
|
14
|
+
--bg: linear-gradient(180deg, #f7fbfc 0%, #add9e4 100%);
|
|
15
|
+
--bg-accent: none;
|
|
16
|
+
--fg: #333333;
|
|
17
|
+
--muted: #5f7078;
|
|
18
|
+
|
|
19
|
+
/* ── type ───────────────────────────────── */
|
|
20
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
21
|
+
--font-heading: Quicksand, ui-rounded, "SF Pro Rounded", "Segoe UI", sans-serif;
|
|
22
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
23
|
+
--heading-color: #333333;
|
|
24
|
+
--heading-weight: 600;
|
|
25
|
+
--link: #3b759e;
|
|
26
|
+
|
|
27
|
+
/* ── accent ─────────────────────────────── */
|
|
28
|
+
--accent: #3b759e;
|
|
29
|
+
--accent-contrast: #fbfbfa;
|
|
30
|
+
|
|
31
|
+
/* ── blocks ─────────────────────────────── */
|
|
32
|
+
--block-bg: #ecf2f3;
|
|
33
|
+
--block-border: 1px solid #d0d9dc;
|
|
34
|
+
--block-radius: 8px;
|
|
35
|
+
--shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
|
|
36
|
+
|
|
37
|
+
/* ── code ───────────────────────────────── */
|
|
38
|
+
--code-bg: #272822;
|
|
39
|
+
--code-fg: #f8f8f2;
|
|
40
|
+
--hl-keyword: #fa4e8c;
|
|
41
|
+
--hl-string: #e6db74;
|
|
42
|
+
--hl-number: #ae81ff;
|
|
43
|
+
--hl-comment: #787460;
|
|
44
|
+
--hl-function: #a6e22e;
|
|
45
|
+
--hl-type: #66d9ef;
|
|
46
|
+
--hl-punct: #f8f8f2;
|
|
47
|
+
|
|
48
|
+
/* ── diagram ────────────────────────────── */
|
|
49
|
+
--d-stroke: #5f7078;
|
|
50
|
+
--d-text: #333333;
|
|
51
|
+
--d-muted: #5f7078;
|
|
52
|
+
--d-accent: #3b759e;
|
|
53
|
+
--d-fill-1: #e6edef;
|
|
54
|
+
--d-fill-2: #dee2ec;
|
|
55
|
+
--d-fill-3: #ebe1d5;
|
|
56
|
+
--d-fill-4: #ece6ef;
|
|
57
|
+
--d-fill-5: #e5ecde;
|
|
58
|
+
--d-fill-6: #d5ebe4;
|
|
59
|
+
|
|
60
|
+
/* ── terminal ───────────────────────────── */
|
|
61
|
+
--term-bg: #1d282b;
|
|
62
|
+
--term-fg: #eceae6;
|
|
63
|
+
--term-prompt: #3e7aa5;
|
|
64
|
+
--term-cursor: #3e7aa5;
|
|
65
|
+
--term-selection: rgba(59, 117, 158, 0.28);
|
|
66
|
+
--ansi-black: #89969f;
|
|
67
|
+
--ansi-red: #c38a79;
|
|
68
|
+
--ansi-green: #79c387;
|
|
69
|
+
--ansi-yellow: #c3bb79;
|
|
70
|
+
--ansi-blue: #7991c3;
|
|
71
|
+
--ansi-magenta: #be79c3;
|
|
72
|
+
--ansi-cyan: #79c2c3;
|
|
73
|
+
--ansi-white: #dee1e3;
|
|
74
|
+
--ansi-bright-black: #a7afb4;
|
|
75
|
+
--ansi-bright-red: #dbac9e;
|
|
76
|
+
--ansi-bright-green: #9edba9;
|
|
77
|
+
--ansi-bright-yellow: #dbd59e;
|
|
78
|
+
--ansi-bright-blue: #9eb2db;
|
|
79
|
+
--ansi-bright-magenta: #d79edb;
|
|
80
|
+
--ansi-bright-cyan: #9edadb;
|
|
81
|
+
--ansi-bright-white: #f2f2f3;
|
|
82
|
+
|
|
83
|
+
/* ── builds ─────────────────────────────── */
|
|
84
|
+
--dim-opacity: 0.3;
|
|
85
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · reveal-solarized
|
|
3
|
+
light · the canonical base3 cream, equal-lightness accents
|
|
4
|
+
Inspired by Reveal.js 'solarized' / Ethan Schoonover's Solarized Light — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
rule-exception: R2 the canonical Solarized base3 cream canvas
|
|
7
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
8
|
+
═══════════════════════════════════════════════════════════════ */
|
|
9
|
+
|
|
10
|
+
.decklight {
|
|
11
|
+
/* ── canvas ─────────────────────────────── */
|
|
12
|
+
--bg: #fdf6e3;
|
|
13
|
+
--bg-accent: none;
|
|
14
|
+
--fg: #5e737a;
|
|
15
|
+
--muted: #7d8e8e;
|
|
16
|
+
|
|
17
|
+
/* ── type ───────────────────────────────── */
|
|
18
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
19
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
20
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
21
|
+
--heading-color: #586e75;
|
|
22
|
+
--heading-weight: 600;
|
|
23
|
+
--link: #268bd2;
|
|
24
|
+
|
|
25
|
+
/* ── accent ─────────────────────────────── */
|
|
26
|
+
--accent: #268bd2;
|
|
27
|
+
--accent-contrast: #1c1c17;
|
|
28
|
+
|
|
29
|
+
/* ── blocks ─────────────────────────────── */
|
|
30
|
+
--block-bg: #ece9e0;
|
|
31
|
+
--block-border: 1px solid #d3d0c5;
|
|
32
|
+
--block-radius: 8px;
|
|
33
|
+
--shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
|
|
34
|
+
|
|
35
|
+
/* ── code ───────────────────────────────── */
|
|
36
|
+
--code-bg: #eee8d5;
|
|
37
|
+
--code-fg: #54696f;
|
|
38
|
+
--hl-keyword: #5d6b00;
|
|
39
|
+
--hl-string: #1d706a;
|
|
40
|
+
--hl-number: #bc2970;
|
|
41
|
+
--hl-comment: #738484;
|
|
42
|
+
--hl-function: #1d6ca2;
|
|
43
|
+
--hl-type: #826200;
|
|
44
|
+
--hl-punct: #55686f;
|
|
45
|
+
|
|
46
|
+
/* ── diagram ────────────────────────────── */
|
|
47
|
+
--d-stroke: #93a1a1;
|
|
48
|
+
--d-text: #657b83;
|
|
49
|
+
--d-muted: #738484;
|
|
50
|
+
--d-accent: #2485c9;
|
|
51
|
+
--d-fill-1: #e7e4da;
|
|
52
|
+
--d-fill-2: #e6d8d2;
|
|
53
|
+
--d-fill-3: #c9d9e4;
|
|
54
|
+
--d-fill-4: #e6e7da;
|
|
55
|
+
--d-fill-5: #e6d2db;
|
|
56
|
+
--d-fill-6: #c9e4e2;
|
|
57
|
+
|
|
58
|
+
/* ── terminal ───────────────────────────── */
|
|
59
|
+
--term-bg: #002b36;
|
|
60
|
+
--term-fg: #eceae6;
|
|
61
|
+
--term-prompt: #268bd2;
|
|
62
|
+
--term-cursor: #268bd2;
|
|
63
|
+
--term-selection: rgba(38, 139, 210, 0.28);
|
|
64
|
+
--ansi-black: #93a1a1;
|
|
65
|
+
--ansi-red: #dc322f;
|
|
66
|
+
--ansi-green: #859900;
|
|
67
|
+
--ansi-yellow: #b58900;
|
|
68
|
+
--ansi-blue: #268bd2;
|
|
69
|
+
--ansi-magenta: #d33682;
|
|
70
|
+
--ansi-cyan: #2aa198;
|
|
71
|
+
--ansi-white: #eee8d5;
|
|
72
|
+
--ansi-bright-black: #b4bdbd;
|
|
73
|
+
--ansi-bright-red: #e56663;
|
|
74
|
+
--ansi-bright-green: #bad600;
|
|
75
|
+
--ansi-bright-yellow: #f2b700;
|
|
76
|
+
--ansi-bright-blue: #55a7e0;
|
|
77
|
+
--ansi-bright-magenta: #de68a1;
|
|
78
|
+
--ansi-bright-cyan: #3cccc1;
|
|
79
|
+
--ansi-bright-white: #f9f7f0;
|
|
80
|
+
|
|
81
|
+
/* ── builds ─────────────────────────────── */
|
|
82
|
+
--dim-opacity: 0.3;
|
|
83
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · reveal-white
|
|
3
|
+
light · plain white, dark ink, Reveal blue links, monokai code
|
|
4
|
+
Inspired by Reveal.js 'white' — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #fdfdfd;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #20242a;
|
|
14
|
+
--muted: #6d727b;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
19
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #20242a;
|
|
21
|
+
--heading-weight: 600;
|
|
22
|
+
--link: #2a76dd;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #226ed6;
|
|
26
|
+
--accent-contrast: #fbfbfa;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #f3f2f2;
|
|
30
|
+
--block-border: 1px solid #dfd4d4;
|
|
31
|
+
--block-radius: 8px;
|
|
32
|
+
--shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #272822;
|
|
36
|
+
--code-fg: #f8f8f2;
|
|
37
|
+
--hl-keyword: #fa4e8c;
|
|
38
|
+
--hl-string: #e6db74;
|
|
39
|
+
--hl-number: #ae81ff;
|
|
40
|
+
--hl-comment: #787460;
|
|
41
|
+
--hl-function: #a6e22e;
|
|
42
|
+
--hl-type: #66d9ef;
|
|
43
|
+
--hl-punct: #f8f8f2;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #6d727b;
|
|
47
|
+
--d-text: #20242a;
|
|
48
|
+
--d-muted: #6d727b;
|
|
49
|
+
--d-accent: #226ed6;
|
|
50
|
+
--d-fill-1: #f2eaea;
|
|
51
|
+
--d-fill-2: #efe9e2;
|
|
52
|
+
--d-fill-3: #dae7ed;
|
|
53
|
+
--d-fill-4: #eef2ea;
|
|
54
|
+
--d-fill-5: #e7e2ef;
|
|
55
|
+
--d-fill-6: #eddae4;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #2b1d1d;
|
|
59
|
+
--term-fg: #eceae6;
|
|
60
|
+
--term-prompt: #226ed6;
|
|
61
|
+
--term-cursor: #226ed6;
|
|
62
|
+
--term-selection: rgba(34, 110, 214, 0.28);
|
|
63
|
+
--ansi-black: #89929f;
|
|
64
|
+
--ansi-red: #d36d69;
|
|
65
|
+
--ansi-green: #6bd369;
|
|
66
|
+
--ansi-yellow: #d3b369;
|
|
67
|
+
--ansi-blue: #69a0d3;
|
|
68
|
+
--ansi-magenta: #b669d3;
|
|
69
|
+
--ansi-cyan: #69d3bf;
|
|
70
|
+
--ansi-white: #dee0e3;
|
|
71
|
+
--ansi-bright-black: #a7acb4;
|
|
72
|
+
--ansi-bright-red: #e69693;
|
|
73
|
+
--ansi-bright-green: #95e693;
|
|
74
|
+
--ansi-bright-yellow: #e6cd93;
|
|
75
|
+
--ansi-bright-blue: #93bee6;
|
|
76
|
+
--ansi-bright-magenta: #d093e6;
|
|
77
|
+
--ansi-bright-cyan: #93e6d7;
|
|
78
|
+
--ansi-bright-white: #f2f2f3;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.3;
|
|
82
|
+
}
|
package/themes/sepia.css
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · sepia
|
|
3
|
+
light · Antique folio — old-book paper, oxblood ink, light terminal
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #ebe4d6;
|
|
10
|
+
--bg-accent: #e8dabc;
|
|
11
|
+
--fg: #463522;
|
|
12
|
+
--muted: #75634a;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, 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: #5c3317;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #7d2a20;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #8a2e2e;
|
|
24
|
+
--accent-contrast: #fdf2ee;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #f7efdd;
|
|
28
|
+
--block-border: 1px solid #d5c4a2;
|
|
29
|
+
--block-radius: 4px;
|
|
30
|
+
--shadow: 0 3px 10px rgba(90, 60, 20, 0.12);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #e8dabc;
|
|
34
|
+
--code-fg: #43331f;
|
|
35
|
+
--hl-keyword: #7d2a20;
|
|
36
|
+
--hl-string: #2f5c28;
|
|
37
|
+
--hl-number: #1d4d78;
|
|
38
|
+
--hl-comment: #6d5c42;
|
|
39
|
+
--hl-function: #5c3a8a;
|
|
40
|
+
--hl-type: #0d5c5c;
|
|
41
|
+
--hl-punct: #5c4a30;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #7d6845;
|
|
45
|
+
--d-text: #463522;
|
|
46
|
+
--d-muted: #7a684e;
|
|
47
|
+
--d-accent: #8a2e2e;
|
|
48
|
+
--d-fill-1: #ead9b4;
|
|
49
|
+
--d-fill-2: #e2d2ae;
|
|
50
|
+
--d-fill-3: #efe0be;
|
|
51
|
+
--d-fill-4: #dccca6;
|
|
52
|
+
--d-fill-5: #e6d6b2;
|
|
53
|
+
--d-fill-6: #eddebb;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #e8dabc;
|
|
57
|
+
--term-fg: #43331f;
|
|
58
|
+
--term-prompt: #7d2a20;
|
|
59
|
+
--term-cursor: #43331f;
|
|
60
|
+
--term-selection: rgba(125, 42, 32, 0.18);
|
|
61
|
+
--term-chrome: none;
|
|
62
|
+
--ansi-black: #43331f;
|
|
63
|
+
--ansi-red: #8c2318;
|
|
64
|
+
--ansi-green: #2f5c28;
|
|
65
|
+
--ansi-yellow: #6d4a00;
|
|
66
|
+
--ansi-blue: #1d4d78;
|
|
67
|
+
--ansi-magenta: #68306d;
|
|
68
|
+
--ansi-cyan: #0d5c5c;
|
|
69
|
+
--ansi-white: #6d5c42;
|
|
70
|
+
--ansi-bright-black: #5c4a30;
|
|
71
|
+
--ansi-bright-red: #701a10;
|
|
72
|
+
--ansi-bright-green: #254a20;
|
|
73
|
+
--ansi-bright-yellow: #5c3e00;
|
|
74
|
+
--ansi-bright-blue: #173e62;
|
|
75
|
+
--ansi-bright-magenta: #552758;
|
|
76
|
+
--ansi-bright-cyan: #0a4a4a;
|
|
77
|
+
--ansi-bright-white: #847252;
|
|
78
|
+
|
|
79
|
+
/* ── builds ─────────────────────────────── */
|
|
80
|
+
--dim-opacity: 0.4;
|
|
81
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · seriph
|
|
3
|
+
light · warm white, quiet serif display, a single restrained gold
|
|
4
|
+
Inspired by Slidev's 'seriph' aesthetic — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #fdfcf9;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #2b2a27;
|
|
14
|
+
--muted: #807b71;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
|
|
19
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #1f1e1b;
|
|
21
|
+
--heading-weight: 600;
|
|
22
|
+
--link: #8a6d33;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #9c7c3c;
|
|
26
|
+
--accent-contrast: #171712;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #f4f3ed;
|
|
30
|
+
--block-border: 1px solid #e4e0d5;
|
|
31
|
+
--block-radius: 4px;
|
|
32
|
+
--shadow: 0 4px 14px rgba(40, 36, 28, 0.10);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #26241f;
|
|
36
|
+
--code-fg: #ece9e2;
|
|
37
|
+
--hl-keyword: #d8b56a;
|
|
38
|
+
--hl-string: #a8bd8c;
|
|
39
|
+
--hl-number: #d89a72;
|
|
40
|
+
--hl-comment: #8b8778;
|
|
41
|
+
--hl-function: #9ebcd8;
|
|
42
|
+
--hl-type: #cfc39d;
|
|
43
|
+
--hl-punct: #b5b2a8;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #807b71;
|
|
47
|
+
--d-text: #2b2a27;
|
|
48
|
+
--d-muted: #807b71;
|
|
49
|
+
--d-accent: #9c7c3c;
|
|
50
|
+
--d-fill-1: #f0ede7;
|
|
51
|
+
--d-fill-2: #ede4e0;
|
|
52
|
+
--d-fill-3: #d7e2ec;
|
|
53
|
+
--d-fill-4: #ecf0e7;
|
|
54
|
+
--d-fill-5: #e7e0ed;
|
|
55
|
+
--d-fill-6: #ecd7e2;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #2b271d;
|
|
59
|
+
--term-fg: #eceae6;
|
|
60
|
+
--term-prompt: #9c7c3c;
|
|
61
|
+
--term-cursor: #9c7c3c;
|
|
62
|
+
--term-selection: rgba(156, 124, 60, 0.28);
|
|
63
|
+
--ansi-black: #9f9789;
|
|
64
|
+
--ansi-red: #c37f79;
|
|
65
|
+
--ansi-green: #79c37c;
|
|
66
|
+
--ansi-yellow: #c3b179;
|
|
67
|
+
--ansi-blue: #799cc3;
|
|
68
|
+
--ansi-magenta: #b379c3;
|
|
69
|
+
--ansi-cyan: #79c3b9;
|
|
70
|
+
--ansi-white: #e3e1de;
|
|
71
|
+
--ansi-bright-black: #b4b0a7;
|
|
72
|
+
--ansi-bright-red: #dba39e;
|
|
73
|
+
--ansi-bright-green: #9edba0;
|
|
74
|
+
--ansi-bright-yellow: #dbcc9e;
|
|
75
|
+
--ansi-bright-blue: #9ebbdb;
|
|
76
|
+
--ansi-bright-magenta: #ce9edb;
|
|
77
|
+
--ansi-bright-cyan: #9edbd3;
|
|
78
|
+
--ansi-bright-white: #f3f2f2;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.3;
|
|
82
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · severance
|
|
3
|
+
dark · lumon midnight, cold fluorescent teal, unsettling calm
|
|
4
|
+
Inspired by Severance — the severed floor and its green terminals — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #06131c;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #cfe4e4;
|
|
14
|
+
--muted: #7fa0a4;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
19
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #a8e8dc;
|
|
21
|
+
--heading-weight: 500;
|
|
22
|
+
--link: #6fd0c0;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #48b8a4;
|
|
26
|
+
--accent-contrast: #131313;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #141c22;
|
|
30
|
+
--block-border: 1px solid #2a3135;
|
|
31
|
+
--block-radius: 4px;
|
|
32
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #0a1c26;
|
|
36
|
+
--code-fg: #c8e8e4;
|
|
37
|
+
--hl-keyword: #7fe0d0;
|
|
38
|
+
--hl-string: #a8d0e8;
|
|
39
|
+
--hl-number: #d0e090;
|
|
40
|
+
--hl-comment: #5f8084;
|
|
41
|
+
--hl-function: #98c8f0;
|
|
42
|
+
--hl-type: #c0e8c8;
|
|
43
|
+
--hl-punct: #8fb0b4;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #7fa0a4;
|
|
47
|
+
--d-text: #cfe4e4;
|
|
48
|
+
--d-muted: #7fa0a4;
|
|
49
|
+
--d-accent: #48b8a4;
|
|
50
|
+
--d-fill-1: #1b2525;
|
|
51
|
+
--d-fill-2: #1d282e;
|
|
52
|
+
--d-fill-3: #1f3632;
|
|
53
|
+
--d-fill-4: #1b1f25;
|
|
54
|
+
--d-fill-5: #1d2e27;
|
|
55
|
+
--d-fill-6: #1f2336;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #040e15;
|
|
59
|
+
--term-fg: #e6e6e2;
|
|
60
|
+
--term-prompt: #48b8a4;
|
|
61
|
+
--term-cursor: #48b8a4;
|
|
62
|
+
--term-selection: rgba(72, 184, 164, 0.28);
|
|
63
|
+
--ansi-black: #6f9094;
|
|
64
|
+
--ansi-red: #e09088;
|
|
65
|
+
--ansi-green: #8fd8b8;
|
|
66
|
+
--ansi-yellow: #d0d090;
|
|
67
|
+
--ansi-blue: #88b8e0;
|
|
68
|
+
--ansi-magenta: #b0a0d0;
|
|
69
|
+
--ansi-cyan: #7fe0d0;
|
|
70
|
+
--ansi-white: #e0efee;
|
|
71
|
+
--ansi-bright-black: #92abae;
|
|
72
|
+
--ansi-bright-red: #edbdb9;
|
|
73
|
+
--ansi-bright-green: #bce8d5;
|
|
74
|
+
--ansi-bright-yellow: #e2e2bb;
|
|
75
|
+
--ansi-bright-blue: #b9d5ed;
|
|
76
|
+
--ansi-bright-magenta: #d2c9e4;
|
|
77
|
+
--ansi-bright-cyan: #b0ece2;
|
|
78
|
+
--ansi-bright-white: #f2f8f8;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.25;
|
|
82
|
+
}
|
package/themes/slate.css
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · slate
|
|
3
|
+
light · Boardroom neutral — deliberately safe, steel-blue accent
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #fafafa;
|
|
10
|
+
--bg-accent: #f1f5f9;
|
|
11
|
+
--fg: #334155;
|
|
12
|
+
--muted: #64748b;
|
|
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: #0f172a;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #1d4ed8;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #3268de;
|
|
24
|
+
--accent-contrast: #eff6ff;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #f8fafc;
|
|
28
|
+
--block-border: 1px solid #e2e8f0;
|
|
29
|
+
--block-radius: 8px;
|
|
30
|
+
--shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #f1f5f9;
|
|
34
|
+
--code-fg: #31405a;
|
|
35
|
+
--hl-keyword: #1d4ed8;
|
|
36
|
+
--hl-string: #15803d;
|
|
37
|
+
--hl-number: #b91c1c;
|
|
38
|
+
--hl-comment: #64748b;
|
|
39
|
+
--hl-function: #7038d8;
|
|
40
|
+
--hl-type: #0e7490;
|
|
41
|
+
--hl-punct: #475569;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #64748b;
|
|
45
|
+
--d-text: #334155;
|
|
46
|
+
--d-muted: #71809a;
|
|
47
|
+
--d-accent: #2563eb;
|
|
48
|
+
--d-fill-1: #dbeafe;
|
|
49
|
+
--d-fill-2: #e2e8f0;
|
|
50
|
+
--d-fill-3: #dcfce7;
|
|
51
|
+
--d-fill-4: #fef3c7;
|
|
52
|
+
--d-fill-5: #ede9fe;
|
|
53
|
+
--d-fill-6: #cffafe;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #0f172a;
|
|
57
|
+
--term-fg: #e2e8f0;
|
|
58
|
+
--term-prompt: #7dd3fc;
|
|
59
|
+
--term-cursor: #7dd3fc;
|
|
60
|
+
--term-selection: rgba(125, 211, 252, 0.28);
|
|
61
|
+
--ansi-black: #8494ab;
|
|
62
|
+
--ansi-red: #f87171;
|
|
63
|
+
--ansi-green: #4ade80;
|
|
64
|
+
--ansi-yellow: #facc15;
|
|
65
|
+
--ansi-blue: #60a5fa;
|
|
66
|
+
--ansi-magenta: #c084fc;
|
|
67
|
+
--ansi-cyan: #22d3ee;
|
|
68
|
+
--ansi-white: #e2e8f0;
|
|
69
|
+
--ansi-bright-black: #94a3b8;
|
|
70
|
+
--ansi-bright-red: #fca5a5;
|
|
71
|
+
--ansi-bright-green: #86efac;
|
|
72
|
+
--ansi-bright-yellow: #fde047;
|
|
73
|
+
--ansi-bright-blue: #93c5fd;
|
|
74
|
+
--ansi-bright-magenta: #d8b4fe;
|
|
75
|
+
--ansi-bright-cyan: #67e8f9;
|
|
76
|
+
--ansi-bright-white: #f8fafc;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
package/themes/snes.css
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · snes
|
|
3
|
+
light · console gray, purple accents, ABXY color pops
|
|
4
|
+
Inspired by the Super Nintendo console + its four action buttons — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #d8d8dd;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #26262e;
|
|
14
|
+
--muted: #5f5f6c;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
19
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #3c33a0;
|
|
21
|
+
--heading-weight: 700;
|
|
22
|
+
--link: #4f43ae;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #5546c8;
|
|
26
|
+
--accent-contrast: #fbfbfa;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #cbcbd5;
|
|
30
|
+
--block-border: 1px solid #adadc1;
|
|
31
|
+
--block-radius: 10px;
|
|
32
|
+
--shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #26262e;
|
|
36
|
+
--code-fg: #e8e8ee;
|
|
37
|
+
--hl-keyword: #b2a5fc;
|
|
38
|
+
--hl-string: #8bdc9d;
|
|
39
|
+
--hl-number: #f0d060;
|
|
40
|
+
--hl-comment: #8a8a97;
|
|
41
|
+
--hl-function: #7fc0f0;
|
|
42
|
+
--hl-type: #f0a0a8;
|
|
43
|
+
--hl-punct: #c8c8d4;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #5f5f6c;
|
|
47
|
+
--d-text: #26262e;
|
|
48
|
+
--d-muted: #5f5f6c;
|
|
49
|
+
--d-accent: #5546c8;
|
|
50
|
+
--d-fill-1: #c3c0d7;
|
|
51
|
+
--d-fill-2: #d7b7b7;
|
|
52
|
+
--d-fill-3: #b4c7da;
|
|
53
|
+
--d-fill-4: #d7d7c0;
|
|
54
|
+
--d-fill-5: #b7d7b7;
|
|
55
|
+
--d-fill-6: #cdb4da;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #2a2a33;
|
|
59
|
+
--term-fg: #eceae6;
|
|
60
|
+
--term-prompt: #7669d3;
|
|
61
|
+
--term-cursor: #7669d3;
|
|
62
|
+
--term-selection: rgba(85, 70, 200, 0.28);
|
|
63
|
+
--ansi-black: #9a9aa5;
|
|
64
|
+
--ansi-red: #e05a5a;
|
|
65
|
+
--ansi-green: #3fa050;
|
|
66
|
+
--ansi-yellow: #e8c840;
|
|
67
|
+
--ansi-blue: #4f7fd0;
|
|
68
|
+
--ansi-magenta: #a878d8;
|
|
69
|
+
--ansi-cyan: #5fb8c8;
|
|
70
|
+
--ansi-white: #ececf2;
|
|
71
|
+
--ansi-bright-black: #babac2;
|
|
72
|
+
--ansi-bright-red: #ea8e8e;
|
|
73
|
+
--ansi-bright-green: #5dbf6e;
|
|
74
|
+
--ansi-bright-yellow: #efd877;
|
|
75
|
+
--ansi-bright-blue: #7fa2dd;
|
|
76
|
+
--ansi-bright-magenta: #c7a7e6;
|
|
77
|
+
--ansi-bright-cyan: #8dccd8;
|
|
78
|
+
--ansi-bright-white: #f3f3f7;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.3;
|
|
82
|
+
}
|