mdeck 2.3.0 → 3.0.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 (108) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +9 -9
  3. package/assets/base.css +4 -1
  4. package/assets/packs/academic/pack.toml +8 -0
  5. package/assets/packs/aurora/pack.toml +8 -0
  6. package/assets/packs/lagoon/pack.toml +8 -0
  7. package/assets/packs/minimal/minimal/extension.toml +45 -0
  8. package/assets/packs/minimal/minimal/styles.css +342 -0
  9. package/assets/packs/minimal/pack.toml +8 -0
  10. package/assets/packs/minimal/paper/extension.toml +27 -0
  11. package/assets/packs/neue/pack.toml +8 -0
  12. package/docs/reference/authoring.md +13 -18
  13. package/docs/reference/claude-skill.md +1 -1
  14. package/docs/reference/extensions.md +29 -20
  15. package/docs/reference/palettes.md +8 -12
  16. package/docs/reference/themes.md +8 -7
  17. package/docs/site/content/appearance.md +33 -49
  18. package/docs/site/content/commands.md +2 -2
  19. package/docs/site/content/theme-authoring.md +1 -1
  20. package/docs/site/content/theme-repository.md +19 -15
  21. package/docs/site/examples/first-talk.md +1 -1
  22. package/docs/site/images/themes/academic-dark.webp +0 -0
  23. package/docs/site/images/themes/academic-light.webp +0 -0
  24. package/docs/site/images/themes/academic.webp +0 -0
  25. package/docs/site/images/themes/aurora-dark.webp +0 -0
  26. package/docs/site/images/themes/aurora-light.webp +0 -0
  27. package/docs/site/images/themes/aurora.webp +0 -0
  28. package/docs/site/images/themes/minimal-dark.webp +0 -0
  29. package/docs/site/images/themes/minimal-light.webp +0 -0
  30. package/docs/site/images/themes/minimal.webp +0 -0
  31. package/docs/site/images/themes/neue-dark.webp +0 -0
  32. package/docs/site/images/themes/neue-light.webp +0 -0
  33. package/docs/site/images/themes/neue.webp +0 -0
  34. package/docs/site/pages.js +1 -1
  35. package/examples/custom-layouts/slides.md +1 -1
  36. package/examples/poll/slides.md +1 -1
  37. package/examples/python/slides.md +2 -2
  38. package/examples/showcase/slides.md +3 -3
  39. package/package.json +1 -1
  40. package/skills/write-slides/SKILL.md +2 -2
  41. package/src/build/check.js +0 -7
  42. package/src/build/editorPlugin.js +19 -11
  43. package/src/build/themeCheck.js +15 -5
  44. package/src/cli/args.js +1 -1
  45. package/src/cli/index.js +3 -3
  46. package/src/cli/themes.js +93 -64
  47. package/src/core/validateDeck.js +4 -2
  48. package/src/editor/api.js +9 -1
  49. package/src/editor/components/App.jsx +4 -2
  50. package/src/editor/components/DesignApp.jsx +12 -3
  51. package/src/editor/components/ExtensionEditor.jsx +15 -4
  52. package/src/editor/components/ExtensionsPanel.jsx +19 -21
  53. package/src/editor/designLink.js +18 -1
  54. package/src/editor/sampleDeck.js +3 -1
  55. package/src/extensions/appearance.js +2 -1
  56. package/src/extensions/discover.js +56 -16
  57. package/src/extensions/installed.js +63 -0
  58. package/src/extensions/moved.js +13 -0
  59. package/src/extensions/packs.js +135 -46
  60. package/src/home/Home.jsx +12 -6
  61. package/src/layouts/layoutApi.jsx +10 -2
  62. package/src/paths.js +2 -0
  63. package/src/runtime/themeLoader.js +5 -2
  64. package/assets/extensions/palettes/brand/extension.toml +0 -29
  65. package/assets/extensions/palettes/cobalt/extension.toml +0 -27
  66. package/assets/extensions/palettes/ember/extension.toml +0 -27
  67. package/assets/extensions/palettes/forest/extension.toml +0 -27
  68. package/assets/extensions/palettes/graphite/extension.toml +0 -27
  69. package/assets/extensions/palettes/pastel/extension.toml +0 -30
  70. package/assets/extensions/palettes/phosphor/extension.toml +0 -27
  71. package/assets/extensions/palettes/terra/extension.toml +0 -27
  72. package/assets/extensions/themes/duet/extension.toml +0 -46
  73. package/assets/extensions/themes/duet/styles.css +0 -573
  74. package/assets/extensions/themes/editorial/extension.toml +0 -46
  75. package/assets/extensions/themes/editorial/styles.css +0 -574
  76. package/assets/extensions/themes/fhnw/extension.toml +0 -61
  77. package/assets/extensions/themes/fhnw/styles.css +0 -604
  78. package/assets/extensions/themes/sketch/extension.toml +0 -48
  79. package/assets/extensions/themes/sketch/styles.css +0 -633
  80. package/assets/extensions/themes/terminal/extension.toml +0 -38
  81. package/assets/extensions/themes/terminal/styles.css +0 -550
  82. package/docs/site/images/themes/duet-dark.webp +0 -0
  83. package/docs/site/images/themes/duet-light.webp +0 -0
  84. package/docs/site/images/themes/duet.webp +0 -0
  85. package/docs/site/images/themes/editorial-dark.webp +0 -0
  86. package/docs/site/images/themes/editorial-light.webp +0 -0
  87. package/docs/site/images/themes/editorial.webp +0 -0
  88. package/docs/site/images/themes/fhnw.webp +0 -0
  89. package/docs/site/images/themes/sketch-dark.webp +0 -0
  90. package/docs/site/images/themes/sketch-light.webp +0 -0
  91. package/docs/site/images/themes/sketch.webp +0 -0
  92. package/docs/site/images/themes/terminal-dark.webp +0 -0
  93. package/docs/site/images/themes/terminal-light.webp +0 -0
  94. package/docs/site/images/themes/terminal.webp +0 -0
  95. package/examples/python/.mdeck-backups/slides.drawings-2026-10-06T08-36-47Z.json +0 -19
  96. package/examples/python/.mdeck-backups/slides.drawings-2026-10-06T11-27-30Z.json +0 -6
  97. package/examples/showcase/.mdeck-backups/slides.drawings-2026-10-06T08-08-30Z.json +0 -10
  98. package/examples/showcase/.mdeck-backups/slides.drawings-2026-10-06T11-41-35Z.json +0 -13
  99. /package/assets/{extensions/themes → packs/academic}/academic/extension.toml +0 -0
  100. /package/assets/{extensions/themes → packs/academic}/academic/styles.css +0 -0
  101. /package/assets/{extensions/palettes → packs/academic}/nordic/extension.toml +0 -0
  102. /package/assets/{extensions/themes → packs/aurora}/aurora/extension.toml +0 -0
  103. /package/assets/{extensions/themes → packs/aurora}/aurora/styles.css +0 -0
  104. /package/assets/{extensions/palettes → packs/aurora}/neon/extension.toml +0 -0
  105. /package/assets/{extensions/palettes → packs/lagoon}/lagoon/extension.toml +0 -0
  106. /package/assets/{extensions/themes → packs/neue}/neue/extension.toml +0 -0
  107. /package/assets/{extensions/themes → packs/neue}/neue/styles.css +0 -0
  108. /package/assets/{extensions/palettes → packs/neue}/swiss/extension.toml +0 -0
@@ -1,27 +0,0 @@
1
- schema = 1
2
- kind = "palette"
3
- id = "cobalt"
4
- title = "Cobalt"
5
- description = "Strong ultramarine on white, with vivid orange; bold and clear."
6
-
7
- [light]
8
- "--bg" = "#ffffff"
9
- "--surface" = "#eef1fb"
10
- "--ink" = "#0c1033"
11
- "--ink-soft" = "#2a2f55"
12
- "--muted" = "#5b6080"
13
- "--rule" = "#d5dbf0"
14
- "--accent" = "#1f3fd1"
15
- "--accent-2" = "#e8590c"
16
- "--on-accent" = "#ffffff"
17
-
18
- [dark]
19
- "--bg" = "#0a1030"
20
- "--surface" = "#121a44"
21
- "--ink" = "#eef1ff"
22
- "--ink-soft" = "#c9cff0"
23
- "--muted" = "#8e97c4"
24
- "--rule" = "#212b5e"
25
- "--accent" = "#6f8cff"
26
- "--accent-2" = "#ff922b"
27
- "--on-accent" = "#0a1030"
@@ -1,27 +0,0 @@
1
- schema = 1
2
- kind = "palette"
3
- id = "ember"
4
- title = "Ember"
5
- description = "Sand and espresso with a glowing orange."
6
-
7
- [light]
8
- "--bg" = "#fbf6ef"
9
- "--surface" = "#f1e7da"
10
- "--ink" = "#2a1a10"
11
- "--ink-soft" = "#4a3324"
12
- "--muted" = "#7a6656"
13
- "--rule" = "#e6d6c3"
14
- "--accent" = "#c2410c"
15
- "--accent-2" = "#8f5a3c"
16
- "--on-accent" = "#ffffff"
17
-
18
- [dark]
19
- "--bg" = "#121005"
20
- "--surface" = "#1f1e19"
21
- "--ink" = "#eae0d5"
22
- "--ink-soft" = "#c6ac8f"
23
- "--muted" = "#9a8a77"
24
- "--rule" = "#2b2a29"
25
- "--accent" = "#eb5e28"
26
- "--accent-2" = "#c98b6b"
27
- "--on-accent" = "#0d0a05"
@@ -1,27 +0,0 @@
1
- schema = 1
2
- kind = "palette"
3
- id = "forest"
4
- title = "Forest"
5
- description = "Deep green with moss and ochre; calm, with contrast."
6
-
7
- [light]
8
- "--bg" = "#f6f5ef"
9
- "--surface" = "#e9eadf"
10
- "--ink" = "#12261c"
11
- "--ink-soft" = "#2c4436"
12
- "--muted" = "#5a6c60"
13
- "--rule" = "#d3d8c8"
14
- "--accent" = "#2e7d32"
15
- "--accent-2" = "#9a6b00"
16
- "--on-accent" = "#ffffff"
17
-
18
- [dark]
19
- "--bg" = "#0e1a14"
20
- "--surface" = "#16261d"
21
- "--ink" = "#e9f1e6"
22
- "--ink-soft" = "#c4d3c0"
23
- "--muted" = "#8ea493"
24
- "--rule" = "#24382c"
25
- "--accent" = "#7bd389"
26
- "--accent-2" = "#e6c35c"
27
- "--on-accent" = "#0e1a14"
@@ -1,27 +0,0 @@
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"
@@ -1,30 +0,0 @@
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"
@@ -1,27 +0,0 @@
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"
@@ -1,27 +0,0 @@
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"
@@ -1,46 +0,0 @@
1
- schema = 1
2
- kind = "theme"
3
- id = "duet"
4
- title = "Duet"
5
- description = "Two voices: heavy slab headings, and two accents that take turns, as split fields, diagonal chapters and alternating markers."
6
- # The palette this theme uses unless the deck sets one; colours come only from palettes.
7
- palette = "cobalt"
8
- fonts = [
9
- "https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@500;700&family=DM+Sans:wght@400;500;700&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) — projection-appropriate at 1920×1080
20
- "--fs-display" = "150px"
21
- "--fs-title" = "112px"
22
- "--fs-focus" = "88px"
23
- "--fs-h" = "68px"
24
- "--fs-sub" = "44px"
25
- "--fs-body" = "34px"
26
- "--fs-small" = "28px"
27
- "--fs-eyebrow" = "24px"
28
-
29
- # Spacing
30
- "--pad-x" = "140px"
31
- "--pad-y" = "72px"
32
- "--gap-title" = "52px"
33
- "--gap-item" = "28px"
34
-
35
- # Type families
36
- "--font-display" = "\"Zilla Slab\", Georgia, \"Times New Roman\", serif"
37
- "--font-body" = "\"DM Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif"
38
-
39
- # Settings authors can change under `params:` in the deck; each points at a token above.
40
- [params.fontDisplay]
41
- token = "--font-display"
42
- title = "Display font"
43
-
44
- [params.fontBody]
45
- token = "--font-body"
46
- title = "Body font"