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.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +257 -0
  3. package/SPEC.md +372 -0
  4. package/cli/bundle.mjs +388 -0
  5. package/cli/decklight.mjs +95 -0
  6. package/cli/edit.mjs +142 -0
  7. package/cli/init.mjs +215 -0
  8. package/cli/rec.mjs +538 -0
  9. package/dist/decklight.css +1068 -0
  10. package/dist/decklight.js +239 -0
  11. package/dist/decklight.js.map +7 -0
  12. package/docs/architecture.svg +94 -0
  13. package/docs/demo.svg +124 -0
  14. package/package.json +54 -0
  15. package/themes/README.md +61 -0
  16. package/themes/aliens.css +84 -0
  17. package/themes/apple2.css +126 -0
  18. package/themes/aurora.css +84 -0
  19. package/themes/berry.css +80 -0
  20. package/themes/blade-runner.css +83 -0
  21. package/themes/c64.css +85 -0
  22. package/themes/carbon.css +82 -0
  23. package/themes/citrus.css +80 -0
  24. package/themes/coastal.css +80 -0
  25. package/themes/cosmos.css +86 -0
  26. package/themes/dune.css +80 -0
  27. package/themes/eclipse.css +82 -0
  28. package/themes/ember.css +80 -0
  29. package/themes/fjord.css +80 -0
  30. package/themes/friends.css +82 -0
  31. package/themes/gallery.html +203 -0
  32. package/themes/gameboy.css +118 -0
  33. package/themes/genesis.css +84 -0
  34. package/themes/glacier.css +82 -0
  35. package/themes/godfather.css +82 -0
  36. package/themes/graphite.css +80 -0
  37. package/themes/harvest.css +80 -0
  38. package/themes/ibm-modern.css +83 -0
  39. package/themes/ibm-oldschool.css +84 -0
  40. package/themes/ink.css +82 -0
  41. package/themes/latte.css +80 -0
  42. package/themes/linen.css +80 -0
  43. package/themes/meadow.css +80 -0
  44. package/themes/metropolis.css +85 -0
  45. package/themes/miami-vice.css +84 -0
  46. package/themes/midnight.css +80 -0
  47. package/themes/mint.css +82 -0
  48. package/themes/moss.css +82 -0
  49. package/themes/obsidian.css +82 -0
  50. package/themes/orchid.css +82 -0
  51. package/themes/packs.json +89 -0
  52. package/themes/paper.css +83 -0
  53. package/themes/peony.css +84 -0
  54. package/themes/porcelain.css +82 -0
  55. package/themes/pulp-fiction.css +84 -0
  56. package/themes/reveal-beige.css +87 -0
  57. package/themes/reveal-black.css +83 -0
  58. package/themes/reveal-blood.css +84 -0
  59. package/themes/reveal-dracula.css +83 -0
  60. package/themes/reveal-league.css +88 -0
  61. package/themes/reveal-moon.css +83 -0
  62. package/themes/reveal-night.css +86 -0
  63. package/themes/reveal-serif.css +82 -0
  64. package/themes/reveal-simple.css +84 -0
  65. package/themes/reveal-sky.css +85 -0
  66. package/themes/reveal-solarized.css +83 -0
  67. package/themes/reveal-white.css +82 -0
  68. package/themes/sepia.css +81 -0
  69. package/themes/seriph.css +82 -0
  70. package/themes/severance.css +82 -0
  71. package/themes/slate.css +80 -0
  72. package/themes/snes.css +82 -0
  73. package/themes/star-wars.css +85 -0
  74. package/themes/storm.css +80 -0
  75. package/themes/stranger-things.css +84 -0
  76. package/themes/synthwave.css +90 -0
  77. package/themes/terminator.css +84 -0
  78. package/themes/velvet.css +80 -0
  79. package/tools/gemini-tts.mjs +140 -0
  80. package/tools/publish-site-voices.mjs +71 -0
  81. package/tools/voiceover-server.mjs +0 -0
  82. package/tools/voiceover.mjs +155 -0
@@ -0,0 +1,83 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ Decklight theme · reveal-black
3
+ dark · near-black canvas, clean sans, the classic Reveal blue
4
+ Inspired by Reveal.js 'black' (the default) — palette kept canonical where possible,
5
+ every gated pair fitted to the WCAG contract.
6
+ rule-exception: R3 the canonical Reveal link blue (#42affa) is the identity
7
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
8
+ ═══════════════════════════════════════════════════════════════ */
9
+
10
+ .decklight {
11
+ /* ── canvas ─────────────────────────────── */
12
+ --bg: #191919;
13
+ --bg-accent: none;
14
+ --fg: #fdfdfd;
15
+ --muted: #a9a9a9;
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: #fdfdfd;
22
+ --heading-weight: 600;
23
+ --link: #42affa;
24
+
25
+ /* ── accent ─────────────────────────────── */
26
+ --accent: #42affa;
27
+ --accent-contrast: #131313;
28
+
29
+ /* ── blocks ─────────────────────────────── */
30
+ --block-bg: #242222;
31
+ --block-border: 1px solid #3e3131;
32
+ --block-radius: 8px;
33
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
34
+
35
+ /* ── code ───────────────────────────────── */
36
+ --code-bg: #272822;
37
+ --code-fg: #f8f8f2;
38
+ --hl-keyword: #fa4e8c;
39
+ --hl-string: #e6db74;
40
+ --hl-number: #ae81ff;
41
+ --hl-comment: #787460;
42
+ --hl-function: #a6e22e;
43
+ --hl-type: #66d9ef;
44
+ --hl-punct: #f8f8f2;
45
+
46
+ /* ── diagram ────────────────────────────── */
47
+ --d-stroke: #a9a9a9;
48
+ --d-text: #fdfdfd;
49
+ --d-muted: #a9a9a9;
50
+ --d-accent: #42affa;
51
+ --d-fill-1: #2f2222;
52
+ --d-fill-2: #372d23;
53
+ --d-fill-3: #243741;
54
+ --d-fill-4: #282f22;
55
+ --d-fill-5: #2a2337;
56
+ --d-fill-6: #412433;
57
+
58
+ /* ── terminal ───────────────────────────── */
59
+ --term-bg: #0f0e0e;
60
+ --term-fg: #e6e6e2;
61
+ --term-prompt: #42affa;
62
+ --term-cursor: #42affa;
63
+ --term-selection: rgba(66, 175, 250, 0.28);
64
+ --ansi-black: #89969f;
65
+ --ansi-red: #dc7c60;
66
+ --ansi-green: #60dc76;
67
+ --ansi-yellow: #dccf60;
68
+ --ansi-blue: #6088dc;
69
+ --ansi-magenta: #d360dc;
70
+ --ansi-cyan: #60dbdc;
71
+ --ansi-white: #dee1e3;
72
+ --ansi-bright-black: #a7afb4;
73
+ --ansi-bright-red: #eba38e;
74
+ --ansi-bright-green: #8eeb9f;
75
+ --ansi-bright-yellow: #ebe18e;
76
+ --ansi-bright-blue: #8eaceb;
77
+ --ansi-bright-magenta: #e48eeb;
78
+ --ansi-bright-cyan: #8eeaeb;
79
+ --ansi-bright-white: #f2f2f3;
80
+
81
+ /* ── builds ─────────────────────────────── */
82
+ --dim-opacity: 0.3;
83
+ }
@@ -0,0 +1,84 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ Decklight theme · reveal-blood
3
+ dark · coal black, dried-blood red, hard uppercase
4
+ Inspired by Reveal.js 'blood' — 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: #1a1a1a;
12
+ --bg-accent: none;
13
+ --fg: #eeeeee;
14
+ --muted: #a0a0a0;
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: #eeeeee;
21
+ --heading-weight: 700;
22
+ --link: #e06673;
23
+
24
+ /* ── accent ─────────────────────────────── */
25
+ --accent: #aa2233;
26
+ --accent-contrast: #fbfbfa;
27
+
28
+ /* ── blocks ─────────────────────────────── */
29
+ --block-bg: #252323;
30
+ --block-border: 1px solid #3f3232;
31
+ --block-radius: 4px;
32
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
33
+
34
+ /* ── code ───────────────────────────────── */
35
+ --code-bg: #242020;
36
+ --code-fg: #eeeeec;
37
+ --hl-keyword: #fa3f82;
38
+ --hl-string: #e6db74;
39
+ --hl-number: #ae81ff;
40
+ --hl-comment: #75715e;
41
+ --hl-function: #a6e22e;
42
+ --hl-type: #66d9ef;
43
+ --hl-punct: #f8f8f2;
44
+
45
+ /* ── diagram ────────────────────────────── */
46
+ --d-stroke: #a0a0a0;
47
+ --d-text: #eeeeee;
48
+ --d-muted: #a0a0a0;
49
+ --d-accent: #d83c4f;
50
+ --d-fill-1: #302323;
51
+ --d-fill-2: #392e24;
52
+ --d-fill-3: #253842;
53
+ --d-fill-4: #293023;
54
+ --d-fill-5: #2b2439;
55
+ --d-fill-6: #422534;
56
+
57
+ /* ── terminal ───────────────────────────── */
58
+ --term-bg: #100f0f;
59
+ --term-fg: #e6e6e2;
60
+ --term-prompt: #bf2639;
61
+ --term-cursor: #bf2639;
62
+ --term-selection: rgba(170, 34, 51, 0.28);
63
+ --ansi-black: #9f898c;
64
+ --ansi-red: #cf826e;
65
+ --ansi-green: #6ecf7d;
66
+ --ansi-yellow: #cfc26e;
67
+ --ansi-blue: #6e8fcf;
68
+ --ansi-magenta: #c66ecf;
69
+ --ansi-cyan: #6ecfce;
70
+ --ansi-white: #e3dedf;
71
+ --ansi-bright-black: #b4a7a9;
72
+ --ansi-bright-red: #e3a696;
73
+ --ansi-bright-green: #96e3a2;
74
+ --ansi-bright-yellow: #e3da96;
75
+ --ansi-bright-blue: #96b1e3;
76
+ --ansi-bright-magenta: #dc96e3;
77
+ --ansi-bright-cyan: #96e3e3;
78
+ --ansi-bright-white: #f3f2f2;
79
+
80
+ /* ── builds ─────────────────────────────── */
81
+ --dim-opacity: 0.3;
82
+ }
83
+
84
+ .decklight h1, .decklight h2 { text-transform: uppercase; letter-spacing: 0.01em; }
@@ -0,0 +1,83 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ Decklight theme · reveal-dracula
3
+ dark · the vampire palette: purple headings, pink links, neon syntax
4
+ Inspired by Dracula (Zeno Rocha) / Reveal.js 'dracula' — palette kept canonical where possible,
5
+ every gated pair fitted to the WCAG contract.
6
+ rule-exception: R3 the canonical Dracula purple/pink accents are the identity
7
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
8
+ ═══════════════════════════════════════════════════════════════ */
9
+
10
+ .decklight {
11
+ /* ── canvas ─────────────────────────────── */
12
+ --bg: #282a36;
13
+ --bg-accent: none;
14
+ --fg: #f8f8f2;
15
+ --muted: #9ba3c6;
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: #bd93f9;
22
+ --heading-weight: 700;
23
+ --link: #ff79c6;
24
+
25
+ /* ── accent ─────────────────────────────── */
26
+ --accent: #bd93f9;
27
+ --accent-contrast: #131313;
28
+
29
+ /* ── blocks ─────────────────────────────── */
30
+ --block-bg: #2f3243;
31
+ --block-border: 1px solid #444757;
32
+ --block-radius: 8px;
33
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
34
+
35
+ /* ── code ───────────────────────────────── */
36
+ --code-bg: #21222c;
37
+ --code-fg: #f8f8f2;
38
+ --hl-keyword: #ff79c6;
39
+ --hl-string: #f1fa8c;
40
+ --hl-number: #bd93f9;
41
+ --hl-comment: #6272a4;
42
+ --hl-function: #50fa7b;
43
+ --hl-type: #8be9fd;
44
+ --hl-punct: #f8f8f2;
45
+
46
+ /* ── diagram ────────────────────────────── */
47
+ --d-stroke: #9ba3c6;
48
+ --d-text: #f8f8f2;
49
+ --d-muted: #9ba3c6;
50
+ --d-accent: #bd93f9;
51
+ --d-fill-1: #2f3241;
52
+ --d-fill-2: #362c44;
53
+ --d-fill-3: #48283a;
54
+ --d-fill-4: #2f4134;
55
+ --d-fill-5: #2c4044;
56
+ --d-fill-6: #454828;
57
+
58
+ /* ── terminal ───────────────────────────── */
59
+ --term-bg: #1e1f29;
60
+ --term-fg: #e6e6e2;
61
+ --term-prompt: #bd93f9;
62
+ --term-cursor: #bd93f9;
63
+ --term-selection: rgba(189, 147, 249, 0.28);
64
+ --ansi-black: #8a91b5;
65
+ --ansi-red: #ff5555;
66
+ --ansi-green: #50fa7b;
67
+ --ansi-yellow: #f1fa8c;
68
+ --ansi-blue: #8be9fd;
69
+ --ansi-magenta: #ff79c6;
70
+ --ansi-cyan: #8be9fd;
71
+ --ansi-white: #f8f8f2;
72
+ --ansi-bright-black: #afb4cd;
73
+ --ansi-bright-red: #ff9292;
74
+ --ansi-bright-green: #8cfca8;
75
+ --ansi-bright-yellow: #f8fdc7;
76
+ --ansi-bright-blue: #c7f4fe;
77
+ --ansi-bright-magenta: #ffb6e0;
78
+ --ansi-bright-cyan: #c7f4fe;
79
+ --ansi-bright-white: #f8f8f2;
80
+
81
+ /* ── builds ─────────────────────────────── */
82
+ --dim-opacity: 0.3;
83
+ }
@@ -0,0 +1,88 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500&display=swap');
2
+
3
+ /* ═══════════════════════════════════════════════════════════════
4
+ Decklight theme · reveal-league
5
+ dark · gunmetal wash, condensed uppercase display, electric cyan
6
+ Inspired by Reveal.js 'league' (the original reveal look) — palette kept canonical where possible,
7
+ every gated pair fitted to the WCAG contract.
8
+ rule-exception: R3 the canonical league cyan (#13daec) is the identity
9
+ rule-exception: R2 the canonical gunmetal wash canvas
10
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
11
+ ═══════════════════════════════════════════════════════════════ */
12
+
13
+ .decklight {
14
+ /* ── canvas ─────────────────────────────── */
15
+ --bg: linear-gradient(180deg, #555a5f 0%, #1c1e20 100%);
16
+ --bg-accent: none;
17
+ --fg: #eeeeee;
18
+ --muted: #b8bcbf;
19
+
20
+ /* ── type ───────────────────────────────── */
21
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
22
+ --font-heading: "League Gothic", Oswald, "Arial Narrow", "Avenir Next Condensed", sans-serif;
23
+ --font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
24
+ --heading-color: #eeeeee;
25
+ --heading-weight: 500;
26
+ --link: #13daec;
27
+
28
+ /* ── accent ─────────────────────────────── */
29
+ --accent: #13daec;
30
+ --accent-contrast: #131313;
31
+
32
+ /* ── blocks ─────────────────────────────── */
33
+ --block-bg: #5c646d;
34
+ --block-border: 1px solid #6a7987;
35
+ --block-radius: 4px;
36
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
37
+
38
+ /* ── code ───────────────────────────────── */
39
+ --code-bg: #272822;
40
+ --code-fg: #f8f8f2;
41
+ --hl-keyword: #fa4e8c;
42
+ --hl-string: #e6db74;
43
+ --hl-number: #ae81ff;
44
+ --hl-comment: #787460;
45
+ --hl-function: #a6e22e;
46
+ --hl-type: #66d9ef;
47
+ --hl-punct: #f8f8f2;
48
+
49
+ /* ── diagram ────────────────────────────── */
50
+ --d-stroke: #b8bcbf;
51
+ --d-text: #eeeeee;
52
+ --d-muted: #b8bcbf;
53
+ --d-accent: #13daec;
54
+ --d-fill-1: #2f3841;
55
+ --d-fill-2: #2c2c44;
56
+ --d-fill-3: #484328;
57
+ --d-fill-4: #412f41;
58
+ --d-fill-5: #30442c;
59
+ --d-fill-6: #284848;
60
+
61
+ /* ── terminal ───────────────────────────── */
62
+ --term-bg: #485057;
63
+ --term-fg: #e6e6e2;
64
+ --term-prompt: #13daec;
65
+ --term-cursor: #13daec;
66
+ --term-selection: rgba(19, 218, 236, 0.28);
67
+ --ansi-black: #92a4a5;
68
+ --ansi-red: #e38582;
69
+ --ansi-green: #62dc60;
70
+ --ansi-yellow: #dcb760;
71
+ --ansi-blue: #69a5de;
72
+ --ansi-magenta: #cb86e4;
73
+ --ansi-cyan: #60dcc5;
74
+ --ansi-white: #dee2e3;
75
+ --ansi-bright-black: #a7b3b4;
76
+ --ansi-bright-red: #eb918e;
77
+ --ansi-bright-green: #90eb8e;
78
+ --ansi-bright-yellow: #ebcf8e;
79
+ --ansi-bright-blue: #8ebeeb;
80
+ --ansi-bright-magenta: #d28eeb;
81
+ --ansi-bright-cyan: #8eebda;
82
+ --ansi-bright-white: #f2f3f3;
83
+
84
+ /* ── builds ─────────────────────────────── */
85
+ --dim-opacity: 0.3;
86
+ }
87
+
88
+ .decklight h1, .decklight h2 { text-transform: uppercase; letter-spacing: 0.02em; }
@@ -0,0 +1,83 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ Decklight theme · reveal-moon
3
+ dark · base03 deep teal, cream headings, the eight canonical accents
4
+ Inspired by Reveal.js 'moon' / Solarized Dark — palette kept canonical where possible,
5
+ every gated pair fitted to the WCAG contract.
6
+ rule-exception: R2 the canonical Solarized base03 deep-teal canvas
7
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
8
+ ═══════════════════════════════════════════════════════════════ */
9
+
10
+ .decklight {
11
+ /* ── canvas ─────────────────────────────── */
12
+ --bg: #002b36;
13
+ --bg-accent: none;
14
+ --fg: #93a1a1;
15
+ --muted: #7d8f91;
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: #eee8d5;
22
+ --heading-weight: 600;
23
+ --link: #268bd2;
24
+
25
+ /* ── accent ─────────────────────────────── */
26
+ --accent: #268bd2;
27
+ --accent-contrast: #1c1c17;
28
+
29
+ /* ── blocks ─────────────────────────────── */
30
+ --block-bg: #1c2b2f;
31
+ --block-border: 1px solid #333e41;
32
+ --block-radius: 8px;
33
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
34
+
35
+ /* ── code ───────────────────────────────── */
36
+ --code-bg: #073642;
37
+ --code-fg: #93a1a1;
38
+ --hl-keyword: #92a800;
39
+ --hl-string: #2dada3;
40
+ --hl-number: #e279ac;
41
+ --hl-comment: #698089;
42
+ --hl-function: #4ca2df;
43
+ --hl-type: #c49500;
44
+ --hl-punct: #93a1a1;
45
+
46
+ /* ── diagram ────────────────────────────── */
47
+ --d-stroke: #7d8f91;
48
+ --d-text: #93a1a1;
49
+ --d-muted: #7d8f91;
50
+ --d-accent: #268bd2;
51
+ --d-fill-1: #242e31;
52
+ --d-fill-2: #3a3425;
53
+ --d-fill-3: #263743;
54
+ --d-fill-4: #2f3124;
55
+ --d-fill-5: #3a252f;
56
+ --d-fill-6: #264341;
57
+
58
+ /* ── terminal ───────────────────────────── */
59
+ --term-bg: #002129;
60
+ --term-fg: #e6e6e2;
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,86 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700&display=swap');
2
+
3
+ /* ═══════════════════════════════════════════════════════════════
4
+ Decklight theme · reveal-night
5
+ dark · true dark, Montserrat caps, amber links
6
+ Inspired by Reveal.js 'night' — palette kept canonical where possible,
7
+ every gated pair fitted to the WCAG contract.
8
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
9
+ ═══════════════════════════════════════════════════════════════ */
10
+
11
+ .decklight {
12
+ /* ── canvas ─────────────────────────────── */
13
+ --bg: #111111;
14
+ --bg-accent: none;
15
+ --fg: #eeeeee;
16
+ --muted: #9c9c98;
17
+
18
+ /* ── type ───────────────────────────────── */
19
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
20
+ --font-heading: Montserrat, "Avenir Next", "Segoe UI", sans-serif;
21
+ --font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
22
+ --heading-color: #eeeeee;
23
+ --heading-weight: 700;
24
+ --link: #e5ac55;
25
+
26
+ /* ── accent ─────────────────────────────── */
27
+ --accent: #e5ac55;
28
+ --accent-contrast: #131313;
29
+
30
+ /* ── blocks ─────────────────────────────── */
31
+ --block-bg: #1c1a1a;
32
+ --block-border: 1px solid #352a2a;
33
+ --block-radius: 8px;
34
+ --shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
35
+
36
+ /* ── code ───────────────────────────────── */
37
+ --code-bg: #1d1d1b;
38
+ --code-fg: #eeeeec;
39
+ --hl-keyword: #f93078;
40
+ --hl-string: #e6db74;
41
+ --hl-number: #ae81ff;
42
+ --hl-comment: #75715e;
43
+ --hl-function: #a6e22e;
44
+ --hl-type: #66d9ef;
45
+ --hl-punct: #f8f8f2;
46
+
47
+ /* ── diagram ────────────────────────────── */
48
+ --d-stroke: #9c9c98;
49
+ --d-text: #eeeeee;
50
+ --d-muted: #9c9c98;
51
+ --d-accent: #e5ac55;
52
+ --d-fill-1: #251b1b;
53
+ --d-fill-2: #2e251d;
54
+ --d-fill-3: #1f2e36;
55
+ --d-fill-4: #20251b;
56
+ --d-fill-5: #231d2e;
57
+ --d-fill-6: #361f2b;
58
+
59
+ /* ── terminal ───────────────────────────── */
60
+ --term-bg: #0b0a0a;
61
+ --term-fg: #e6e6e2;
62
+ --term-prompt: #e5ac55;
63
+ --term-cursor: #e5ac55;
64
+ --term-selection: rgba(229, 172, 85, 0.28);
65
+ --ansi-black: #9f9689;
66
+ --ansi-red: #d36e69;
67
+ --ansi-green: #69d369;
68
+ --ansi-yellow: #d3b569;
69
+ --ansi-blue: #699fd3;
70
+ --ansi-magenta: #b869d3;
71
+ --ansi-cyan: #69d3c1;
72
+ --ansi-white: #e3e1de;
73
+ --ansi-bright-black: #b4afa7;
74
+ --ansi-bright-red: #e79793;
75
+ --ansi-bright-green: #93e793;
76
+ --ansi-bright-yellow: #e7ce93;
77
+ --ansi-bright-blue: #93bde7;
78
+ --ansi-bright-magenta: #d193e7;
79
+ --ansi-bright-cyan: #93e7d8;
80
+ --ansi-bright-white: #f3f2f2;
81
+
82
+ /* ── builds ─────────────────────────────── */
83
+ --dim-opacity: 0.3;
84
+ }
85
+
86
+ .decklight h1, .decklight h2 { letter-spacing: -0.01em; }
@@ -0,0 +1,82 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ Decklight theme · reveal-serif
3
+ light · ivory, Palatino headings, browns and quiet inks
4
+ Inspired by Reveal.js 'serif' — 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: #f0f1eb;
12
+ --bg-accent: none;
13
+ --fg: #16161a;
14
+ --muted: #6e6a5e;
15
+
16
+ /* ── type ───────────────────────────────── */
17
+ --font-body: "Palatino Linotype", Palatino, "Iowan Old Style", Georgia, serif;
18
+ --font-heading: "Palatino Linotype", Palatino, "Iowan Old Style", Georgia, serif;
19
+ --font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
20
+ --heading-color: #383d3d;
21
+ --heading-weight: 600;
22
+ --link: #51483d;
23
+
24
+ /* ── accent ─────────────────────────────── */
25
+ --accent: #51483d;
26
+ --accent-contrast: #fbfbfa;
27
+
28
+ /* ── blocks ─────────────────────────────── */
29
+ --block-bg: #e8eade;
30
+ --block-border: 1px solid #cfd2c3;
31
+ --block-radius: 6px;
32
+ --shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
33
+
34
+ /* ── code ───────────────────────────────── */
35
+ --code-bg: #26251f;
36
+ --code-fg: #eceae2;
37
+ --hl-keyword: #fa4989;
38
+ --hl-string: #e6db74;
39
+ --hl-number: #ae81ff;
40
+ --hl-comment: #75715e;
41
+ --hl-function: #a6e22e;
42
+ --hl-type: #66d9ef;
43
+ --hl-punct: #f8f8f2;
44
+
45
+ /* ── diagram ────────────────────────────── */
46
+ --d-stroke: #6e6a5e;
47
+ --d-text: #16161a;
48
+ --d-muted: #6e6a5e;
49
+ --d-accent: #51483d;
50
+ --d-fill-1: #e3e6d8;
51
+ --d-fill-2: #d6e4cf;
52
+ --d-fill-3: #d4c6e3;
53
+ --d-fill-4: #d8e6e1;
54
+ --d-fill-5: #e4cfda;
55
+ --d-fill-6: #e3d9c6;
56
+
57
+ /* ── terminal ───────────────────────────── */
58
+ --term-bg: #282b1d;
59
+ --term-fg: #eceae6;
60
+ --term-prompt: #857764;
61
+ --term-cursor: #857764;
62
+ --term-selection: rgba(81, 72, 61, 0.28);
63
+ --ansi-black: #9f9589;
64
+ --ansi-red: #c37a79;
65
+ --ansi-green: #7cc379;
66
+ --ansi-yellow: #c3ab79;
67
+ --ansi-blue: #79a1c3;
68
+ --ansi-magenta: #ae79c3;
69
+ --ansi-cyan: #79c3b4;
70
+ --ansi-white: #e3e1de;
71
+ --ansi-bright-black: #b4aea7;
72
+ --ansi-bright-red: #db9f9e;
73
+ --ansi-bright-green: #a0db9e;
74
+ --ansi-bright-yellow: #dbc89e;
75
+ --ansi-bright-blue: #9ebfdb;
76
+ --ansi-bright-magenta: #ca9edb;
77
+ --ansi-bright-cyan: #9edbcf;
78
+ --ansi-bright-white: #f3f2f2;
79
+
80
+ /* ── builds ─────────────────────────────── */
81
+ --dim-opacity: 0.3;
82
+ }
@@ -0,0 +1,84 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap');
2
+
3
+ /* ═══════════════════════════════════════════════════════════════
4
+ Decklight theme · reveal-simple
5
+ light · bare white, black Lato, one blue
6
+ Inspired by Reveal.js 'simple' — palette kept canonical where possible,
7
+ every gated pair fitted to the WCAG contract.
8
+ Token contract: SPEC.md §5 — validated by test/contrast.mjs
9
+ ═══════════════════════════════════════════════════════════════ */
10
+
11
+ .decklight {
12
+ /* ── canvas ─────────────────────────────── */
13
+ --bg: #fdfdfd;
14
+ --bg-accent: none;
15
+ --fg: #1a1a1a;
16
+ --muted: #70706c;
17
+
18
+ /* ── type ───────────────────────────────── */
19
+ --font-body: Lato, -apple-system, "Segoe UI", Roboto, sans-serif;
20
+ --font-heading: Lato, -apple-system, "Segoe UI", Roboto, sans-serif;
21
+ --font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
22
+ --heading-color: #1a1a1a;
23
+ --heading-weight: 800;
24
+ --link: #3b7bd0;
25
+
26
+ /* ── accent ─────────────────────────────── */
27
+ --accent: #2f6ec3;
28
+ --accent-contrast: #fbfbfa;
29
+
30
+ /* ── blocks ─────────────────────────────── */
31
+ --block-bg: #f3f2f2;
32
+ --block-border: 1px solid #d8d8d4;
33
+ --block-radius: 4px;
34
+ --shadow: 0 5px 18px rgba(30, 30, 40, 0.12);
35
+
36
+ /* ── code ───────────────────────────────── */
37
+ --code-bg: #22242a;
38
+ --code-fg: #eceef2;
39
+ --hl-keyword: #fa4989;
40
+ --hl-string: #e6db74;
41
+ --hl-number: #ae81ff;
42
+ --hl-comment: #75715e;
43
+ --hl-function: #a6e22e;
44
+ --hl-type: #66d9ef;
45
+ --hl-punct: #f8f8f2;
46
+
47
+ /* ── diagram ────────────────────────────── */
48
+ --d-stroke: #70706c;
49
+ --d-text: #1a1a1a;
50
+ --d-muted: #70706c;
51
+ --d-accent: #2f6ec3;
52
+ --d-fill-1: #f2eaea;
53
+ --d-fill-2: #efe9e2;
54
+ --d-fill-3: #dae7ed;
55
+ --d-fill-4: #eef2ea;
56
+ --d-fill-5: #e7e2ef;
57
+ --d-fill-6: #eddae4;
58
+
59
+ /* ── terminal ───────────────────────────── */
60
+ --term-bg: #2b1d1d;
61
+ --term-fg: #eceae6;
62
+ --term-prompt: #3070c7;
63
+ --term-cursor: #3070c7;
64
+ --term-selection: rgba(47, 110, 195, 0.28);
65
+ --ansi-black: #89929f;
66
+ --ansi-red: #cb7472;
67
+ --ansi-green: #74cb72;
68
+ --ansi-yellow: #cbaf72;
69
+ --ansi-blue: #72a0cb;
70
+ --ansi-magenta: #b272cb;
71
+ --ansi-cyan: #72cbba;
72
+ --ansi-white: #dee0e3;
73
+ --ansi-bright-black: #a7acb4;
74
+ --ansi-bright-red: #e09b99;
75
+ --ansi-bright-green: #9be099;
76
+ --ansi-bright-yellow: #e0cb99;
77
+ --ansi-bright-blue: #99bee0;
78
+ --ansi-bright-magenta: #cd99e0;
79
+ --ansi-bright-cyan: #99e0d3;
80
+ --ansi-bright-white: #f2f2f3;
81
+
82
+ /* ── builds ─────────────────────────────── */
83
+ --dim-opacity: 0.3;
84
+ }