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/berry.css
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · berry
|
|
3
|
+
light · Raspberry on white — energetic, pink-tinted blocks
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #fffbfd;
|
|
10
|
+
--bg-accent: #fceef5;
|
|
11
|
+
--fg: #3d2436;
|
|
12
|
+
--muted: #75596a;
|
|
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: #a8175c;
|
|
19
|
+
--heading-weight: 800;
|
|
20
|
+
--link: #b3216a;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #c2296a;
|
|
24
|
+
--accent-contrast: #fff4f9;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fdf1f6;
|
|
28
|
+
--block-border: 1px solid #f2d5e3;
|
|
29
|
+
--block-radius: 14px;
|
|
30
|
+
--shadow: 0 6px 20px rgba(180, 40, 100, 0.09);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #f8e9f0;
|
|
34
|
+
--code-fg: #3f2838;
|
|
35
|
+
--hl-keyword: #b3216a;
|
|
36
|
+
--hl-string: #276b46;
|
|
37
|
+
--hl-number: #8a4a10;
|
|
38
|
+
--hl-comment: #755d6a;
|
|
39
|
+
--hl-function: #1e5aa8;
|
|
40
|
+
--hl-type: #7038d8;
|
|
41
|
+
--hl-punct: #5c4252;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #96607e;
|
|
45
|
+
--d-text: #3d2436;
|
|
46
|
+
--d-muted: #84687a;
|
|
47
|
+
--d-accent: #d23b77;
|
|
48
|
+
--d-fill-1: #fadce9;
|
|
49
|
+
--d-fill-2: #f5e0f0;
|
|
50
|
+
--d-fill-3: #fce5dc;
|
|
51
|
+
--d-fill-4: #efdcf5;
|
|
52
|
+
--d-fill-5: #fde0e2;
|
|
53
|
+
--d-fill-6: #f8ecda;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #2b1a24;
|
|
57
|
+
--term-fg: #eddfe8;
|
|
58
|
+
--term-prompt: #ff8ab8;
|
|
59
|
+
--term-cursor: #ff8ab8;
|
|
60
|
+
--term-selection: rgba(255, 138, 184, 0.26);
|
|
61
|
+
--ansi-black: #a08795;
|
|
62
|
+
--ansi-red: #ff8095;
|
|
63
|
+
--ansi-green: #93d0a0;
|
|
64
|
+
--ansi-yellow: #e8c072;
|
|
65
|
+
--ansi-blue: #90b0ec;
|
|
66
|
+
--ansi-magenta: #e096d5;
|
|
67
|
+
--ansi-cyan: #88cfc5;
|
|
68
|
+
--ansi-white: #ecdfe7;
|
|
69
|
+
--ansi-bright-black: #b29ca9;
|
|
70
|
+
--ansi-bright-red: #ffa5b5;
|
|
71
|
+
--ansi-bright-green: #b0e2bc;
|
|
72
|
+
--ansi-bright-yellow: #f2d49a;
|
|
73
|
+
--ansi-bright-blue: #b0c8f5;
|
|
74
|
+
--ansi-bright-magenta: #eab5e5;
|
|
75
|
+
--ansi-bright-cyan: #a8e0da;
|
|
76
|
+
--ansi-bright-white: #fdf5fa;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · blade-runner
|
|
3
|
+
dark · off-world night, neon cyan + magenta, spinner amber
|
|
4
|
+
Inspired by Blade Runner — neon noir over the rain — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
rule-exception: R2 the neon-noir duotone canvas is the identity
|
|
7
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
8
|
+
═══════════════════════════════════════════════════════════════ */
|
|
9
|
+
|
|
10
|
+
.decklight {
|
|
11
|
+
/* ── canvas ─────────────────────────────── */
|
|
12
|
+
--bg: linear-gradient(200deg, #0b0e18 0%, #140b1a 100%);
|
|
13
|
+
--bg-accent: none;
|
|
14
|
+
--fg: #e2e6f0;
|
|
15
|
+
--muted: #8f95ac;
|
|
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: #4fd8e8;
|
|
22
|
+
--heading-weight: 600;
|
|
23
|
+
--link: #e884c8;
|
|
24
|
+
|
|
25
|
+
/* ── accent ─────────────────────────────── */
|
|
26
|
+
--accent: #c957aa;
|
|
27
|
+
--accent-contrast: #171712;
|
|
28
|
+
|
|
29
|
+
/* ── blocks ─────────────────────────────── */
|
|
30
|
+
--block-bg: #141823;
|
|
31
|
+
--block-border: 1px solid #2a2d36;
|
|
32
|
+
--block-radius: 8px;
|
|
33
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
34
|
+
|
|
35
|
+
/* ── code ───────────────────────────────── */
|
|
36
|
+
--code-bg: #10131f;
|
|
37
|
+
--code-fg: #e0e4f0;
|
|
38
|
+
--hl-keyword: #e884c8;
|
|
39
|
+
--hl-string: #6fd8e8;
|
|
40
|
+
--hl-number: #e8b860;
|
|
41
|
+
--hl-comment: #6a708a;
|
|
42
|
+
--hl-function: #8fa8f0;
|
|
43
|
+
--hl-type: #c8a0e8;
|
|
44
|
+
--hl-punct: #a8aec4;
|
|
45
|
+
|
|
46
|
+
/* ── diagram ────────────────────────────── */
|
|
47
|
+
--d-stroke: #8f95ac;
|
|
48
|
+
--d-text: #e2e6f0;
|
|
49
|
+
--d-muted: #8f95ac;
|
|
50
|
+
--d-accent: #c957aa;
|
|
51
|
+
--d-fill-1: #1c2426;
|
|
52
|
+
--d-fill-2: #2e1e29;
|
|
53
|
+
--d-fill-3: #1f2337;
|
|
54
|
+
--d-fill-4: #26231c;
|
|
55
|
+
--d-fill-5: #261e2e;
|
|
56
|
+
--d-fill-6: #1f372f;
|
|
57
|
+
|
|
58
|
+
/* ── terminal ───────────────────────────── */
|
|
59
|
+
--term-bg: #0a0d16;
|
|
60
|
+
--term-fg: #e6e6e2;
|
|
61
|
+
--term-prompt: #c957aa;
|
|
62
|
+
--term-cursor: #c957aa;
|
|
63
|
+
--term-selection: rgba(201, 87, 170, 0.28);
|
|
64
|
+
--ansi-black: #8a90a8;
|
|
65
|
+
--ansi-red: #e88a90;
|
|
66
|
+
--ansi-green: #7fd0a8;
|
|
67
|
+
--ansi-yellow: #e8c070;
|
|
68
|
+
--ansi-blue: #8fa8f0;
|
|
69
|
+
--ansi-magenta: #e884c8;
|
|
70
|
+
--ansi-cyan: #6fd8e8;
|
|
71
|
+
--ansi-white: #eceef6;
|
|
72
|
+
--ansi-bright-black: #adb1c2;
|
|
73
|
+
--ansi-bright-red: #f2bdc1;
|
|
74
|
+
--ansi-bright-green: #ace0c6;
|
|
75
|
+
--ansi-bright-yellow: #f0d7a5;
|
|
76
|
+
--ansi-bright-blue: #c5d2f7;
|
|
77
|
+
--ansi-bright-magenta: #f2b8df;
|
|
78
|
+
--ansi-bright-cyan: #a4e6f0;
|
|
79
|
+
--ansi-bright-white: #f1f3f8;
|
|
80
|
+
|
|
81
|
+
/* ── builds ─────────────────────────────── */
|
|
82
|
+
--dim-opacity: 0.25;
|
|
83
|
+
}
|
package/themes/c64.css
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · c64
|
|
3
|
+
dark · blue on blue, light-blue border type, PETSCII spirit
|
|
4
|
+
Inspired by the Commodore 64 boot screen — palette kept canonical where possible,
|
|
5
|
+
every gated pair fitted to the WCAG contract.
|
|
6
|
+
rule-exception: R2 the canonical C64 blue screen is the identity
|
|
7
|
+
Token contract: SPEC.md §5 — validated by test/contrast.mjs
|
|
8
|
+
═══════════════════════════════════════════════════════════════ */
|
|
9
|
+
|
|
10
|
+
.decklight {
|
|
11
|
+
/* ── canvas ─────────────────────────────── */
|
|
12
|
+
--bg: #40318d;
|
|
13
|
+
--bg-accent: none;
|
|
14
|
+
--fg: #b3a8ec;
|
|
15
|
+
--muted: #9186d3;
|
|
16
|
+
|
|
17
|
+
/* ── type ───────────────────────────────── */
|
|
18
|
+
--font-body: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
19
|
+
--font-heading: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
21
|
+
--heading-color: #8d82e0;
|
|
22
|
+
--heading-weight: 600;
|
|
23
|
+
--link: #9fd0ff;
|
|
24
|
+
|
|
25
|
+
/* ── accent ─────────────────────────────── */
|
|
26
|
+
--accent: #867ade;
|
|
27
|
+
--accent-contrast: #1f1f19;
|
|
28
|
+
|
|
29
|
+
/* ── blocks ─────────────────────────────── */
|
|
30
|
+
--block-bg: #574e85;
|
|
31
|
+
--block-border: 1px solid #736f8d;
|
|
32
|
+
--block-radius: 0px;
|
|
33
|
+
--shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
|
|
34
|
+
|
|
35
|
+
/* ── code ───────────────────────────────── */
|
|
36
|
+
--code-bg: #352a75;
|
|
37
|
+
--code-fg: #c8c0f0;
|
|
38
|
+
--hl-keyword: #a2d0fc;
|
|
39
|
+
--hl-string: #8bdc9e;
|
|
40
|
+
--hl-number: #e8d878;
|
|
41
|
+
--hl-comment: #847ac5;
|
|
42
|
+
--hl-function: #d0a8e8;
|
|
43
|
+
--hl-type: #8fe0e0;
|
|
44
|
+
--hl-punct: #b0a8e8;
|
|
45
|
+
|
|
46
|
+
/* ── diagram ────────────────────────────── */
|
|
47
|
+
--d-stroke: #8a7fd0;
|
|
48
|
+
--d-text: #a597e8;
|
|
49
|
+
--d-muted: #8a7fd0;
|
|
50
|
+
--d-accent: #867ade;
|
|
51
|
+
--d-fill-1: #322f41;
|
|
52
|
+
--d-fill-2: #2c3044;
|
|
53
|
+
--d-fill-3: #352848;
|
|
54
|
+
--d-fill-4: #2f3841;
|
|
55
|
+
--d-fill-5: #3c2c44;
|
|
56
|
+
--d-fill-6: #284048;
|
|
57
|
+
|
|
58
|
+
/* ── terminal ───────────────────────────── */
|
|
59
|
+
--term-bg: #352a75;
|
|
60
|
+
--term-fg: #e6e6e2;
|
|
61
|
+
--term-prompt: #867ade;
|
|
62
|
+
--term-cursor: #867ade;
|
|
63
|
+
--term-selection: rgba(134, 122, 222, 0.28);
|
|
64
|
+
--ansi-black: #8a7fd0;
|
|
65
|
+
--ansi-red: #e08a80;
|
|
66
|
+
--ansi-green: #8fd8a0;
|
|
67
|
+
--ansi-yellow: #e8d878;
|
|
68
|
+
--ansi-blue: #9fd0ff;
|
|
69
|
+
--ansi-magenta: #d0a8e8;
|
|
70
|
+
--ansi-cyan: #8fe0e0;
|
|
71
|
+
--ansi-white: #e8e5f8;
|
|
72
|
+
--ansi-bright-black: #b3ace0;
|
|
73
|
+
--ansi-bright-red: #ecb7b1;
|
|
74
|
+
--ansi-bright-green: #bce8c7;
|
|
75
|
+
--ansi-bright-yellow: #f1e7ac;
|
|
76
|
+
--ansi-bright-blue: #dceeff;
|
|
77
|
+
--ansi-bright-magenta: #ead8f5;
|
|
78
|
+
--ansi-bright-cyan: #bfeded;
|
|
79
|
+
--ansi-bright-white: #f1effb;
|
|
80
|
+
|
|
81
|
+
/* ── builds ─────────────────────────────── */
|
|
82
|
+
--dim-opacity: 0.3;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.decklight h1, .decklight h2 { text-transform: uppercase; letter-spacing: 0.05em; }
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap');
|
|
2
|
+
|
|
3
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
4
|
+
Decklight theme · carbon
|
|
5
|
+
dark · IDE-native — cool graphite, blue/violet duotone syntax
|
|
6
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
7
|
+
═══════════════════════════════════════════════════════════════ */
|
|
8
|
+
|
|
9
|
+
.decklight {
|
|
10
|
+
/* ── canvas ─────────────────────────────── */
|
|
11
|
+
--bg: #121417;
|
|
12
|
+
--bg-accent: #191c21;
|
|
13
|
+
--fg: #e4e7eb;
|
|
14
|
+
--muted: #9da5b0;
|
|
15
|
+
|
|
16
|
+
/* ── type ───────────────────────────────── */
|
|
17
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
18
|
+
--font-heading: "JetBrains Mono", "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
19
|
+
--font-mono: "JetBrains Mono", "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
20
|
+
--heading-color: #9db8ff;
|
|
21
|
+
--heading-weight: 700;
|
|
22
|
+
--link: #82aaff;
|
|
23
|
+
|
|
24
|
+
/* ── accent ─────────────────────────────── */
|
|
25
|
+
--accent: #81a5ea;
|
|
26
|
+
--accent-contrast: #001536;
|
|
27
|
+
|
|
28
|
+
/* ── blocks ─────────────────────────────── */
|
|
29
|
+
--block-bg: #191d22;
|
|
30
|
+
--block-border: 1px solid #262b33;
|
|
31
|
+
--block-radius: 8px;
|
|
32
|
+
--shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
|
|
33
|
+
|
|
34
|
+
/* ── code ───────────────────────────────── */
|
|
35
|
+
--code-bg: #0d0f12;
|
|
36
|
+
--code-fg: #dfe3e8;
|
|
37
|
+
--hl-keyword: #8badf6;
|
|
38
|
+
--hl-string: #8dd3a4;
|
|
39
|
+
--hl-number: #c0a8f5;
|
|
40
|
+
--hl-comment: #7e8794;
|
|
41
|
+
--hl-function: #b0baf5;
|
|
42
|
+
--hl-type: #7cc7e8;
|
|
43
|
+
--hl-punct: #a2aab5;
|
|
44
|
+
|
|
45
|
+
/* ── diagram ────────────────────────────── */
|
|
46
|
+
--d-stroke: #5c6b85;
|
|
47
|
+
--d-text: #e4e7eb;
|
|
48
|
+
--d-muted: #8d95a3;
|
|
49
|
+
--d-accent: #6c9fff;
|
|
50
|
+
--d-fill-1: #1c2230;
|
|
51
|
+
--d-fill-2: #202940;
|
|
52
|
+
--d-fill-3: #232030;
|
|
53
|
+
--d-fill-4: #1a2a3d;
|
|
54
|
+
--d-fill-5: #252b3a;
|
|
55
|
+
--d-fill-6: #1e2536;
|
|
56
|
+
|
|
57
|
+
/* ── terminal ───────────────────────────── */
|
|
58
|
+
--term-bg: #0a0c0f;
|
|
59
|
+
--term-fg: #d9dde2;
|
|
60
|
+
--term-prompt: #6c9fff;
|
|
61
|
+
--term-cursor: #6c9fff;
|
|
62
|
+
--term-selection: rgba(108, 159, 255, 0.28);
|
|
63
|
+
--ansi-black: #89919f;
|
|
64
|
+
--ansi-red: #d2726a;
|
|
65
|
+
--ansi-green: #6ad26d;
|
|
66
|
+
--ansi-yellow: #d2b76a;
|
|
67
|
+
--ansi-blue: #6a9bd2;
|
|
68
|
+
--ansi-magenta: #bb6ad2;
|
|
69
|
+
--ansi-cyan: #6ad2c4;
|
|
70
|
+
--ansi-white: #dee0e3;
|
|
71
|
+
--ansi-bright-black: #a7abb4;
|
|
72
|
+
--ansi-bright-red: #e69a94;
|
|
73
|
+
--ansi-bright-green: #94e696;
|
|
74
|
+
--ansi-bright-yellow: #e6d194;
|
|
75
|
+
--ansi-bright-blue: #94bae6;
|
|
76
|
+
--ansi-bright-magenta: #d394e6;
|
|
77
|
+
--ansi-bright-cyan: #94e6da;
|
|
78
|
+
--ansi-bright-white: #f2f2f3;
|
|
79
|
+
|
|
80
|
+
/* ── builds ─────────────────────────────── */
|
|
81
|
+
--dim-opacity: 0.28;
|
|
82
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · citrus
|
|
3
|
+
light · Lime and tangerine zest — playful, rounded, bright
|
|
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: linear-gradient(135deg, #f8fce8 0%, #fff4e2 100%);
|
|
11
|
+
--fg: #33322d;
|
|
12
|
+
--muted: #6d6c62;
|
|
13
|
+
|
|
14
|
+
/* ── type ───────────────────────────────── */
|
|
15
|
+
--font-body: ui-rounded, "SF Pro Rounded", "Nunito", "Comfortaa", "Segoe UI", sans-serif;
|
|
16
|
+
--font-heading: ui-rounded, "SF Pro Rounded", "Nunito", "Comfortaa", "Segoe UI", sans-serif;
|
|
17
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
18
|
+
--heading-color: #4f7d00;
|
|
19
|
+
--heading-weight: 800;
|
|
20
|
+
--link: #b45309;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #638916;
|
|
24
|
+
--accent-contrast: #0b1100;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #fafce8;
|
|
28
|
+
--block-border: 2px solid #e2ecc0;
|
|
29
|
+
--block-radius: 18px;
|
|
30
|
+
--shadow: 0 6px 22px rgba(120, 140, 20, 0.1);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #f5f7ea;
|
|
34
|
+
--code-fg: #37362f;
|
|
35
|
+
--hl-keyword: #466b03;
|
|
36
|
+
--hl-string: #9e4d04;
|
|
37
|
+
--hl-number: #1d5f8a;
|
|
38
|
+
--hl-comment: #6d6c60;
|
|
39
|
+
--hl-function: #8d35ae;
|
|
40
|
+
--hl-type: #0f6e73;
|
|
41
|
+
--hl-punct: #565549;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #7d8a52;
|
|
45
|
+
--d-text: #33322d;
|
|
46
|
+
--d-muted: #787766;
|
|
47
|
+
--d-accent: #6a9f00;
|
|
48
|
+
--d-fill-1: #f0f6cf;
|
|
49
|
+
--d-fill-2: #ffedd0;
|
|
50
|
+
--d-fill-3: #e5f2d8;
|
|
51
|
+
--d-fill-4: #fff3c2;
|
|
52
|
+
--d-fill-5: #eaf5df;
|
|
53
|
+
--d-fill-6: #ffe9dc;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #23261c;
|
|
57
|
+
--term-fg: #e6e8dd;
|
|
58
|
+
--term-prompt: #c2e858;
|
|
59
|
+
--term-cursor: #c2e858;
|
|
60
|
+
--term-selection: rgba(194, 232, 88, 0.26);
|
|
61
|
+
--ansi-black: #93958a;
|
|
62
|
+
--ansi-red: #f2917e;
|
|
63
|
+
--ansi-green: #a5d848;
|
|
64
|
+
--ansi-yellow: #f2c552;
|
|
65
|
+
--ansi-blue: #8db5e2;
|
|
66
|
+
--ansi-magenta: #cba3d8;
|
|
67
|
+
--ansi-cyan: #8ecfba;
|
|
68
|
+
--ansi-white: #e8eae0;
|
|
69
|
+
--ansi-bright-black: #a8aa9e;
|
|
70
|
+
--ansi-bright-red: #f7b2a3;
|
|
71
|
+
--ansi-bright-green: #c0ea75;
|
|
72
|
+
--ansi-bright-yellow: #f8d67e;
|
|
73
|
+
--ansi-bright-blue: #adcbec;
|
|
74
|
+
--ansi-bright-magenta: #dcbfe8;
|
|
75
|
+
--ansi-bright-cyan: #abe0d0;
|
|
76
|
+
--ansi-bright-white: #fcfdf8;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · coastal
|
|
3
|
+
light · Sea-sky gradient, navy depth, coral buoy accent
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: linear-gradient(180deg, #eff8fd 0%, #e4f0f9 60%, #deebf3 100%);
|
|
10
|
+
--bg-accent: linear-gradient(180deg, #d5e9f5 0%, #c5ddef 100%);
|
|
11
|
+
--fg: #16324f;
|
|
12
|
+
--muted: #4e6478;
|
|
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: #0e2a45;
|
|
19
|
+
--heading-weight: 800;
|
|
20
|
+
--link: #0e5e8a;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #e37155;
|
|
24
|
+
--accent-contrast: #38100a;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: rgba(255, 255, 255, 0.85);
|
|
28
|
+
--block-border: 1px solid #cadeed;
|
|
29
|
+
--block-radius: 14px;
|
|
30
|
+
--shadow: 0 6px 22px rgba(20, 60, 100, 0.1);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #e2eef7;
|
|
34
|
+
--code-fg: #1d3650;
|
|
35
|
+
--hl-keyword: #0e5e8a;
|
|
36
|
+
--hl-string: #276b46;
|
|
37
|
+
--hl-number: #a83a20;
|
|
38
|
+
--hl-comment: #5b6d80;
|
|
39
|
+
--hl-function: #7a3f92;
|
|
40
|
+
--hl-type: #0f6e73;
|
|
41
|
+
--hl-punct: #3e5468;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #4a7292;
|
|
45
|
+
--d-text: #16324f;
|
|
46
|
+
--d-muted: #607890;
|
|
47
|
+
--d-accent: #e2512d;
|
|
48
|
+
--d-fill-1: #d2e8f5;
|
|
49
|
+
--d-fill-2: #c8e2f2;
|
|
50
|
+
--d-fill-3: #dceef8;
|
|
51
|
+
--d-fill-4: #bfdcee;
|
|
52
|
+
--d-fill-5: #d5ecf8;
|
|
53
|
+
--d-fill-6: #e2f2fa;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #132535;
|
|
57
|
+
--term-fg: #dae6f0;
|
|
58
|
+
--term-prompt: #ffa088;
|
|
59
|
+
--term-cursor: #ffa088;
|
|
60
|
+
--term-selection: rgba(255, 160, 136, 0.25);
|
|
61
|
+
--ansi-black: #8095a8;
|
|
62
|
+
--ansi-red: #f58e7c;
|
|
63
|
+
--ansi-green: #8bd2a5;
|
|
64
|
+
--ansi-yellow: #e5c478;
|
|
65
|
+
--ansi-blue: #7cb8e8;
|
|
66
|
+
--ansi-magenta: #c2a2dd;
|
|
67
|
+
--ansi-cyan: #7ed2d5;
|
|
68
|
+
--ansi-white: #dfe9f0;
|
|
69
|
+
--ansi-bright-black: #98abbc;
|
|
70
|
+
--ansi-bright-red: #f8ae9e;
|
|
71
|
+
--ansi-bright-green: #abe4c0;
|
|
72
|
+
--ansi-bright-yellow: #f0d69e;
|
|
73
|
+
--ansi-bright-blue: #a5cef2;
|
|
74
|
+
--ansi-bright-magenta: #d6bfec;
|
|
75
|
+
--ansi-bright-cyan: #a3e4e6;
|
|
76
|
+
--ansi-bright-white: #f6fafc;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · cosmos
|
|
3
|
+
dark · Nebula purples on space black — stargazer magenta
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
/* palette-rule exceptions (test/palette-rules.mjs):
|
|
8
|
+
rule-exception: R2 the nebula duotone canvas is the identity
|
|
9
|
+
═══════════════════════════════════════════════════════════════ */
|
|
10
|
+
|
|
11
|
+
.decklight {
|
|
12
|
+
/* ── canvas ─────────────────────────────── */
|
|
13
|
+
--bg: linear-gradient(200deg, #0e0619 0%, #1c0f3d 55%, #2a1152 100%);
|
|
14
|
+
--bg-accent: radial-gradient(ellipse at 30% 20%, #3b1a6e 0%, #14082b 70%);
|
|
15
|
+
--fg: #ece5fb;
|
|
16
|
+
--muted: #b3a5d6;
|
|
17
|
+
|
|
18
|
+
/* ── type ───────────────────────────────── */
|
|
19
|
+
--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
20
|
+
--font-heading: "Avenir Next", Avenir, Futura, "Century Gothic", "Segoe UI", sans-serif;
|
|
21
|
+
--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
|
|
22
|
+
--heading-color: #fafafa;
|
|
23
|
+
--heading-weight: 800;
|
|
24
|
+
--link: #a88fff;
|
|
25
|
+
|
|
26
|
+
/* ── accent ─────────────────────────────── */
|
|
27
|
+
--accent: #eb82c2;
|
|
28
|
+
--accent-contrast: #33001d;
|
|
29
|
+
|
|
30
|
+
/* ── blocks ─────────────────────────────── */
|
|
31
|
+
--block-bg: rgba(40, 20, 78, 0.5);
|
|
32
|
+
--block-border: 1px solid rgba(168, 143, 255, 0.28);
|
|
33
|
+
--block-radius: 16px;
|
|
34
|
+
--shadow: 0 14px 44px rgba(8, 2, 24, 0.6);
|
|
35
|
+
|
|
36
|
+
/* ── code ───────────────────────────────── */
|
|
37
|
+
--code-bg: #150b2e;
|
|
38
|
+
--code-fg: #e6defa;
|
|
39
|
+
--hl-keyword: #c79bff;
|
|
40
|
+
--hl-string: #8be8c8;
|
|
41
|
+
--hl-number: #ffb2d9;
|
|
42
|
+
--hl-comment: #8f82b8;
|
|
43
|
+
--hl-function: #8fb5ff;
|
|
44
|
+
--hl-type: #6fd7e8;
|
|
45
|
+
--hl-punct: #b2a6d4;
|
|
46
|
+
|
|
47
|
+
/* ── diagram ────────────────────────────── */
|
|
48
|
+
--d-stroke: #8f6fdc;
|
|
49
|
+
--d-text: #ece5fb;
|
|
50
|
+
--d-muted: #a394cc;
|
|
51
|
+
--d-accent: #ff6ec7;
|
|
52
|
+
--d-fill-1: #241348;
|
|
53
|
+
--d-fill-2: #31175c;
|
|
54
|
+
--d-fill-3: #1e1f52;
|
|
55
|
+
--d-fill-4: #3a1550;
|
|
56
|
+
--d-fill-5: #291c5e;
|
|
57
|
+
--d-fill-6: #351d68;
|
|
58
|
+
|
|
59
|
+
/* ── terminal ───────────────────────────── */
|
|
60
|
+
--term-bg: #100822;
|
|
61
|
+
--term-fg: #e0d8f5;
|
|
62
|
+
--term-prompt: #ff6ec7;
|
|
63
|
+
--term-cursor: #ff6ec7;
|
|
64
|
+
--term-selection: rgba(255, 110, 199, 0.26);
|
|
65
|
+
--ansi-black: #8d81b0;
|
|
66
|
+
--ansi-red: #ff7e9e;
|
|
67
|
+
--ansi-green: #7ce8b8;
|
|
68
|
+
--ansi-yellow: #ffd082;
|
|
69
|
+
--ansi-blue: #8fa3ff;
|
|
70
|
+
--ansi-magenta: #d79bff;
|
|
71
|
+
--ansi-cyan: #7edcf0;
|
|
72
|
+
--ansi-white: #e8e2f8;
|
|
73
|
+
--ansi-bright-black: #a89cc8;
|
|
74
|
+
--ansi-bright-red: #ffa5bc;
|
|
75
|
+
--ansi-bright-green: #a5f2ce;
|
|
76
|
+
--ansi-bright-yellow: #ffdfa5;
|
|
77
|
+
--ansi-bright-blue: #b0bcff;
|
|
78
|
+
--ansi-bright-magenta: #e5bcff;
|
|
79
|
+
--ansi-bright-cyan: #a8e9f5;
|
|
80
|
+
--ansi-bright-white: #fafafa;
|
|
81
|
+
|
|
82
|
+
/* ── builds ─────────────────────────────── */
|
|
83
|
+
--dim-opacity: 0.3;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.decklight h1, .decklight h2 { letter-spacing: 0.04em; }
|
package/themes/dune.css
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
Decklight theme · dune
|
|
3
|
+
light · Desert noon — sandstone, terracotta, wide serif display
|
|
4
|
+
Token contract: SPEC.md §5 — all values validated by test/contrast.mjs
|
|
5
|
+
═══════════════════════════════════════════════════════════════ */
|
|
6
|
+
|
|
7
|
+
.decklight {
|
|
8
|
+
/* ── canvas ─────────────────────────────── */
|
|
9
|
+
--bg: #f1e9db;
|
|
10
|
+
--bg-accent: #ecdfc6;
|
|
11
|
+
--fg: #453322;
|
|
12
|
+
--muted: #78644d;
|
|
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: #8a4519;
|
|
19
|
+
--heading-weight: 700;
|
|
20
|
+
--link: #9c4a12;
|
|
21
|
+
|
|
22
|
+
/* ── accent ─────────────────────────────── */
|
|
23
|
+
--accent: #aa4c1c;
|
|
24
|
+
--accent-contrast: #fff6ee;
|
|
25
|
+
|
|
26
|
+
/* ── blocks ─────────────────────────────── */
|
|
27
|
+
--block-bg: #faf4e8;
|
|
28
|
+
--block-border: 1px solid #ddceb2;
|
|
29
|
+
--block-radius: 10px;
|
|
30
|
+
--shadow: 0 5px 18px rgba(120, 80, 30, 0.1);
|
|
31
|
+
|
|
32
|
+
/* ── code ───────────────────────────────── */
|
|
33
|
+
--code-bg: #ecdfc6;
|
|
34
|
+
--code-fg: #42342a;
|
|
35
|
+
--hl-keyword: #9c4a12;
|
|
36
|
+
--hl-string: #276238;
|
|
37
|
+
--hl-number: #8a2e42;
|
|
38
|
+
--hl-comment: #6f5f4a;
|
|
39
|
+
--hl-function: #1d558a;
|
|
40
|
+
--hl-type: #7a4092;
|
|
41
|
+
--hl-punct: #5c4c38;
|
|
42
|
+
|
|
43
|
+
/* ── diagram ────────────────────────────── */
|
|
44
|
+
--d-stroke: #8a6f4e;
|
|
45
|
+
--d-text: #453322;
|
|
46
|
+
--d-muted: #7d6a52;
|
|
47
|
+
--d-accent: #c05621;
|
|
48
|
+
--d-fill-1: #ecdcbb;
|
|
49
|
+
--d-fill-2: #f0e2cd;
|
|
50
|
+
--d-fill-3: #e6d4b0;
|
|
51
|
+
--d-fill-4: #f4e6c2;
|
|
52
|
+
--d-fill-5: #e9dabd;
|
|
53
|
+
--d-fill-6: #efe0b6;
|
|
54
|
+
|
|
55
|
+
/* ── terminal ───────────────────────────── */
|
|
56
|
+
--term-bg: #2a2015;
|
|
57
|
+
--term-fg: #eee3d0;
|
|
58
|
+
--term-prompt: #f0a868;
|
|
59
|
+
--term-cursor: #f0a868;
|
|
60
|
+
--term-selection: rgba(240, 168, 104, 0.26);
|
|
61
|
+
--ansi-black: #9a8a74;
|
|
62
|
+
--ansi-red: #f08a72;
|
|
63
|
+
--ansi-green: #adc576;
|
|
64
|
+
--ansi-yellow: #eec063;
|
|
65
|
+
--ansi-blue: #96b3d8;
|
|
66
|
+
--ansi-magenta: #cfa0c0;
|
|
67
|
+
--ansi-cyan: #93ccb0;
|
|
68
|
+
--ansi-white: #ece0cc;
|
|
69
|
+
--ansi-bright-black: #ab9c86;
|
|
70
|
+
--ansi-bright-red: #f5a992;
|
|
71
|
+
--ansi-bright-green: #c5d898;
|
|
72
|
+
--ansi-bright-yellow: #f5d38a;
|
|
73
|
+
--ansi-bright-blue: #b3c8e5;
|
|
74
|
+
--ansi-bright-magenta: #dfbad5;
|
|
75
|
+
--ansi-bright-cyan: #b0dfc6;
|
|
76
|
+
--ansi-bright-white: #faf3e6;
|
|
77
|
+
|
|
78
|
+
/* ── builds ─────────────────────────────── */
|
|
79
|
+
--dim-opacity: 0.35;
|
|
80
|
+
}
|