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,84 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · genesis
|
|
3
|
+
dark · console black, Sega blue, one red stripe, a bar of gold
|
|
4
|
+
Inspired by the Sega Genesis — black shell, red stripe, 16-BIT gold — 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: #101013;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #e6e6ea;
|
|
14
|
+
--muted: #9a9aa4;
|
|
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: #4f8fe8;
|
|
21
|
+
--heading-weight: 800;
|
|
22
|
+
--link: #6aa8f0;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #2b6cd7;
|
|
26
|
+
--accent-contrast: #fbfbfa;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #18181f;
|
|
30
|
+
--block-border: 1px solid #2a2a36;
|
|
31
|
+
--block-radius: 6px;
|
|
32
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #16161b;
|
|
36
|
+
--code-fg: #e8e8ec;
|
|
37
|
+
--hl-keyword: #6aa8f0;
|
|
38
|
+
--hl-string: #caa544;
|
|
39
|
+
--hl-number: #e07a68;
|
|
40
|
+
--hl-comment: #70707c;
|
|
41
|
+
--hl-function: #8fc0f8;
|
|
42
|
+
--hl-type: #d8b868;
|
|
43
|
+
--hl-punct: #b0b0bc;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #9a9aa4;
|
|
47
|
+
--d-text: #e6e6ea;
|
|
48
|
+
--d-muted: #9a9aa4;
|
|
49
|
+
--d-accent: #e05a48;
|
|
50
|
+
--d-fill-1: #1c1f26;
|
|
51
|
+
--d-fill-2: #2e291e;
|
|
52
|
+
--d-fill-3: #37211f;
|
|
53
|
+
--d-fill-4: #1c1c26;
|
|
54
|
+
--d-fill-5: #2e251e;
|
|
55
|
+
--d-fill-6: #1f2f37;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #0c0c10;
|
|
59
|
+
--term-fg: #e6e6e2;
|
|
60
|
+
--term-prompt: #2b6cd7;
|
|
61
|
+
--term-cursor: #2b6cd7;
|
|
62
|
+
--term-selection: rgba(43, 108, 215, 0.28);
|
|
63
|
+
--ansi-black: #89919f;
|
|
64
|
+
--ansi-red: #d0726c;
|
|
65
|
+
--ansi-green: #6cd06d;
|
|
66
|
+
--ansi-yellow: #d0b46c;
|
|
67
|
+
--ansi-blue: #6c9dd0;
|
|
68
|
+
--ansi-magenta: #b86cd0;
|
|
69
|
+
--ansi-cyan: #6cd0c0;
|
|
70
|
+
--ansi-white: #dee0e3;
|
|
71
|
+
--ansi-bright-black: #a7acb4;
|
|
72
|
+
--ansi-bright-red: #e49a95;
|
|
73
|
+
--ansi-bright-green: #95e496;
|
|
74
|
+
--ansi-bright-yellow: #e4ce95;
|
|
75
|
+
--ansi-bright-blue: #95bce4;
|
|
76
|
+
--ansi-bright-magenta: #d195e4;
|
|
77
|
+
--ansi-bright-cyan: #95e4d7;
|
|
78
|
+
--ansi-bright-white: #f2f2f3;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.3;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.decklight h1, .decklight h2 { text-transform: uppercase; letter-spacing: 0.06em; font-style: italic; }
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · glacier
|
|
3
|
+
light · Arctic daylight — ice blue, crisp thin lines
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #f3f7fb;
|
|
10
|
+
--bg-accent: #e7eef6;
|
|
11
|
+
--fg: #233140;
|
|
12
|
+
--muted: #5d6b7c;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: "Avenir Next", Avenir, Futura, "Century Gothic", "Segoe UI", sans-serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #1c4d7c;
|
|
19
|
+
--heading-weight: 500;
|
|
20
|
+
--link: #1e62a8;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #2a6ea8;
|
|
24
|
+
--accent-contrast: #f4faff;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fafafa;
|
|
28
|
+
--block-border: 1px solid #d5e0ec;
|
|
29
|
+
--block-radius: 8px;
|
|
30
|
+
--shadow: 0 4px 16px rgba(30, 60, 100, 0.08);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #e7eef6;
|
|
34
|
+
--code-fg: #27343f;
|
|
35
|
+
--hl-keyword: #1e62a8;
|
|
36
|
+
--hl-string: #276b46;
|
|
37
|
+
--hl-number: #8a4a10;
|
|
38
|
+
--hl-comment: #61708a;
|
|
39
|
+
--hl-function: #7a3f92;
|
|
40
|
+
--hl-type: #0f6e73;
|
|
41
|
+
--hl-punct: #48566a;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #54718c;
|
|
45
|
+
--d-text: #233140;
|
|
46
|
+
--d-muted: #6a7889;
|
|
47
|
+
--d-accent: #2f7fc4;
|
|
48
|
+
--d-fill-1: #dce9f5;
|
|
49
|
+
--d-fill-2: #d2e5f2;
|
|
50
|
+
--d-fill-3: #e2eef8;
|
|
51
|
+
--d-fill-4: #c9e2f0;
|
|
52
|
+
--d-fill-5: #d8ecf5;
|
|
53
|
+
--d-fill-6: #e5f0fa;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #16222e;
|
|
57
|
+
--term-fg: #dce5ee;
|
|
58
|
+
--term-prompt: #7cc2e8;
|
|
59
|
+
--term-cursor: #7cc2e8;
|
|
60
|
+
--term-selection: rgba(124, 194, 232, 0.26);
|
|
61
|
+
--ansi-black: #8494a5;
|
|
62
|
+
--ansi-red: #ee8a92;
|
|
63
|
+
--ansi-green: #8fd0a0;
|
|
64
|
+
--ansi-yellow: #e0c478;
|
|
65
|
+
--ansi-blue: #7cb5e5;
|
|
66
|
+
--ansi-magenta: #bda2d8;
|
|
67
|
+
--ansi-cyan: #7ed0d0;
|
|
68
|
+
--ansi-white: #e0e7ee;
|
|
69
|
+
--ansi-bright-black: #9caab9;
|
|
70
|
+
--ansi-bright-red: #f5acb2;
|
|
71
|
+
--ansi-bright-green: #aee2bc;
|
|
72
|
+
--ansi-bright-yellow: #ecd69e;
|
|
73
|
+
--ansi-bright-blue: #a3ccf0;
|
|
74
|
+
--ansi-bright-magenta: #d3bee8;
|
|
75
|
+
--ansi-bright-cyan: #a3e2e2;
|
|
76
|
+
--ansi-bright-white: #f8fbfd;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.decklight h1, .decklight h2 { letter-spacing: 0.01em; }
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · godfather
|
|
3
|
+
dark · undertaker black, serif ivory, one dark red rose
|
|
4
|
+
Inspired by The Godfather — black suits, a rose, old gold — 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: #131110;
|
|
12
|
+
--bg-accent: none;
|
|
13
|
+
--fg: #e8e0cc;
|
|
14
|
+
--muted: #9a9081;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, 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: #efe6ce;
|
|
21
|
+
--heading-weight: 600;
|
|
22
|
+
--link: #c8a05f;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #8e2f35;
|
|
26
|
+
--accent-contrast: #fbfbfa;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #1f1b18;
|
|
30
|
+
--block-border: 1px solid #362e2a;
|
|
31
|
+
--block-radius: 4px;
|
|
32
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #1a1715;
|
|
36
|
+
--code-fg: #e8e2d2;
|
|
37
|
+
--hl-keyword: #d8b878;
|
|
38
|
+
--hl-string: #b0c090;
|
|
39
|
+
--hl-number: #d09080;
|
|
40
|
+
--hl-comment: #7a7266;
|
|
41
|
+
--hl-function: #a8b8c8;
|
|
42
|
+
--hl-type: #c8b898;
|
|
43
|
+
--hl-punct: #aaa294;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #9a9081;
|
|
47
|
+
--d-text: #e8e0cc;
|
|
48
|
+
--d-muted: #9a9081;
|
|
49
|
+
--d-accent: #b08c4a;
|
|
50
|
+
--d-fill-1: #26231c;
|
|
51
|
+
--d-fill-2: #2e1e1f;
|
|
52
|
+
--d-fill-3: #37291f;
|
|
53
|
+
--d-fill-4: #26261c;
|
|
54
|
+
--d-fill-5: #1e262e;
|
|
55
|
+
--d-fill-6: #371f27;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #0f0d0c;
|
|
59
|
+
--term-fg: #e6e6e2;
|
|
60
|
+
--term-prompt: #b03a42;
|
|
61
|
+
--term-cursor: #b03a42;
|
|
62
|
+
--term-selection: rgba(142, 47, 53, 0.28);
|
|
63
|
+
--ansi-black: #9f898b;
|
|
64
|
+
--ansi-red: #c38b79;
|
|
65
|
+
--ansi-green: #79c388;
|
|
66
|
+
--ansi-yellow: #c3bc79;
|
|
67
|
+
--ansi-blue: #7990c3;
|
|
68
|
+
--ansi-magenta: #bf79c3;
|
|
69
|
+
--ansi-cyan: #79c1c3;
|
|
70
|
+
--ansi-white: #e3dede;
|
|
71
|
+
--ansi-bright-black: #b4a7a8;
|
|
72
|
+
--ansi-bright-red: #dbad9e;
|
|
73
|
+
--ansi-bright-green: #9edbaa;
|
|
74
|
+
--ansi-bright-yellow: #dbd69e;
|
|
75
|
+
--ansi-bright-blue: #9eb1db;
|
|
76
|
+
--ansi-bright-magenta: #d89edb;
|
|
77
|
+
--ansi-bright-cyan: #9ed9db;
|
|
78
|
+
--ansi-bright-white: #f3f2f2;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.25;
|
|
82
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · graphite
|
|
3
|
+
dark · Matte charcoal with a machined orange accent — engineering clean
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #17191c;
|
|
10
|
+
--bg-accent: #1f2226;
|
|
11
|
+
--fg: #e7e9ec;
|
|
12
|
+
--muted: #a2a8b0;
|
|
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: #f5f6f8;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #7fb2f0;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #e49058;
|
|
24
|
+
--accent-contrast: #241000;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #1e2126;
|
|
28
|
+
--block-border: 1px solid #2c3036;
|
|
29
|
+
--block-radius: 10px;
|
|
30
|
+
--shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #101214;
|
|
34
|
+
--code-fg: #e2e5e9;
|
|
35
|
+
--hl-keyword: #f0955f;
|
|
36
|
+
--hl-string: #9ecf83;
|
|
37
|
+
--hl-number: #e8c268;
|
|
38
|
+
--hl-comment: #828a94;
|
|
39
|
+
--hl-function: #84b8f5;
|
|
40
|
+
--hl-type: #d3a6e8;
|
|
41
|
+
--hl-punct: #aab2bc;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #8b929c;
|
|
45
|
+
--d-text: #e7e9ec;
|
|
46
|
+
--d-muted: #9aa1aa;
|
|
47
|
+
--d-accent: #ff8a3d;
|
|
48
|
+
--d-fill-1: #26292e;
|
|
49
|
+
--d-fill-2: #2d3138;
|
|
50
|
+
--d-fill-3: #33302a;
|
|
51
|
+
--d-fill-4: #2a2e35;
|
|
52
|
+
--d-fill-5: #30343b;
|
|
53
|
+
--d-fill-6: #282b31;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #0e1012;
|
|
57
|
+
--term-fg: #dcdfe3;
|
|
58
|
+
--term-prompt: #ff8a3d;
|
|
59
|
+
--term-cursor: #ff8a3d;
|
|
60
|
+
--term-selection: rgba(255, 138, 61, 0.30);
|
|
61
|
+
--ansi-black: #8b8f98;
|
|
62
|
+
--ansi-red: #ff8f73;
|
|
63
|
+
--ansi-green: #a3d977;
|
|
64
|
+
--ansi-yellow: #ffc857;
|
|
65
|
+
--ansi-blue: #7fb2f0;
|
|
66
|
+
--ansi-magenta: #d8a2e8;
|
|
67
|
+
--ansi-cyan: #7fdbd2;
|
|
68
|
+
--ansi-white: #e5e7ea;
|
|
69
|
+
--ansi-bright-black: #a5aab3;
|
|
70
|
+
--ansi-bright-red: #ffb09c;
|
|
71
|
+
--ansi-bright-green: #bde79a;
|
|
72
|
+
--ansi-bright-yellow: #ffd98a;
|
|
73
|
+
--ansi-bright-blue: #a5cbf7;
|
|
74
|
+
--ansi-bright-magenta: #e7c2f2;
|
|
75
|
+
--ansi-bright-cyan: #a5e9e2;
|
|
76
|
+
--ansi-bright-white: #fafafa;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.3;
|
|
80
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · harvest
|
|
3
|
+
light · October ivory — pumpkin, ochre, sturdy slab headings
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #fbf5ea;
|
|
10
|
+
--bg-accent: #f5ead6;
|
|
11
|
+
--fg: #3f3120;
|
|
12
|
+
--muted: #71624c;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
16
|
+
--font-heading: Rockwell, "Roboto Slab", "Bookman Old Style", Georgia, serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #9a4a00;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #a04d10;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #8e5517;
|
|
24
|
+
--accent-contrast: #fff7ec;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fffaf0;
|
|
28
|
+
--block-border: 1px solid #e8d9be;
|
|
29
|
+
--block-radius: 8px;
|
|
30
|
+
--shadow: 0 5px 16px rgba(140, 90, 20, 0.09);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #f5ead6;
|
|
34
|
+
--code-fg: #3d3122;
|
|
35
|
+
--hl-keyword: #a04d10;
|
|
36
|
+
--hl-string: #33691e;
|
|
37
|
+
--hl-number: #8a2e42;
|
|
38
|
+
--hl-comment: #6d604b;
|
|
39
|
+
--hl-function: #1d558a;
|
|
40
|
+
--hl-type: #7a3f92;
|
|
41
|
+
--hl-punct: #5a4c38;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #8a734f;
|
|
45
|
+
--d-text: #3f3120;
|
|
46
|
+
--d-muted: #7c6c54;
|
|
47
|
+
--d-accent: #c26a00;
|
|
48
|
+
--d-fill-1: #f6e4c4;
|
|
49
|
+
--d-fill-2: #efe0ba;
|
|
50
|
+
--d-fill-3: #fae9cd;
|
|
51
|
+
--d-fill-4: #ecd7ac;
|
|
52
|
+
--d-fill-5: #f2e2c9;
|
|
53
|
+
--d-fill-6: #f8ecd2;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #2b2113;
|
|
57
|
+
--term-fg: #efe5d2;
|
|
58
|
+
--term-prompt: #f5b860;
|
|
59
|
+
--term-cursor: #f5b860;
|
|
60
|
+
--term-selection: rgba(245, 184, 96, 0.26);
|
|
61
|
+
--ansi-black: #9c8c72;
|
|
62
|
+
--ansi-red: #f28a70;
|
|
63
|
+
--ansi-green: #adc876;
|
|
64
|
+
--ansi-yellow: #f2c052;
|
|
65
|
+
--ansi-blue: #98b5d8;
|
|
66
|
+
--ansi-magenta: #cfa2c5;
|
|
67
|
+
--ansi-cyan: #95cdb0;
|
|
68
|
+
--ansi-white: #ede2cc;
|
|
69
|
+
--ansi-bright-black: #ad9e84;
|
|
70
|
+
--ansi-bright-red: #f7ab92;
|
|
71
|
+
--ansi-bright-green: #c5da98;
|
|
72
|
+
--ansi-bright-yellow: #f8d47e;
|
|
73
|
+
--ansi-bright-blue: #b5cae5;
|
|
74
|
+
--ansi-bright-magenta: #dfbcd8;
|
|
75
|
+
--ansi-bright-cyan: #b2e0c6;
|
|
76
|
+
--ansi-bright-white: #fdf6e9;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · ibm-modern
|
|
3
|
+
dark · Carbon-design g100: Plex type, IBM Blue 60, engineered calm
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
rule-exception: R3 official IBM Blue 60 (#0f62fe) is the identity
|
|
6
|
+
═══════════════════════════════════════════════════════════════ */
|
|
7
|
+
|
|
8
|
+
.decklight {
|
|
9
|
+
/* ── canvas ─────────────────────────────── */
|
|
10
|
+
--bg: #151619;
|
|
11
|
+
--bg-accent: none;
|
|
12
|
+
--fg: #f2f4f8;
|
|
13
|
+
--muted: #a6a9b3;
|
|
14
|
+
|
|
15
|
+
/* ── type ───────────────────────────────── */
|
|
16
|
+
--font-body: "IBM Plex Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
17
|
+
--font-heading: "IBM Plex Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-mono: "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
|
|
19
|
+
--heading-color: #f2f4f8;
|
|
20
|
+
--heading-weight: 600;
|
|
21
|
+
--link: #78a9ff;
|
|
22
|
+
|
|
23
|
+
/* ── accent ─────────────────────────────── */
|
|
24
|
+
--accent: #0f62fe;
|
|
25
|
+
--accent-contrast: #f6f8ff;
|
|
26
|
+
|
|
27
|
+
/* ── blocks ─────────────────────────────── */
|
|
28
|
+
--block-bg: #24262b;
|
|
29
|
+
--block-border: 1px solid #383b42;
|
|
30
|
+
--block-radius: 8px;
|
|
31
|
+
--shadow: 0 8px 28px rgba(0, 0, 0, 0.55);
|
|
32
|
+
|
|
33
|
+
/* ── code ───────────────────────────────── */
|
|
34
|
+
--code-bg: #1a1c20;
|
|
35
|
+
--code-fg: #f2f4f8;
|
|
36
|
+
--hl-keyword: #78a9ff;
|
|
37
|
+
--hl-string: #6fdc8c;
|
|
38
|
+
--hl-number: #f1c21b;
|
|
39
|
+
--hl-comment: #9298a3;
|
|
40
|
+
--hl-function: #be95ff;
|
|
41
|
+
--hl-type: #3ddbd9;
|
|
42
|
+
--hl-punct: #c1c7cd;
|
|
43
|
+
|
|
44
|
+
/* ── diagram ────────────────────────────── */
|
|
45
|
+
--d-stroke: #6f7683;
|
|
46
|
+
--d-text: #f2f4f8;
|
|
47
|
+
--d-muted: #a6a9b3;
|
|
48
|
+
--d-accent: #78a9ff;
|
|
49
|
+
--d-fill-1: #1f2732;
|
|
50
|
+
--d-fill-2: #21272a;
|
|
51
|
+
--d-fill-3: #262630;
|
|
52
|
+
--d-fill-4: #1c2a24;
|
|
53
|
+
--d-fill-5: #2a2431;
|
|
54
|
+
--d-fill-6: #252017;
|
|
55
|
+
|
|
56
|
+
/* ── terminal ───────────────────────────── */
|
|
57
|
+
--term-bg: #101114;
|
|
58
|
+
--term-fg: #f2f4f8;
|
|
59
|
+
--term-prompt: #42be65;
|
|
60
|
+
--term-cursor: #f2f4f8;
|
|
61
|
+
--term-selection: rgba(15, 98, 254, 0.35);
|
|
62
|
+
--ansi-black: #878d96;
|
|
63
|
+
--ansi-red: #fa4d56;
|
|
64
|
+
--ansi-green: #42be65;
|
|
65
|
+
--ansi-yellow: #f1c21b;
|
|
66
|
+
--ansi-blue: #78a9ff;
|
|
67
|
+
--ansi-magenta: #be95ff;
|
|
68
|
+
--ansi-cyan: #3ddbd9;
|
|
69
|
+
--ansi-white: #dde1e6;
|
|
70
|
+
--ansi-bright-black: #a2a9b0;
|
|
71
|
+
--ansi-bright-red: #ff8389;
|
|
72
|
+
--ansi-bright-green: #6fdc8c;
|
|
73
|
+
--ansi-bright-yellow: #fddc69;
|
|
74
|
+
--ansi-bright-blue: #a6c8ff;
|
|
75
|
+
--ansi-bright-magenta: #d4bbff;
|
|
76
|
+
--ansi-bright-cyan: #9ef0f0;
|
|
77
|
+
--ansi-bright-white: #f6f8ff;
|
|
78
|
+
|
|
79
|
+
/* ── builds ─────────────────────────────── */
|
|
80
|
+
--dim-opacity: 0.3;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.decklight h1, .decklight h2 { letter-spacing: -0.01em; }
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · ibm-oldschool
|
|
3
|
+
dark · 3270 green-phosphor mainframe: one green, many brightnesses
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
rule-exception: R1 green phosphor plus an amber caution lamp is the identity
|
|
6
|
+
rule-exception: R5 phosphor CRT — one green at many brightnesses is the identity
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #0a0f0b;
|
|
12
|
+
--bg-accent: radial-gradient(ellipse at 50% 38%, #0d1710 0%, #0a0f0b 72%);
|
|
13
|
+
--fg: #4ce063;
|
|
14
|
+
--muted: #35a04b;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: "IBM Plex Mono", "Courier New", Courier, monospace;
|
|
18
|
+
--font-heading: "IBM Plex Mono", "Courier New", Courier, monospace;
|
|
19
|
+
--font-mono: "IBM Plex Mono", "Courier New", Courier, monospace;
|
|
20
|
+
--heading-color: #5ff277;
|
|
21
|
+
--heading-weight: 700;
|
|
22
|
+
--link: #8df2a3;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #e2b263;
|
|
26
|
+
--accent-contrast: #1d1500;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #0e1810;
|
|
30
|
+
--block-border: 1px solid #1e3b26;
|
|
31
|
+
--block-radius: 2px;
|
|
32
|
+
--shadow: 0 0 26px rgba(76, 224, 99, 0.14);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #0c130d;
|
|
36
|
+
--code-fg: #4ce063;
|
|
37
|
+
--hl-keyword: #8df2a3;
|
|
38
|
+
--hl-string: #bdf2c8;
|
|
39
|
+
--hl-number: #e2b263;
|
|
40
|
+
--hl-comment: #2f8f43;
|
|
41
|
+
--hl-function: #a3f2b4;
|
|
42
|
+
--hl-type: #d6f2a3;
|
|
43
|
+
--hl-punct: #57c973;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #2f7a43;
|
|
47
|
+
--d-text: #5ce873;
|
|
48
|
+
--d-muted: #39ab50;
|
|
49
|
+
--d-accent: #e2b263;
|
|
50
|
+
--d-fill-1: #0d1a10;
|
|
51
|
+
--d-fill-2: #0f2013;
|
|
52
|
+
--d-fill-3: #101b12;
|
|
53
|
+
--d-fill-4: #12240f;
|
|
54
|
+
--d-fill-5: #0e1d15;
|
|
55
|
+
--d-fill-6: #132612;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #081008;
|
|
59
|
+
--term-fg: #4ce063;
|
|
60
|
+
--term-prompt: #e2b263;
|
|
61
|
+
--term-cursor: #4ce063;
|
|
62
|
+
--term-selection: rgba(76, 224, 99, 0.3);
|
|
63
|
+
--ansi-black: #2f7a43;
|
|
64
|
+
--ansi-red: #e07a63;
|
|
65
|
+
--ansi-green: #4ce063;
|
|
66
|
+
--ansi-yellow: #e2b263;
|
|
67
|
+
--ansi-blue: #63b8d9;
|
|
68
|
+
--ansi-magenta: #c98fd1;
|
|
69
|
+
--ansi-cyan: #5fd9c2;
|
|
70
|
+
--ansi-white: #c9eecf;
|
|
71
|
+
--ansi-bright-black: #3f9e56;
|
|
72
|
+
--ansi-bright-red: #f2a08c;
|
|
73
|
+
--ansi-bright-green: #7ef29a;
|
|
74
|
+
--ansi-bright-yellow: #f8d178;
|
|
75
|
+
--ansi-bright-blue: #8fd1ec;
|
|
76
|
+
--ansi-bright-magenta: #ddb0e3;
|
|
77
|
+
--ansi-bright-cyan: #8ceada;
|
|
78
|
+
--ansi-bright-white: #e7f8ea;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.3;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.decklight h1, .decklight h2 { text-transform: uppercase; letter-spacing: 0.06em; }
|
package/themes/ink.css
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · ink
|
|
3
|
+
dark · Sumi-e minimal — warm black, unbleached paper text, one vermillion stroke
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #191714;
|
|
10
|
+
--bg-accent: #211e1a;
|
|
11
|
+
--fg: #f2ead9;
|
|
12
|
+
--muted: #b5ab97;
|
|
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: #f8f2e4;
|
|
19
|
+
--heading-weight: 500;
|
|
20
|
+
--link: #f0a08a;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #e36356;
|
|
24
|
+
--accent-contrast: #2b0703;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #1f1c18;
|
|
28
|
+
--block-border: 1px solid #35302a;
|
|
29
|
+
--block-radius: 2px;
|
|
30
|
+
--shadow: none;
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #14120f;
|
|
34
|
+
--code-fg: #ece4d2;
|
|
35
|
+
--hl-keyword: #eea18c;
|
|
36
|
+
--hl-string: #c5c58d;
|
|
37
|
+
--hl-number: #e0b880;
|
|
38
|
+
--hl-comment: #918876;
|
|
39
|
+
--hl-function: #a6bcd2;
|
|
40
|
+
--hl-type: #cdb89e;
|
|
41
|
+
--hl-punct: #b0a795;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #8a8272;
|
|
45
|
+
--d-text: #f2ead9;
|
|
46
|
+
--d-muted: #a59c88;
|
|
47
|
+
--d-accent: #ff4d3a;
|
|
48
|
+
--d-fill-1: #242018;
|
|
49
|
+
--d-fill-2: #2a251c;
|
|
50
|
+
--d-fill-3: #211f1d;
|
|
51
|
+
--d-fill-4: #2e2820;
|
|
52
|
+
--d-fill-5: #262320;
|
|
53
|
+
--d-fill-6: #2b2419;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #12100d;
|
|
57
|
+
--term-fg: #e8e0cf;
|
|
58
|
+
--term-prompt: #ff4d3a;
|
|
59
|
+
--term-cursor: #f2ead9;
|
|
60
|
+
--term-selection: rgba(242, 234, 217, 0.2);
|
|
61
|
+
--term-chrome: none;
|
|
62
|
+
--ansi-black: #948b7a;
|
|
63
|
+
--ansi-red: #f0796a;
|
|
64
|
+
--ansi-green: #a8bc7f;
|
|
65
|
+
--ansi-yellow: #dcbc72;
|
|
66
|
+
--ansi-blue: #93accc;
|
|
67
|
+
--ansi-magenta: #c8a0b8;
|
|
68
|
+
--ansi-cyan: #95c2b5;
|
|
69
|
+
--ansi-white: #ece4d4;
|
|
70
|
+
--ansi-bright-black: #a89f8d;
|
|
71
|
+
--ansi-bright-red: #f59f93;
|
|
72
|
+
--ansi-bright-green: #c0d29c;
|
|
73
|
+
--ansi-bright-yellow: #e8cf98;
|
|
74
|
+
--ansi-bright-blue: #b0c5e0;
|
|
75
|
+
--ansi-bright-magenta: #dabbcd;
|
|
76
|
+
--ansi-bright-cyan: #b3d8cc;
|
|
77
|
+
--ansi-bright-white: #fbf6ea;
|
|
78
|
+
|
|
79
|
+
/* ── builds ─────────────────────────────── */
|
|
80
|
+
--dim-opacity: 0.35;
|
|
81
|
+
--build-duration: 220ms;
|
|
82
|
+
}
|