mdeck 2.3.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 (268) hide show
  1. package/CHANGELOG.md +259 -0
  2. package/LICENSE +21 -0
  3. package/README.md +156 -0
  4. package/assets/base.css +196 -0
  5. package/assets/extensions/layouts/chapter/extension.toml +26 -0
  6. package/assets/extensions/layouts/chapter/layout.jsx +21 -0
  7. package/assets/extensions/layouts/chapter/starter.md +8 -0
  8. package/assets/extensions/layouts/focus/extension.toml +8 -0
  9. package/assets/extensions/layouts/focus/layout.jsx +10 -0
  10. package/assets/extensions/layouts/focus/starter.md +4 -0
  11. package/assets/extensions/layouts/full-bleed-image/extension.toml +31 -0
  12. package/assets/extensions/layouts/full-bleed-image/layout.jsx +19 -0
  13. package/assets/extensions/layouts/full-bleed-image/starter.md +6 -0
  14. package/assets/extensions/layouts/generic/extension.toml +8 -0
  15. package/assets/extensions/layouts/generic/layout.jsx +8 -0
  16. package/assets/extensions/layouts/generic/starter.md +4 -0
  17. package/assets/extensions/layouts/image-text/extension.toml +25 -0
  18. package/assets/extensions/layouts/image-text/layout.jsx +17 -0
  19. package/assets/extensions/layouts/image-text/starter.md +6 -0
  20. package/assets/extensions/layouts/split/extension.toml +25 -0
  21. package/assets/extensions/layouts/split/layout.jsx +19 -0
  22. package/assets/extensions/layouts/split/starter.md +14 -0
  23. package/assets/extensions/layouts/title/extension.toml +26 -0
  24. package/assets/extensions/layouts/title/layout.jsx +14 -0
  25. package/assets/extensions/layouts/title/starter.md +5 -0
  26. package/assets/extensions/palettes/brand/extension.toml +29 -0
  27. package/assets/extensions/palettes/cobalt/extension.toml +27 -0
  28. package/assets/extensions/palettes/ember/extension.toml +27 -0
  29. package/assets/extensions/palettes/forest/extension.toml +27 -0
  30. package/assets/extensions/palettes/graphite/extension.toml +27 -0
  31. package/assets/extensions/palettes/lagoon/extension.toml +27 -0
  32. package/assets/extensions/palettes/neon/extension.toml +27 -0
  33. package/assets/extensions/palettes/nordic/extension.toml +27 -0
  34. package/assets/extensions/palettes/pastel/extension.toml +30 -0
  35. package/assets/extensions/palettes/phosphor/extension.toml +27 -0
  36. package/assets/extensions/palettes/swiss/extension.toml +27 -0
  37. package/assets/extensions/palettes/terra/extension.toml +27 -0
  38. package/assets/extensions/themes/academic/extension.toml +53 -0
  39. package/assets/extensions/themes/academic/styles.css +631 -0
  40. package/assets/extensions/themes/aurora/extension.toml +37 -0
  41. package/assets/extensions/themes/aurora/styles.css +644 -0
  42. package/assets/extensions/themes/duet/extension.toml +46 -0
  43. package/assets/extensions/themes/duet/styles.css +573 -0
  44. package/assets/extensions/themes/editorial/extension.toml +46 -0
  45. package/assets/extensions/themes/editorial/styles.css +574 -0
  46. package/assets/extensions/themes/fhnw/extension.toml +61 -0
  47. package/assets/extensions/themes/fhnw/styles.css +604 -0
  48. package/assets/extensions/themes/neue/extension.toml +46 -0
  49. package/assets/extensions/themes/neue/styles.css +489 -0
  50. package/assets/extensions/themes/sketch/extension.toml +48 -0
  51. package/assets/extensions/themes/sketch/styles.css +633 -0
  52. package/assets/extensions/themes/terminal/extension.toml +38 -0
  53. package/assets/extensions/themes/terminal/styles.css +550 -0
  54. package/assets/logo/avatar.png +0 -0
  55. package/assets/logo/logo-dark.svg +10 -0
  56. package/assets/logo/logo-light.svg +10 -0
  57. package/assets/logo/mark.svg +15 -0
  58. package/bin/mdeck.js +2 -0
  59. package/docs/README.md +8 -0
  60. package/docs/reference/authoring.md +795 -0
  61. package/docs/reference/claude-skill.md +96 -0
  62. package/docs/reference/extensions.md +250 -0
  63. package/docs/reference/layouts.md +153 -0
  64. package/docs/reference/palettes.md +106 -0
  65. package/docs/reference/structured-slides.md +120 -0
  66. package/docs/reference/themes.md +133 -0
  67. package/docs/site/assets/favicon.svg +15 -0
  68. package/docs/site/assets/github-logo.svg +1 -0
  69. package/docs/site/assets/site.css +162 -0
  70. package/docs/site/assets/site.js +123 -0
  71. package/docs/site/build.js +148 -0
  72. package/docs/site/content/appearance.md +203 -0
  73. package/docs/site/content/audience.md +178 -0
  74. package/docs/site/content/commands.md +153 -0
  75. package/docs/site/content/components.md +134 -0
  76. package/docs/site/content/drawing.md +72 -0
  77. package/docs/site/content/editing.md +59 -0
  78. package/docs/site/content/getting-started.md +103 -0
  79. package/docs/site/content/layouts.md +126 -0
  80. package/docs/site/content/media.md +107 -0
  81. package/docs/site/content/more-content.md +130 -0
  82. package/docs/site/content/presenting.md +93 -0
  83. package/docs/site/content/reusable-layouts.md +74 -0
  84. package/docs/site/content/sharing.md +88 -0
  85. package/docs/site/content/theme-authoring.md +144 -0
  86. package/docs/site/content/theme-repository.md +76 -0
  87. package/docs/site/content/troubleshooting.md +92 -0
  88. package/docs/site/content/views.md +56 -0
  89. package/docs/site/content/welcome.md +71 -0
  90. package/docs/site/content/writing.md +121 -0
  91. package/docs/site/examples/first-talk.md +88 -0
  92. package/docs/site/examples/notebook.svg +58 -0
  93. package/docs/site/images/themes/academic-dark.webp +0 -0
  94. package/docs/site/images/themes/academic-light.webp +0 -0
  95. package/docs/site/images/themes/academic.webp +0 -0
  96. package/docs/site/images/themes/aurora-dark.webp +0 -0
  97. package/docs/site/images/themes/aurora-light.webp +0 -0
  98. package/docs/site/images/themes/aurora.webp +0 -0
  99. package/docs/site/images/themes/duet-dark.webp +0 -0
  100. package/docs/site/images/themes/duet-light.webp +0 -0
  101. package/docs/site/images/themes/duet.webp +0 -0
  102. package/docs/site/images/themes/editorial-dark.webp +0 -0
  103. package/docs/site/images/themes/editorial-light.webp +0 -0
  104. package/docs/site/images/themes/editorial.webp +0 -0
  105. package/docs/site/images/themes/fhnw.webp +0 -0
  106. package/docs/site/images/themes/neue-dark.webp +0 -0
  107. package/docs/site/images/themes/neue-light.webp +0 -0
  108. package/docs/site/images/themes/neue.webp +0 -0
  109. package/docs/site/images/themes/sketch-dark.webp +0 -0
  110. package/docs/site/images/themes/sketch-light.webp +0 -0
  111. package/docs/site/images/themes/sketch.webp +0 -0
  112. package/docs/site/images/themes/terminal-dark.webp +0 -0
  113. package/docs/site/images/themes/terminal-light.webp +0 -0
  114. package/docs/site/images/themes/terminal.webp +0 -0
  115. package/docs/site/package.json +9 -0
  116. package/docs/site/pages.js +27 -0
  117. package/docs/site/server.js +58 -0
  118. package/examples/custom-layouts/extensions/comparison/extension.toml +35 -0
  119. package/examples/custom-layouts/extensions/comparison/layout.jsx +15 -0
  120. package/examples/custom-layouts/extensions/comparison/starter.md +17 -0
  121. package/examples/custom-layouts/extensions/comparison/styles.css +4 -0
  122. package/examples/custom-layouts/slides.md +60 -0
  123. package/examples/poll/slides.md +127 -0
  124. package/examples/python/.mdeck-backups/slides.drawings-2026-10-06T08-36-47Z.json +19 -0
  125. package/examples/python/.mdeck-backups/slides.drawings-2026-10-06T11-27-30Z.json +6 -0
  126. package/examples/python/slides.drawings.json +6 -0
  127. package/examples/python/slides.md +493 -0
  128. package/examples/showcase/.mdeck-backups/slides.drawings-2026-10-06T08-08-30Z.json +10 -0
  129. package/examples/showcase/.mdeck-backups/slides.drawings-2026-10-06T11-41-35Z.json +13 -0
  130. package/examples/showcase/img/image.jpg +0 -0
  131. package/examples/showcase/img/mdeck.svg +66 -0
  132. package/examples/showcase/slides.drawings.json +11 -0
  133. package/examples/showcase/slides.md +427 -0
  134. package/package.json +75 -0
  135. package/skills/write-slides/SKILL.md +144 -0
  136. package/src/build/check.js +49 -0
  137. package/src/build/chrome.js +130 -0
  138. package/src/build/components.js +44 -0
  139. package/src/build/config.js +61 -0
  140. package/src/build/drawings.js +14 -0
  141. package/src/build/editorPlugin.js +272 -0
  142. package/src/build/editorServer.js +36 -0
  143. package/src/build/fonts.js +84 -0
  144. package/src/build/homePlugin.js +208 -0
  145. package/src/build/inkPlugin.js +192 -0
  146. package/src/build/ownWrites.js +18 -0
  147. package/src/build/pairing.js +81 -0
  148. package/src/build/pdf.js +34 -0
  149. package/src/build/relayAccess.js +85 -0
  150. package/src/build/slidesPlugin.js +371 -0
  151. package/src/build/themeCheck.js +151 -0
  152. package/src/build/tunnelClient.js +184 -0
  153. package/src/cli/args.js +76 -0
  154. package/src/cli/index.js +758 -0
  155. package/src/cli/migrate.js +123 -0
  156. package/src/cli/skill.js +40 -0
  157. package/src/cli/themes.js +140 -0
  158. package/src/components/CodeBlock.jsx +168 -0
  159. package/src/components/ConnectedViews.jsx +25 -0
  160. package/src/components/Icon.jsx +8 -0
  161. package/src/components/Poll.jsx +67 -0
  162. package/src/components/QrCode.jsx +29 -0
  163. package/src/components/QrCodeTag.jsx +27 -0
  164. package/src/components/Question.jsx +28 -0
  165. package/src/components/Scale.jsx +47 -0
  166. package/src/components/VideoPlayer.jsx +108 -0
  167. package/src/components/WordCloud.jsx +106 -0
  168. package/src/components/activity.jsx +35 -0
  169. package/src/components/callout.css +78 -0
  170. package/src/components/code-block.css +123 -0
  171. package/src/components/columns.css +11 -0
  172. package/src/components/poll.css +81 -0
  173. package/src/components/video-player.css +14 -0
  174. package/src/core/devPath.js +4 -0
  175. package/src/core/editDeck.js +230 -0
  176. package/src/core/icons.js +69 -0
  177. package/src/core/ink.js +221 -0
  178. package/src/core/labels.js +144 -0
  179. package/src/core/outline.js +33 -0
  180. package/src/core/parseSlides.js +152 -0
  181. package/src/core/source.js +137 -0
  182. package/src/core/urls.js +34 -0
  183. package/src/core/validateDeck.js +139 -0
  184. package/src/editor/api.js +67 -0
  185. package/src/editor/components/App.jsx +75 -0
  186. package/src/editor/components/ConflictBanner.jsx +10 -0
  187. package/src/editor/components/DeckSettings.jsx +108 -0
  188. package/src/editor/components/DesignApp.jsx +252 -0
  189. package/src/editor/components/Diagnostics.jsx +10 -0
  190. package/src/editor/components/ExtensionEditor.jsx +66 -0
  191. package/src/editor/components/ExtensionForms.jsx +134 -0
  192. package/src/editor/components/ExtensionsPanel.jsx +114 -0
  193. package/src/editor/components/Field.jsx +24 -0
  194. package/src/editor/components/Inspector.jsx +36 -0
  195. package/src/editor/components/LayoutPicker.jsx +23 -0
  196. package/src/editor/components/LayoutSelect.jsx +25 -0
  197. package/src/editor/components/LookThumbnail.jsx +8 -0
  198. package/src/editor/components/MetaFields.jsx +24 -0
  199. package/src/editor/components/Outline.jsx +28 -0
  200. package/src/editor/components/PalettePicker.jsx +32 -0
  201. package/src/editor/components/Preview.jsx +63 -0
  202. package/src/editor/components/PropsForm.jsx +46 -0
  203. package/src/editor/components/RawSlideEditor.jsx +9 -0
  204. package/src/editor/components/RegionEditor.jsx +15 -0
  205. package/src/editor/components/Resizer.jsx +18 -0
  206. package/src/editor/designLink.js +19 -0
  207. package/src/editor/editor.css +139 -0
  208. package/src/editor/extensions.js +86 -0
  209. package/src/editor/keyboard.js +21 -0
  210. package/src/editor/model.js +38 -0
  211. package/src/editor/sampleDeck.js +165 -0
  212. package/src/editor/saveQueue.js +47 -0
  213. package/src/editor/schema.js +36 -0
  214. package/src/editor/state.js +92 -0
  215. package/src/editor/useDeckDocument.js +67 -0
  216. package/src/extensions/appearance.js +79 -0
  217. package/src/extensions/contrast.js +57 -0
  218. package/src/extensions/discover.js +126 -0
  219. package/src/extensions/manifest.js +209 -0
  220. package/src/extensions/packs.js +268 -0
  221. package/src/extensions/tokens.js +25 -0
  222. package/src/home/Home.jsx +362 -0
  223. package/src/home/home.css +148 -0
  224. package/src/layouts/layoutApi.jsx +205 -0
  225. package/src/layouts/layoutProps.js +30 -0
  226. package/src/layouts/renderSlide.jsx +17 -0
  227. package/src/live/answer/answer.css +34 -0
  228. package/src/live/answer/answer.html +14 -0
  229. package/src/live/answer/answer.js +130 -0
  230. package/src/live/client.js +290 -0
  231. package/src/live/code.js +19 -0
  232. package/src/live/follow.js +17 -0
  233. package/src/live/pairing.js +34 -0
  234. package/src/live/presence.js +33 -0
  235. package/src/live/roomTag.js +38 -0
  236. package/src/live/rooms.js +249 -0
  237. package/src/live/server.js +82 -0
  238. package/src/live/tunnel.js +180 -0
  239. package/src/paths.js +9 -0
  240. package/src/runtime/ReaderView.jsx +193 -0
  241. package/src/runtime/SlideErrorBoundary.jsx +28 -0
  242. package/src/runtime/chrome.jsx +55 -0
  243. package/src/runtime/deck-stage.js +1533 -0
  244. package/src/runtime/design.html +12 -0
  245. package/src/runtime/design.jsx +5 -0
  246. package/src/runtime/editor.html +12 -0
  247. package/src/runtime/editor.jsx +5 -0
  248. package/src/runtime/editorBridge.js +58 -0
  249. package/src/runtime/fit.js +149 -0
  250. package/src/runtime/home.html +13 -0
  251. package/src/runtime/home.jsx +5 -0
  252. package/src/runtime/index.html +15 -0
  253. package/src/runtime/ink/InkLayer.jsx +17 -0
  254. package/src/runtime/ink/Toolbar.jsx +145 -0
  255. package/src/runtime/ink/attach.js +69 -0
  256. package/src/runtime/ink/bus.js +126 -0
  257. package/src/runtime/ink/controller.js +132 -0
  258. package/src/runtime/ink/room.js +101 -0
  259. package/src/runtime/ink/select.js +124 -0
  260. package/src/runtime/ink/server.js +75 -0
  261. package/src/runtime/ink/store.js +55 -0
  262. package/src/runtime/ink/toolbar.css +79 -0
  263. package/src/runtime/main.jsx +863 -0
  264. package/src/runtime/markedSetup.js +147 -0
  265. package/src/runtime/reader.css +59 -0
  266. package/src/runtime/registry.jsx +26 -0
  267. package/src/runtime/syncOrder.js +32 -0
  268. package/src/runtime/themeLoader.js +68 -0
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "graphite"
4
+ title = "Graphite"
5
+ description = "Black and white with a steel-blue accent."
6
+
7
+ [light]
8
+ "--bg" = "#fbfaf8"
9
+ "--surface" = "#efeeeb"
10
+ "--ink" = "#141414"
11
+ "--ink-soft" = "#3a3a3a"
12
+ "--muted" = "#6a6a6a"
13
+ "--rule" = "#d9d8d4"
14
+ "--accent" = "#3d5a73"
15
+ "--accent-2" = "#8a6d3b"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#141414"
20
+ "--surface" = "#1f1f1f"
21
+ "--ink" = "#f2f2f0"
22
+ "--ink-soft" = "#cfcfcc"
23
+ "--muted" = "#8e8e8b"
24
+ "--rule" = "#2f2f2f"
25
+ "--accent" = "#9fc2e0"
26
+ "--accent-2" = "#d9b878"
27
+ "--on-accent" = "#141414"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "lagoon"
4
+ title = "Lagoon"
5
+ description = "Teal on warm stone, with an orange second accent."
6
+
7
+ [light]
8
+ "--bg" = "#f8f8f6"
9
+ "--surface" = "#edede8"
10
+ "--ink" = "#121210"
11
+ "--ink-soft" = "#383631"
12
+ "--muted" = "#6b6862"
13
+ "--rule" = "#e0deda"
14
+ "--accent" = "#0d9488"
15
+ "--accent-2" = "#c2410c"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#0e1716"
20
+ "--surface" = "#15211f"
21
+ "--ink" = "#eef5f3"
22
+ "--ink-soft" = "#c5d3cf"
23
+ "--muted" = "#8aa19b"
24
+ "--rule" = "#23332f"
25
+ "--accent" = "#2dd4bf"
26
+ "--accent-2" = "#fb923c"
27
+ "--on-accent" = "#062b26"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "neon"
4
+ title = "Neon"
5
+ description = "Violet and magenta; loud, for workshops."
6
+
7
+ [light]
8
+ "--bg" = "#ffffff"
9
+ "--surface" = "#f4f0fb"
10
+ "--ink" = "#14072b"
11
+ "--ink-soft" = "#3a2d55"
12
+ "--muted" = "#6a6084"
13
+ "--rule" = "#e4ddf3"
14
+ "--accent" = "#9b00d9"
15
+ "--accent-2" = "#d6106f"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#0d0d0d"
20
+ "--surface" = "#1a1a1a"
21
+ "--ink" = "#f0f0f0"
22
+ "--ink-soft" = "#cccccc"
23
+ "--muted" = "#8a8a8a"
24
+ "--rule" = "#2a2a2a"
25
+ "--accent" = "#cc17ff"
26
+ "--accent-2" = "#ff1791"
27
+ "--on-accent" = "#0d0d0d"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "nordic"
4
+ title = "Nordic"
5
+ description = "Ice grey, deep navy and a cool steel blue; calm."
6
+
7
+ [light]
8
+ "--bg" = "#f3f6f8"
9
+ "--surface" = "#e4eaef"
10
+ "--ink" = "#0f2233"
11
+ "--ink-soft" = "#2b4052"
12
+ "--muted" = "#566b7c"
13
+ "--rule" = "#cdd8e1"
14
+ "--accent" = "#1f6f9f"
15
+ "--accent-2" = "#7a5c9e"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#0e1a24"
20
+ "--surface" = "#16252f"
21
+ "--ink" = "#e8f0f5"
22
+ "--ink-soft" = "#c3d2dc"
23
+ "--muted" = "#8aa1b1"
24
+ "--rule" = "#22343f"
25
+ "--accent" = "#7cc4ea"
26
+ "--accent-2" = "#c3a8e6"
27
+ "--on-accent" = "#0e1a24"
@@ -0,0 +1,30 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "pastel"
4
+ title = "Pastel"
5
+ description = "Soft pastels in the Catppuccin style: Latte by day, Mocha by night, mauve and peach."
6
+
7
+ # Catppuccin Latte; the peach and the muted grey are a shade darker so they
8
+ # can be read on the base.
9
+ [light]
10
+ "--bg" = "#eff1f5"
11
+ "--surface" = "#e6e9ef"
12
+ "--ink" = "#4c4f69"
13
+ "--ink-soft" = "#5c5f77"
14
+ "--muted" = "#676a80"
15
+ "--rule" = "#ccd0da"
16
+ "--accent" = "#8839ef"
17
+ "--accent-2" = "#dc5c0c"
18
+ "--on-accent" = "#eff1f5"
19
+
20
+ # Catppuccin Mocha.
21
+ [dark]
22
+ "--bg" = "#1e1e2e"
23
+ "--surface" = "#313244"
24
+ "--ink" = "#cdd6f4"
25
+ "--ink-soft" = "#bac2de"
26
+ "--muted" = "#a6adc8"
27
+ "--rule" = "#45475a"
28
+ "--accent" = "#cba6f7"
29
+ "--accent-2" = "#fab387"
30
+ "--on-accent" = "#1e1e2e"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "phosphor"
4
+ title = "Phosphor"
5
+ description = "A terminal screen: near-black with phosphor green and amber; in light, a printout on paper."
6
+
7
+ [light]
8
+ "--bg" = "#fbfbf7"
9
+ "--surface" = "#eeefe8"
10
+ "--ink" = "#141714"
11
+ "--ink-soft" = "#2f362f"
12
+ "--muted" = "#5c665c"
13
+ "--rule" = "#d6dad0"
14
+ "--accent" = "#16803a"
15
+ "--accent-2" = "#a05a00"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#050805"
20
+ "--surface" = "#0e160f"
21
+ "--ink" = "#b6ffc4"
22
+ "--ink-soft" = "#86e29a"
23
+ "--muted" = "#5c9e6a"
24
+ "--rule" = "#1a2e1d"
25
+ "--accent" = "#39ff6e"
26
+ "--accent-2" = "#ffb000"
27
+ "--on-accent" = "#050805"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "swiss"
4
+ title = "Swiss"
5
+ description = "White, black and signal red, like a Swiss poster."
6
+
7
+ [light]
8
+ "--bg" = "#ffffff"
9
+ "--surface" = "#f2f2f2"
10
+ "--ink" = "#111111"
11
+ "--ink-soft" = "#333333"
12
+ "--muted" = "#666666"
13
+ "--rule" = "#dadada"
14
+ "--accent" = "#e30613"
15
+ "--accent-2" = "#0047bb"
16
+ "--on-accent" = "#ffffff"
17
+
18
+ [dark]
19
+ "--bg" = "#0d0d0d"
20
+ "--surface" = "#1b1b1b"
21
+ "--ink" = "#f5f5f5"
22
+ "--ink-soft" = "#d0d0d0"
23
+ "--muted" = "#8f8f8f"
24
+ "--rule" = "#2e2e2e"
25
+ "--accent" = "#ff3b30"
26
+ "--accent-2" = "#6f9bff"
27
+ "--on-accent" = "#0d0d0d"
@@ -0,0 +1,27 @@
1
+ schema = 1
2
+ kind = "palette"
3
+ id = "terra"
4
+ title = "Terra"
5
+ description = "Cream, deep navy and brick red; warm and grounded."
6
+
7
+ [light]
8
+ "--bg" = "#fdf0d5"
9
+ "--surface" = "#f1e3c3"
10
+ "--ink" = "#002b42"
11
+ "--ink-soft" = "#12425c"
12
+ "--muted" = "#5a6870"
13
+ "--rule" = "#e3cfa3"
14
+ "--accent" = "#b3121d"
15
+ "--accent-2" = "#c25e00"
16
+ "--on-accent" = "#fff7e6"
17
+
18
+ [dark]
19
+ "--bg" = "#001f30"
20
+ "--surface" = "#062c42"
21
+ "--ink" = "#fdf0d5"
22
+ "--ink-soft" = "#e8d9b8"
23
+ "--muted" = "#9fb0b8"
24
+ "--rule" = "#10405a"
25
+ "--accent" = "#ff6b5b"
26
+ "--accent-2" = "#ffb347"
27
+ "--on-accent" = "#001f30"
@@ -0,0 +1,53 @@
1
+ schema = 1
2
+ kind = "theme"
3
+ id = "academic"
4
+ title = "Academic"
5
+ description = "A lecture: Source Sans and Source Serif, compact slides with the heading in a fixed place, theorem and definition blocks, booktabs tables and a footnote rule."
6
+ # The palette this theme uses unless the deck sets one; colours come only from palettes.
7
+ palette = "nordic"
8
+ fonts = [
9
+ "https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,300..800;1,300..800&family=Source+Serif+4:ital,opsz,wght@0,8..60,400..700;1,8..60,400..700&family=Source+Code+Pro:wght@400;600&display=swap",
10
+ ]
11
+
12
+ [files]
13
+ styles = "styles.css"
14
+
15
+ # Type, spacing and fonts used by styles.css; colours come from the palette.
16
+ # Deck settings (params) override these.
17
+ [tokens]
18
+
19
+ # Type scale (px) at 1920×1080: smaller than the other themes, so a slide
20
+ # holds a definition, a formula and a few points.
21
+ "--fs-display" = "104px"
22
+ "--fs-title" = "84px"
23
+ "--fs-focus" = "56px"
24
+ "--fs-h" = "56px"
25
+ "--fs-sub" = "36px"
26
+ "--fs-body" = "30px"
27
+ "--fs-small" = "21px"
28
+ "--fs-eyebrow" = "20px"
29
+
30
+ # Spacing
31
+ "--pad-x" = "112px"
32
+ "--pad-y" = "56px"
33
+ "--gap-title" = "36px"
34
+ "--gap-item" = "16px"
35
+
36
+ # Type families
37
+ "--font-display" = "\"Source Sans 3\", \"Source Sans Pro\", \"Helvetica Neue\", Arial, sans-serif"
38
+ "--font-body" = "\"Source Sans 3\", \"Source Sans Pro\", \"Helvetica Neue\", Arial, sans-serif"
39
+ "--font-serif" = "\"Source Serif 4\", \"Source Serif Pro\", Georgia, serif"
40
+ "--font-mono" = "\"Source Code Pro\", ui-monospace, Menlo, Consolas, monospace"
41
+
42
+ # Settings authors can change under `params:` in the deck; each points at a token above.
43
+ [params.fontDisplay]
44
+ token = "--font-display"
45
+ title = "Display font"
46
+
47
+ [params.fontBody]
48
+ token = "--font-body"
49
+ title = "Body font"
50
+
51
+ [params.fontSerif]
52
+ token = "--font-serif"
53
+ title = "Serif for theorems and quotes"