mdeck 3.4.0 → 3.5.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/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/assets/extensions/palettes/cobalt/extension.toml +30 -0
- package/assets/extensions/palettes/greyscale/extension.toml +57 -0
- package/assets/extensions/themes/glass/extension.toml +59 -0
- package/assets/extensions/themes/glass/styles.css +754 -0
- package/assets/extensions/themes/plain/extension.toml +58 -0
- package/assets/extensions/themes/plain/styles.css +471 -0
- package/assets/extensions/themes/work/extension.toml +57 -0
- package/assets/extensions/themes/work/styles.css +512 -0
- package/docs/reference/authoring.md +25 -8
- package/docs/reference/palettes.md +4 -3
- package/docs/reference/themes.md +5 -3
- package/docs/site/content/appearance.md +24 -10
- package/docs/site/content/audience.md +14 -0
- package/docs/site/content/theme-repository.md +7 -7
- package/docs/site/images/themes/academic-dark.webp +0 -0
- package/docs/site/images/themes/academic-light.webp +0 -0
- package/docs/site/images/themes/academic.webp +0 -0
- package/docs/site/images/themes/glass-dark.webp +0 -0
- package/docs/site/images/themes/glass-light.webp +0 -0
- package/docs/site/images/themes/glass.webp +0 -0
- package/docs/site/images/themes/minimal-dark.webp +0 -0
- package/docs/site/images/themes/minimal-light.webp +0 -0
- package/docs/site/images/themes/minimal.webp +0 -0
- package/docs/site/images/themes/neue-dark.webp +0 -0
- package/docs/site/images/themes/neue-light.webp +0 -0
- package/docs/site/images/themes/neue.webp +0 -0
- package/docs/site/images/themes/plain-dark.webp +0 -0
- package/docs/site/images/themes/plain-light.webp +0 -0
- package/docs/site/images/themes/plain.webp +0 -0
- package/docs/site/images/themes/work-dark.webp +0 -0
- package/docs/site/images/themes/work-light.webp +0 -0
- package/docs/site/images/themes/work.webp +0 -0
- package/examples/showcase/slides.md +2 -2
- package/package.json +4 -1
- package/skills/write-slides/SKILL.md +2 -2
- package/src/build/slidesPlugin.js +16 -15
- package/src/components/Poll.jsx +17 -5
- package/src/components/inlineText.js +38 -15
- package/src/components/poll.css +3 -0
- package/src/core/editDeck.js +4 -5
- package/src/core/pollList.js +66 -0
- package/src/core/tags.js +195 -0
- package/src/extensions/discover.js +2 -2
- package/src/extensions/moved.js +4 -4
- package/src/layouts/layoutApi.jsx +20 -10
- package/src/live/roomTag.js +11 -19
- package/src/runtime/main.jsx +2 -1
- package/src/runtime/markedSetup.js +3 -0
- package/assets/extensions/palettes/neon/extension.toml +0 -30
- package/assets/extensions/themes/aurora/extension.toml +0 -40
- package/assets/extensions/themes/aurora/styles.css +0 -670
- package/docs/site/images/themes/aurora-dark.webp +0 -0
- package/docs/site/images/themes/aurora-light.webp +0 -0
- package/docs/site/images/themes/aurora.webp +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.5.0 — 2026-10-09
|
|
4
|
+
|
|
5
|
+
- mdeck now comes with six themes: `neue` (still the default), `academic` and `minimal` as before, and new among them `plain` (black on white, the heading in a column beside the content), `work` (an everyday company template with an accent band, the logo and numbered sections) and `glass` (liquid glass, dark by default). The palettes `greyscale` (`plain`'s) and `cobalt` (`work`'s) come with it too. `aurora` and its palette `neon` moved to the theme repository: a deck that uses them is told to run `mdeck themes install aurora`; files made with `mdeck send` or `mdeck build` keep working, because they carry their theme. The tour example now uses `glass`.
|
|
6
|
+
- Tags in a deck are found the way the slide finds them, everywhere mdeck looks for them: the phones, `--no-polls`, the pictures and videos a build takes along. A `>` in a quoted value no longer cuts a tag short there either (`<qrcode label="a > b" join />`, `<img alt="a > b" src="…">`), and a tag that a blank line cuts in two is no activity for the phones when the slide does not show it.
|
|
7
|
+
- Fixed: a bar inside `code`, a [link](…) or a picture in a poll's options split the option in two. Only bars outside them, and outside formulas, separate options.
|
|
8
|
+
- A poll's options may be a list inside the tag, one item each, with `[x]` for a right answer: `<poll room="d">` then `- [x] $2x$`, `- [ ] $x^2$` and `</poll>`. Nothing needs escaping, and long options read better than in one attribute.
|
|
9
|
+
- Fixed: text after an activity written `<poll … />` (or any component closed with `/>`) went missing from the slide, as did another activity right after it. What follows an activity or a join code now has room above it in every theme.
|
|
10
|
+
|
|
3
11
|
## 3.4.0 — 2026-10-08
|
|
4
12
|
|
|
5
13
|
- What follows a list has room above it in every theme, so a sentence after a list no longer sits right against its last item.
|
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ complete folder.
|
|
|
143
143
|
|
|
144
144
|
| Example | Theme | What it demonstrates |
|
|
145
145
|
|---|---|---|
|
|
146
|
-
| [Tour](examples/showcase/slides.md) |
|
|
146
|
+
| [Tour](examples/showcase/slides.md) | Glass | Start here: each slide shows the Markdown beside what it becomes, from headings to layouts, live code, notes, drawing, a poll and sharing |
|
|
147
147
|
| [Python](examples/python/slides.md) | Academic | A real lesson: live code to try out, points revealed step by step, notes on every slide, a poll to check understanding |
|
|
148
148
|
| [Poll](examples/poll/slides.md) | Neue | A join slide, then a poll, a scale, a word cloud and open questions; start it with `mdeck run slides.md --network` |
|
|
149
149
|
| [Custom layouts](examples/custom-layouts/slides.md) | Neue | A deck-local comparison design and named regions |
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
version = "1.0.0"
|
|
7
|
+
author = "Tilman Schieber"
|
|
8
|
+
license = "MIT"
|
|
9
|
+
|
|
10
|
+
[light]
|
|
11
|
+
"--bg" = "#ffffff"
|
|
12
|
+
"--surface" = "#eef1fb"
|
|
13
|
+
"--ink" = "#0c1033"
|
|
14
|
+
"--ink-soft" = "#2a2f55"
|
|
15
|
+
"--muted" = "#5b6080"
|
|
16
|
+
"--rule" = "#d5dbf0"
|
|
17
|
+
"--accent" = "#1f3fd1"
|
|
18
|
+
"--accent-2" = "#e8590c"
|
|
19
|
+
"--on-accent" = "#ffffff"
|
|
20
|
+
|
|
21
|
+
[dark]
|
|
22
|
+
"--bg" = "#0a1030"
|
|
23
|
+
"--surface" = "#121a44"
|
|
24
|
+
"--ink" = "#eef1ff"
|
|
25
|
+
"--ink-soft" = "#c9cff0"
|
|
26
|
+
"--muted" = "#8e97c4"
|
|
27
|
+
"--rule" = "#212b5e"
|
|
28
|
+
"--accent" = "#6f8cff"
|
|
29
|
+
"--accent-2" = "#ff922b"
|
|
30
|
+
"--on-accent" = "#0a1030"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
schema = 1
|
|
2
|
+
kind = "palette"
|
|
3
|
+
id = "greyscale"
|
|
4
|
+
title = "Greyscale"
|
|
5
|
+
description = "Black, white and greys only, code and callouts too: for printing and for a quiet look."
|
|
6
|
+
version = "1.0.0"
|
|
7
|
+
author = "Tilman Schieber"
|
|
8
|
+
license = "MIT"
|
|
9
|
+
|
|
10
|
+
# No colour anywhere: emphasis is black against the softer body text, the
|
|
11
|
+
# second accent a mid grey; code and callouts use greys instead of their
|
|
12
|
+
# usual colours.
|
|
13
|
+
[light]
|
|
14
|
+
"--bg" = "#ffffff"
|
|
15
|
+
"--surface" = "#f0f0f0"
|
|
16
|
+
"--ink" = "#141414"
|
|
17
|
+
"--ink-soft" = "#363636"
|
|
18
|
+
"--muted" = "#606060"
|
|
19
|
+
"--rule" = "#d4d4d4"
|
|
20
|
+
"--accent" = "#000000"
|
|
21
|
+
"--accent-2" = "#6e6e6e"
|
|
22
|
+
"--on-accent" = "#ffffff"
|
|
23
|
+
"--token-default" = "#141414"
|
|
24
|
+
"--token-comment" = "#6b6b6b"
|
|
25
|
+
"--token-string" = "#454545"
|
|
26
|
+
"--token-number" = "#000000"
|
|
27
|
+
"--token-keyword" = "#000000"
|
|
28
|
+
"--token-function" = "#2a2a2a"
|
|
29
|
+
"--token-operator" = "#555555"
|
|
30
|
+
"--callout-note" = "#4a4a4a"
|
|
31
|
+
"--callout-tip" = "#4a4a4a"
|
|
32
|
+
"--callout-important" = "#000000"
|
|
33
|
+
"--callout-warning" = "#7a7a7a"
|
|
34
|
+
"--callout-caution" = "#000000"
|
|
35
|
+
|
|
36
|
+
[dark]
|
|
37
|
+
"--bg" = "#121212"
|
|
38
|
+
"--surface" = "#1f1f1f"
|
|
39
|
+
"--ink" = "#f2f2f2"
|
|
40
|
+
"--ink-soft" = "#d0d0d0"
|
|
41
|
+
"--muted" = "#9c9c9c"
|
|
42
|
+
"--rule" = "#303030"
|
|
43
|
+
"--accent" = "#ffffff"
|
|
44
|
+
"--accent-2" = "#a6a6a6"
|
|
45
|
+
"--on-accent" = "#121212"
|
|
46
|
+
"--token-default" = "#f2f2f2"
|
|
47
|
+
"--token-comment" = "#9a9a9a"
|
|
48
|
+
"--token-string" = "#c4c4c4"
|
|
49
|
+
"--token-number" = "#ffffff"
|
|
50
|
+
"--token-keyword" = "#ffffff"
|
|
51
|
+
"--token-function" = "#e0e0e0"
|
|
52
|
+
"--token-operator" = "#b0b0b0"
|
|
53
|
+
"--callout-note" = "#b8b8b8"
|
|
54
|
+
"--callout-tip" = "#b8b8b8"
|
|
55
|
+
"--callout-important" = "#ffffff"
|
|
56
|
+
"--callout-warning" = "#8c8c8c"
|
|
57
|
+
"--callout-caution" = "#ffffff"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
schema = 1
|
|
2
|
+
kind = "theme"
|
|
3
|
+
id = "glass"
|
|
4
|
+
title = "Glass"
|
|
5
|
+
description = "Liquid glass: soft pools of light behind every slide, content without frames, titles on a frosted pane with a bright rim; capsule labels, glass beads for list markers and a glass lens for chapter numbers; Geist throughout, dark by default."
|
|
6
|
+
version = "0.1.1"
|
|
7
|
+
author = "Tilman Schieber"
|
|
8
|
+
license = "MIT"
|
|
9
|
+
# The palette this theme uses unless the deck sets one; colours come only from palettes.
|
|
10
|
+
# Muted: polar night, ice blue and lavender; the glass is the look, not the colour.
|
|
11
|
+
palette = "nordic"
|
|
12
|
+
appearance = "dark"
|
|
13
|
+
fonts = [
|
|
14
|
+
"https://fonts.googleapis.com/css2?family=Geist:wght@300..800&family=Geist+Mono:wght@400..600&display=swap",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
[files]
|
|
18
|
+
styles = "styles.css"
|
|
19
|
+
|
|
20
|
+
# Type, spacing and fonts used by styles.css; colours come from the palette.
|
|
21
|
+
# Deck settings (params) override these.
|
|
22
|
+
[tokens]
|
|
23
|
+
|
|
24
|
+
# Type scale (px) — projection-appropriate at 1920×1080
|
|
25
|
+
"--fs-display" = "136px"
|
|
26
|
+
"--fs-title" = "104px"
|
|
27
|
+
"--fs-focus" = "88px"
|
|
28
|
+
"--fs-h" = "68px"
|
|
29
|
+
"--fs-sub" = "40px"
|
|
30
|
+
"--fs-body" = "32px"
|
|
31
|
+
"--fs-small" = "24px"
|
|
32
|
+
"--fs-eyebrow" = "20px"
|
|
33
|
+
|
|
34
|
+
# Spacing
|
|
35
|
+
"--pad-x" = "96px"
|
|
36
|
+
"--pad-y" = "60px"
|
|
37
|
+
"--gap-title" = "40px"
|
|
38
|
+
"--gap-item" = "22px"
|
|
39
|
+
|
|
40
|
+
# The glass: how round the panes are and how much they blur what is behind them.
|
|
41
|
+
"--glass-radius" = "44px"
|
|
42
|
+
"--glass-blur" = "28px"
|
|
43
|
+
|
|
44
|
+
# Type families
|
|
45
|
+
"--font-display" = "\"Geist\", \"Inter\", \"Helvetica Neue\", Arial, sans-serif"
|
|
46
|
+
"--font-body" = "\"Geist\", \"Inter\", \"Helvetica Neue\", Arial, sans-serif"
|
|
47
|
+
"--font-mono" = "\"Geist Mono\", ui-monospace, \"SF Mono\", Menlo, Consolas, monospace"
|
|
48
|
+
|
|
49
|
+
[params.fontDisplay]
|
|
50
|
+
token = "--font-display"
|
|
51
|
+
title = "Display font"
|
|
52
|
+
|
|
53
|
+
[params.fontBody]
|
|
54
|
+
token = "--font-body"
|
|
55
|
+
title = "Body font"
|
|
56
|
+
|
|
57
|
+
[params.glassBlur]
|
|
58
|
+
token = "--glass-blur"
|
|
59
|
+
title = "How much the glass blurs"
|