@honeydeck/honeydeck 0.1.2 → 0.2.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/AGENTS.md CHANGED
@@ -18,8 +18,7 @@ From repo root:
18
18
  npm -w @honeydeck/honeydeck run dev
19
19
  npm -w @honeydeck/honeydeck run test
20
20
  npm -w @honeydeck/honeydeck run typecheck
21
- npm -w @honeydeck/honeydeck run build
22
21
  npm -w @honeydeck/honeydeck run pack:dry-run
23
22
  ```
24
23
 
25
- For full monorepo gates use root workspace scripts: `npm run lint`, `npm run typecheck`, `npm test`, `npm run build`, and `npm run pack:dry-run`.
24
+ For full monorepo gates use root workspace scripts: `npm run lint`, `npm run typecheck`, `npm test`, `npm run build`, and `npm run pack:dry-run`. Root `npm run build` runs only workspaces that define a build script.
package/DEVELOPMENT.md CHANGED
@@ -87,7 +87,6 @@ npx playwright install chromium
87
87
 
88
88
  | Script | Purpose |
89
89
  |--------|---------|
90
- | `npm run build` | Run the package TypeScript build gate |
91
90
  | `npm run dev` | Run source CLI against starter template deck |
92
91
  | `npm run dev:init` | Run source CLI against starter template deck |
93
92
  | `npm run format` | Format/lint with Biome and write fixes |
@@ -114,7 +113,6 @@ npm run format
114
113
  npm run lint
115
114
  npm run typecheck
116
115
  npm test
117
- npm run build
118
116
  npm run pack:dry-run
119
117
  ```
120
118
 
package/Readme.md CHANGED
@@ -19,13 +19,12 @@ Decks are plain MDX files separated into slides with `---`; see the first deck e
19
19
  ## Documentation
20
20
 
21
21
  - [Getting started](docs/getting-started.md) - first deck, first commands, and the shortest path to presenting
22
- - [Next steps](docs/next-steps.md) - CLI options, authoring patterns, imports, themes, architecture, and agent skills
22
+ - [Deeper dive](docs/deeper-dive.md) - CLI options, authoring patterns, imports, themes, architecture, and agent skills
23
23
  - [Slides](docs/slides.md) - separators, multiple files, layouts, and assets
24
24
  - [Configuration](docs/configuration.md) - deck-level and slide-level frontmatter
25
25
  - [Steps and reveals](docs/steps-and-reveals.md) - timeline, reveal groups, code steps, and PDF behavior
26
26
  - [Components](docs/components.md) - core Honeydeck components such as `BrowserFrame` and `Keyboard`
27
- - [Kits](docs/kits.md) - themes, layout sets, Tailwind tokens, and third-party kits
28
- - [Kit authoring](docs/kit-authoring.md) - layout maps, layout props, demos, and design tokens for kit authors
27
+ - [Customization](docs/customization.md) - themes, layout sets, Tailwind tokens, custom layouts, and layout demos
29
28
  - [Navigation](docs/navigation.md) - keyboard, touch, overview mode, and URL state
30
29
  - [Mobile and touch](docs/mobile.md) - mobile controls, touch gestures, and pinch zoom
31
30
  - [Presenter mode](docs/presenter-mode.md) - notes, presenter window, sync, and mobile behavior
package/SPEC.md CHANGED
@@ -42,7 +42,7 @@ The Honeydeck specification is distributed:
42
42
  - `react`, `react-dom`, and Tailwind are peer dependencies of `honeydeck`.
43
43
  - Honeydeck wires the Tailwind Vite plugin internally, but Tailwind/theme CSS is only loaded when user-authored CSS imports it; generated projects install `tailwindcss` and import `./styles.css` from `deck.mdx`.
44
44
  - Generated projects use compatible semver ranges for React, Tailwind, TypeScript, and types.
45
- - Published third-party kits are plain npm packages; supported runtime ranges are managed by package metadata, not by a Honeydeck-specific mechanism.
45
+ - Custom themes, layouts, and components are plain CSS/TypeScript modules; installed-package usage is handled by standard package metadata rather than by a Honeydeck-specific mechanism.
46
46
  - Icons come from `lucide-react` and must use suffixed `...Icon` component exports (for example `ChevronLeftIcon`), not inline SVG path helpers, emoji glyphs, or unsuffixed aliases.
47
47
 
48
48
  ---
@@ -59,7 +59,7 @@ The Honeydeck specification is distributed:
59
59
  | Runtime | [`src/runtime/SPEC.md`](src/runtime/SPEC.md) | timeline semantics, keyboard/touch navigation, SPA/build behavior, runtime errors |
60
60
  | Runtime components | [`src/runtime/components/SPEC.md`](src/runtime/components/SPEC.md) | `Reveal`, `RevealGroup`, `TimelineSteps`, `ListStyle`, `Keyboard`, `BrowserFrame`, `Notes` |
61
61
  | Runtime views | [`src/runtime/views/SPEC.md`](src/runtime/views/SPEC.md) | presenter mode, overview mode, theme/layout/component reference pages |
62
- | Layouts and kits | [`src/layouts/SPEC.md`](src/layouts/SPEC.md) | kit model, built-in layouts, layout props, demos, layout resolution |
62
+ | Layouts and customization | [`src/layouts/SPEC.md`](src/layouts/SPEC.md) | custom theme/layout/component model, built-in layouts, layout props, demos, layout resolution |
63
63
  | Theme | [`src/theme/SPEC.md`](src/theme/SPEC.md) | design tokens, base theme CSS, Tailwind mapping, color mode behavior |
64
64
  | Public exports | [`src/SPEC.md`](src/SPEC.md) | import paths and public TypeScript types |
65
65
  | Public release governance | Repository root `.github/SPEC.md` | protected branch, CI checks, PR title contract, publishing automation; repository-only, not shipped in the npm package |
@@ -80,7 +80,7 @@ The Honeydeck specification is distributed:
80
80
  Honeydeck prioritizes:
81
81
 
82
82
  1. **Zero to presenting** — a plain `deck.mdx` works with built-in layouts, even before CSS is imported.
83
- 2. **Progressive power** — add explicit CSS imports, React, custom layout maps, and kits as needed.
83
+ 2. **Progressive power** — add explicit CSS imports, React components, and custom layout maps as needed.
84
84
  3. **Explicit composition** — see imports and configuration; no user-content auto-discovery and no automatic theme CSS injection.
85
85
  4. **Presentation-native** — timeline, steps, presenter mode, runtime reference pages, and PDF export built in.
86
86
  5. **Fun** — starter sparkle button, tasteful CLI output, playful defaults.
@@ -0,0 +1,413 @@
1
+ # Customization
2
+
3
+ Honeydeck starts with built-in layouts and a small base theme. Customize only what you need: CSS tokens, React components, or a layout map.
4
+
5
+ ## Mental model
6
+
7
+ | Concern | What you write | How you use it |
8
+ |---------|----------------|----------------|
9
+ | Theme | CSS files with Honeydeck tokens and Tailwind utilities | import CSS from `deck.mdx` or from another CSS file |
10
+ | Components | React components | import them in MDX |
11
+ | Layouts | React layout components in a layout map | set `layouts:` in deck frontmatter, then choose `layout:` per slide |
12
+
13
+ All references are explicit. Local files and installed packages work the same way: import the module you want.
14
+
15
+ ## Start with CSS
16
+
17
+ The starter deck imports `./styles.css` from `deck.mdx`:
18
+
19
+ ```mdx
20
+ import './styles.css'
21
+
22
+ # Hello world
23
+ ```
24
+
25
+ A typical styles file imports Tailwind and the Honeydeck base theme:
26
+
27
+ ```css
28
+ @import "tailwindcss";
29
+ @import "@honeydeck/honeydeck/theme.css";
30
+ ```
31
+
32
+ Override tokens after the base theme:
33
+
34
+ ```css
35
+ @import "tailwindcss";
36
+ @import "@honeydeck/honeydeck/theme.css";
37
+
38
+ :root {
39
+ --honeydeck-primary: oklch(55% 0.25 280);
40
+ --honeydeck-font-heading: "Playfair Display", serif;
41
+ --honeydeck-border-radius: 1rem;
42
+ }
43
+ ```
44
+
45
+ Target light and dark modes when needed:
46
+
47
+ ```css
48
+ [data-honeydeck-color-mode="light"] {
49
+ --honeydeck-primary: oklch(50% 0.2 250);
50
+ }
51
+
52
+ [data-honeydeck-color-mode="dark"] {
53
+ --honeydeck-primary: oklch(70% 0.2 250);
54
+ }
55
+ ```
56
+
57
+ ## Bundled themes and layouts
58
+
59
+ The default visual style is clean black, white, and grey:
60
+
61
+ ```css
62
+ @import "tailwindcss";
63
+ @import "@honeydeck/honeydeck/theme.css";
64
+ ```
65
+
66
+ `@honeydeck/honeydeck/themes/clean.css` is available as an optional named clean layer.
67
+
68
+ The Bee theme adds the original playful palette:
69
+
70
+ ```css
71
+ @import "tailwindcss";
72
+ @import "@honeydeck/honeydeck/theme.css";
73
+ @import "@honeydeck/honeydeck/themes/bee.css";
74
+ ```
75
+
76
+ Use the matching Bee layout set when you want Bee slide chrome too:
77
+
78
+ ```yaml
79
+ ---
80
+ layouts: "@honeydeck/honeydeck/layouts/bee"
81
+ ---
82
+ ```
83
+
84
+ The default clean layout set is available through either path:
85
+
86
+ ```yaml
87
+ ---
88
+ layouts: "@honeydeck/honeydeck/layouts"
89
+ ---
90
+ ```
91
+
92
+ ```yaml
93
+ ---
94
+ layouts: "@honeydeck/honeydeck/layouts/clean"
95
+ ---
96
+ ```
97
+
98
+ ## Tailwind token utilities
99
+
100
+ Honeydeck maps theme tokens to Tailwind utilities:
101
+
102
+ ```mdx
103
+ <div className="rounded-honeydeck border border-border bg-surface p-6 text-surface-foreground">
104
+ Styled with Honeydeck tokens.
105
+ </div>
106
+ ```
107
+
108
+ Useful color utilities include `primary`, `primary-foreground`, `accent`, `accent-foreground`, `background`, `foreground`, `surface`, `surface-foreground`, and `border`.
109
+
110
+ ## Design tokens
111
+
112
+ Themes provide CSS custom properties. Colors derive from a primary using `oklch` relative color syntax, with separate values for light and dark modes:
113
+
114
+ ```css
115
+ [data-honeydeck-color-mode="light"] {
116
+ --honeydeck-primary: oklch(50% 0.2 250);
117
+ --honeydeck-background: oklch(from var(--honeydeck-primary) 98% 0.01 h);
118
+ --honeydeck-foreground: oklch(from var(--honeydeck-primary) 15% 0.02 h);
119
+ --honeydeck-surface: oklch(from var(--honeydeck-primary) 94% 0.02 h);
120
+ }
121
+ ```
122
+
123
+ | Token | Purpose |
124
+ |-------|---------|
125
+ | `--honeydeck-primary` | Brand color for this mode |
126
+ | `--honeydeck-primary-foreground` | Text on primary backgrounds |
127
+ | `--honeydeck-background` | Main slide background |
128
+ | `--honeydeck-foreground` | Main text color |
129
+ | `--honeydeck-surface` | Cards, code blocks, callouts |
130
+ | `--honeydeck-surface-foreground` | Text on surfaces |
131
+ | `--honeydeck-border` | Border/divider color |
132
+ | `--honeydeck-accent` | Accent, computed as complementary by default |
133
+ | `--honeydeck-accent-foreground` | Text on accent backgrounds |
134
+ | `--honeydeck-link-color` | Link color, defaulting to inherit |
135
+ | `--honeydeck-border-radius` | Default border radius |
136
+ | `--honeydeck-font-heading` | Heading font family |
137
+ | `--honeydeck-font-body` | Body font family |
138
+ | `--honeydeck-font-mono` | Monospace font family |
139
+ | `--honeydeck-font-base` | Base font size, defaulting to `16px` |
140
+ | `--honeydeck-font-scale` | Heading scale factor, defaulting to `1.25` |
141
+ | `--honeydeck-code-line-dim-opacity` | Dim opacity for non-highlighted code lines |
142
+
143
+ ## Use built-in layouts
144
+
145
+ Select a layout in slide frontmatter:
146
+
147
+ ```mdx
148
+ ---
149
+ layout: Section
150
+ ---
151
+
152
+ # Big idea
153
+ ```
154
+
155
+ If no `layout:` is specified, `Default` is used. Layout names are PascalCase.
156
+
157
+ | Layout | Description |
158
+ |--------|-------------|
159
+ | `Blank` | Empty slide with only children |
160
+ | `Default` | Title top-left, body flows below |
161
+ | `Section` | Big centered heading for section breaks |
162
+ | `Cover` | Opening/closing slide with title, body, author, and date |
163
+ | `TwoCol` | Two equal columns |
164
+ | `Image` | Prominent image with optional title and caption/content |
165
+ | `ImageLeft` | Prominent left image with title and body on the right |
166
+ | `ImageRight` | Prominent right image with title and body on the left |
167
+
168
+ Extra slide frontmatter fields are passed to the selected layout:
169
+
170
+ ```mdx
171
+ ---
172
+ layout: Cover
173
+ author: You_Name_Here
174
+ ---
175
+
176
+ # Honeydeck
177
+
178
+ A modern slide framework.
179
+ ```
180
+
181
+ ### Two-column slides
182
+
183
+ `TwoCol` uses slot components from the active layout set:
184
+
185
+ ```mdx
186
+ ---
187
+ layout: TwoCol
188
+ ---
189
+
190
+ import { Left, Right } from '@honeydeck/honeydeck/layouts/TwoCol'
191
+
192
+ <Left>
193
+ ## Benefits
194
+ - Fast iteration
195
+ - Live reload
196
+ </Left>
197
+
198
+ <Right>
199
+ ## Trade-offs
200
+ - Requires Node.js
201
+ </Right>
202
+ ```
203
+
204
+ For Bee layouts, import slots from the Bee path:
205
+
206
+ ```mdx
207
+ import { Left, Right } from '@honeydeck/honeydeck/layouts/bee/TwoCol'
208
+ ```
209
+
210
+ ### Image slides
211
+
212
+ `Image`, `ImageLeft`, and `ImageRight` accept `image`, `darkImage`, and `alt` frontmatter:
213
+
214
+ ```mdx
215
+ ---
216
+ layout: ImageRight
217
+ image: /photos/launch.jpg
218
+ darkImage: /photos/launch-dark.jpg
219
+ alt: Launch moment
220
+ ---
221
+
222
+ # Launch moment
223
+
224
+ Supporting context sits beside the image.
225
+ ```
226
+
227
+ ## Create custom layouts
228
+
229
+ Custom layouts are React components. Use a layout map when you want `layout:` frontmatter to select them.
230
+
231
+ ```tsx
232
+ // layouts/Hero.tsx
233
+ import type { LayoutProps } from '@honeydeck/honeydeck/types'
234
+
235
+ export default function HeroLayout({ title, children }: LayoutProps) {
236
+ return (
237
+ <div className="grid h-full place-items-center bg-gradient-to-br from-purple-900 to-indigo-900 p-12 text-center text-white">
238
+ <div>
239
+ {title ? <h1>{title}</h1> : null}
240
+ {children}
241
+ </div>
242
+ </div>
243
+ )
244
+ }
245
+ ```
246
+
247
+ Create a layout map:
248
+
249
+ ```ts
250
+ // layouts/index.ts
251
+ import type { LayoutMap } from '@honeydeck/honeydeck/types'
252
+ import defaultLayouts from '@honeydeck/honeydeck/layouts'
253
+ import HeroLayout from './Hero'
254
+
255
+ export default {
256
+ ...defaultLayouts,
257
+ Hero: HeroLayout,
258
+ } satisfies LayoutMap
259
+ ```
260
+
261
+ Reference it from deck frontmatter:
262
+
263
+ ```yaml
264
+ ---
265
+ layouts: "./layouts"
266
+ ---
267
+ ```
268
+
269
+ Use it on any slide:
270
+
271
+ ```mdx
272
+ ---
273
+ layout: Hero
274
+ ---
275
+
276
+ # Special slide
277
+
278
+ With a custom gradient background.
279
+ ```
280
+
281
+ You can also import a React component directly and wrap slide content when you do not need a layout map:
282
+
283
+ ```mdx
284
+ ---
285
+
286
+ import { GradientPanel } from './components/GradientPanel'
287
+
288
+ <GradientPanel>
289
+ # Special slide
290
+ </GradientPanel>
291
+
292
+ ---
293
+ ```
294
+
295
+ ## Layout props
296
+
297
+ `LayoutProps` is generic so layouts can type their accepted frontmatter:
298
+
299
+ ```ts
300
+ type LayoutProps<F extends Record<string, unknown> = Record<string, unknown>> = {
301
+ title: ReactNode | null
302
+ children: ReactNode
303
+ rawChildren: ReactNode
304
+ frontmatter: F
305
+ }
306
+ ```
307
+
308
+ Example typed layout:
309
+
310
+ ```tsx
311
+ import type { LayoutProps } from '@honeydeck/honeydeck/types'
312
+
313
+ type CoverFrontmatter = {
314
+ author?: string
315
+ date?: string
316
+ }
317
+
318
+ export function CoverLayout({ title, children, frontmatter }: LayoutProps<CoverFrontmatter>) {
319
+ const { author, date } = frontmatter
320
+ return (/* ... */)
321
+ }
322
+ ```
323
+
324
+ ## Layout demos
325
+
326
+ Layouts can export a `demo` constant for `/#/layouts`:
327
+
328
+ ```tsx
329
+ import type { LayoutDemo, LayoutProps } from '@honeydeck/honeydeck/types'
330
+
331
+ type HeroFrontmatter = {
332
+ /** Short label shown above the title. */
333
+ eyebrow?: string
334
+ }
335
+
336
+ export default function HeroLayout({ title, children, frontmatter }: LayoutProps<HeroFrontmatter>) {
337
+ return (/* ... */)
338
+ }
339
+
340
+ export const demo: LayoutDemo<HeroFrontmatter> = {
341
+ mdx: `---
342
+ layout: Hero
343
+ eyebrow: Launch
344
+ ---
345
+
346
+ # Hero moment
347
+
348
+ This snippet and preview come from the same demo.`,
349
+ }
350
+ ```
351
+
352
+ `mdx` is the single source for both the live preview and the copyable usage snippet in the layouts reference page. If no demo is exported, the layout still appears with a “No demo MDX provided” hint.
353
+
354
+ ## Slot components
355
+
356
+ Layouts that need content slots can export slot components alongside the layout:
357
+
358
+ ```tsx
359
+ // layouts/TwoCol.tsx
360
+ import type { ReactNode } from 'react'
361
+ import type { LayoutProps } from '@honeydeck/honeydeck/types'
362
+
363
+ export function Left({ children }: { children: ReactNode }) {
364
+ return <div data-honeydeck-slot="left" className="col-start-1 overflow-hidden">{children}</div>
365
+ }
366
+
367
+ export function Right({ children }: { children: ReactNode }) {
368
+ return <div data-honeydeck-slot="right" className="col-start-2 overflow-hidden">{children}</div>
369
+ }
370
+
371
+ export default function TwoColLayout({ title, children }: LayoutProps) {
372
+ return (
373
+ <div className="grid h-full grid-cols-2 gap-12">
374
+ {children}
375
+ </div>
376
+ )
377
+ }
378
+ ```
379
+
380
+ Users import slots from the layout module:
381
+
382
+ ```mdx
383
+ import { Left, Right } from './layouts/TwoCol'
384
+ ```
385
+
386
+ ## Image helpers
387
+
388
+ Built-in placeholder images are available as URL exports for custom image layouts:
389
+
390
+ ```ts
391
+ import {
392
+ imagePlaceholder,
393
+ imagePlaceholderDark,
394
+ verticalImagePlaceholder,
395
+ verticalImagePlaceholderDark,
396
+ } from '@honeydeck/honeydeck/layouts/placeholders'
397
+ ```
398
+
399
+ Use `ColorModeImage` when a custom layout accepts separate light and dark image URLs:
400
+
401
+ ```tsx
402
+ import { ColorModeImage } from '@honeydeck/honeydeck'
403
+
404
+ <ColorModeImage src={image} darkSrc={darkImage} alt={alt} />
405
+ ```
406
+
407
+ ## Runtime reference
408
+
409
+ During development, open the built-in reference pages:
410
+
411
+ - `/#/theme` shows all `--honeydeck-*` CSS tokens with computed values and descriptions.
412
+ - `/#/layouts` shows layouts from the active layout map, live visual previews, copyable snippets, and extracted frontmatter prop docs.
413
+ - `/#/components` shows public built-in components exported from `@honeydeck/honeydeck/components`.
@@ -1,4 +1,4 @@
1
- # Next steps
1
+ # Diving deeper
2
2
 
3
3
  Use this guide after the quick start when you want to understand the main Honeydeck workflows without jumping straight into every reference page.
4
4
 
@@ -285,24 +285,26 @@ All tokens are mapped to Tailwind utilities:
285
285
 
286
286
  Available color utilities: `primary`, `primary-foreground`, `accent`, `accent-foreground`, `background`, `foreground`, `surface`, `surface-foreground`, and `border`.
287
287
 
288
- See [Kits](kits.md) for theme and layout customization.
288
+ See [Customization](customization.md) for theme and layout customization.
289
289
 
290
- ## Kits
290
+ ## Customization
291
291
 
292
- A kit is an npm package bundling a theme, layouts, and components.
292
+ Customize Honeydeck with explicit CSS imports, React component imports, and layout maps.
293
293
 
294
294
  ```mdx
295
295
  ---
296
- layouts: "@company/honeydeck-kit-brand/layouts"
296
+ layouts: "./layouts"
297
297
  ---
298
298
 
299
- import '@company/honeydeck-kit-brand/theme.css'
300
- import { Callout } from '@company/honeydeck-kit-brand/components'
299
+ import './styles.css'
300
+ import { Callout } from './components/Callout'
301
301
 
302
- # Slide with brand kit
302
+ # Slide with custom pieces
303
+
304
+ <Callout>Important!</Callout>
303
305
  ```
304
306
 
305
- Zero config still works: built-in defaults apply without imports. See [Kits](kits.md) and [Kit authoring](kit-authoring.md).
307
+ Zero config still works: built-in defaults apply without imports. See [Customization](customization.md).
306
308
 
307
309
  ## Runtime reference
308
310
 
@@ -1,6 +1,6 @@
1
1
  # Getting started
2
2
 
3
- Honeydeck helps you create polished, interactive presentations from plain-text MDX. Write slides in Markdown, add React components when you need them, and present with built-in layouts, speaker notes, presenter mode, and PDF export.
3
+ Honeydeck helps you create polished, interactive presentations using MDX. Write slides in Markdown, use different Layout, add React components when you need them, present using presenter mode, and export to PDF for easy sharing.
4
4
 
5
5
  ## Quick start
6
6
 
@@ -21,11 +21,11 @@ npm run build
21
21
  npm run pdf
22
22
  ```
23
23
 
24
- Running `honeydeck` with no subcommand shows CLI help.
24
+ `npx @honeydeck/honeydeck` to see cli help.
25
25
 
26
26
  ## Your first deck
27
27
 
28
- Decks are MDX files. The first frontmatter block configures the deck and opening slide. Later `---` separators start new slides.
28
+ Decks are MDX files. The first frontmatter block [configures the deck](configuration.md) and opening slide. Later `---` separators start new slides.
29
29
 
30
30
  ```mdx
31
31
  ---
@@ -62,7 +62,7 @@ Add React when it helps.
62
62
  </Right>
63
63
  ```
64
64
 
65
- Use `layout:` to choose a slide layout. Built-in layouts include `Blank`, `Default`, `Cover`, `Section`, `TwoCol`, `Image`, `ImageLeft`, and `ImageRight`.
65
+ Use `layout:` to choose a slide layout. Built-in layouts include `Blank`, `Default`, `Cover`, `Section`, `TwoCol`, `Image`, `ImageLeft`, and `ImageRight`. See them in the [showacase/#/layouts](https://showcase.honeydeck.dev/#/layouts).
66
66
 
67
67
  ## What Honeydeck gives you
68
68
 
@@ -76,6 +76,13 @@ Use `layout:` to choose a slide layout. Built-in layouts include `Blank`, `Defau
76
76
  - PDF export through headless Chromium
77
77
  - Optional Honeydeck agent skills for writing and migration help
78
78
 
79
+ ## Navigating your deck
80
+
81
+ - Next or previous step using `→` `d` / `←` `a`
82
+ - Next or previous slide with `↓` `s` / `↑` `w`
83
+ - Overview of all slides `o`
84
+ - Presenter mode `p`
85
+
79
86
  ## Common commands
80
87
 
81
88
  ```bash
@@ -91,13 +98,12 @@ honeydeck skill # install optional Honeydeck agent skills
91
98
 
92
99
  ## Where to go next
93
100
 
94
- - [Next steps](next-steps.md) - CLI options, authoring patterns, imports, themes, architecture, and agent skills in one follow-up guide
101
+ - [Deeper dive](deeper-dive.md) - CLI options, authoring patterns, imports, themes, architecture, and agent skills in one follow-up guide
95
102
  - [Slides](slides.md) - separators, multiple files, layouts, and assets
96
103
  - [Configuration](configuration.md) - deck-level and slide-level frontmatter
97
104
  - [Steps and reveals](steps-and-reveals.md) - timeline, reveal groups, code steps, and PDF behavior
98
105
  - [Components](components.md) - core Honeydeck components such as `BrowserFrame` and `Keyboard`
99
- - [Kits](kits.md) - themes, layout sets, Tailwind tokens, and third-party kits
100
- - [Kit authoring](kit-authoring.md) - layout maps, layout props, demos, and design tokens for kit authors
106
+ - [Customization](customization.md) - themes, layout sets, Tailwind tokens, custom layouts, and layout demos
101
107
  - [Navigation](navigation.md) - keyboard, touch, overview mode, and URL state
102
108
  - [Mobile and touch](mobile.md) - mobile controls, touch gestures, and pinch zoom
103
109
  - [Presenter mode](presenter-mode.md) - notes, presenter window, sync, and mobile behavior
@@ -113,4 +119,6 @@ During development, open the runtime reference pages to see:
113
119
  - layout previews with copyable usage snippets
114
120
  - built-in component docs
115
121
 
122
+ See those in our [showcase](https://showcase.honeydeck.dev/#/layouts)
123
+
116
124
  Honeydeck is built with MDX, React, Vite, and Tailwind v4.
@@ -34,7 +34,7 @@ The skill guides an agent through the common Slidev-to-Honeydeck mapping:
34
34
  | `pages/*.md` with `src:` includes | imported `.mdx` slide groups |
35
35
  | `public/**` | `public/**` |
36
36
  | `components/*.vue` | React `components/*.tsx` |
37
- | `layouts/*.vue` or Slidev themes | Honeydeck layouts, layout maps, or kits |
37
+ | `layouts/*.vue` or Slidev themes | Honeydeck layouts, layout maps, React components, and CSS |
38
38
  | `<v-click>` / `<v-clicks>` | `<Reveal>` / `<RevealGroup>` |
39
39
  | trailing note comments | `<Notes>` |
40
40
  | `slidev`, `slidev build`, `slidev export` | `honeydeck dev`, `honeydeck build`, `honeydeck pdf` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@honeydeck/honeydeck",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "MDX and React-based presentation framework for AI-friendly slide decks.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -89,7 +89,6 @@
89
89
  "#vite-plugin/*": "./src/vite-plugin/*"
90
90
  },
91
91
  "scripts": {
92
- "build": "npm run typecheck",
93
92
  "dev": "node --import tsx ./src/cli/index.ts dev --deck src/cli/templates/starter/deck.mdx",
94
93
  "dev:init": "node --import tsx ./src/cli/index.ts dev --deck src/cli/templates/starter/deck.mdx",
95
94
  "format": "biome check --write",
package/skills/SPEC.md CHANGED
@@ -6,14 +6,14 @@
6
6
 
7
7
  Honeydeck ships installable agent skills:
8
8
 
9
- - `skills/honeydeck/SKILL.md` (`honeydeck`) helps AI agents use Honeydeck correctly: MDX entrypoint, deck frontmatter, exact `---` slide separators, slide frontmatter, built-in layouts, explicit theme/CSS imports, presenter notes, steps/reveals, code blocks, PDF export, custom React components, kits, canonical package docs, and runtime reference pages.
9
+ - `skills/honeydeck/SKILL.md` (`honeydeck`) helps AI agents use Honeydeck correctly: MDX entrypoint, deck frontmatter, exact `---` slide separators, slide frontmatter, built-in layouts, explicit theme/CSS imports, presenter notes, steps/reveals, code blocks, PDF export, custom React components, customization, canonical package docs, and runtime reference pages.
10
10
  - `skills/presentation-writing/SKILL.md` (`presentation-writing`) gives opinionated guidance for writing great slides and delivering good presentations: audience/goal/duration discovery, storyline, one idea per slide, strong headlines, sparse visuals, speaker notes, timing, narrative flow, progressive disclosure, and review heuristics.
11
11
  - `skills/slidev-migration/SKILL.md` (`slidev-migration`) helps AI agents migrate presentations from Slidev/sli.dev to Honeydeck: initialize a Honeydeck project when needed, convert `slides.md` to `deck.mdx`, map Slidev frontmatter/layouts/assets/notes/reveals/scripts to Honeydeck equivalents, and flag Vue/theme features that need manual React follow-up.
12
12
 
13
13
  Expected behavior:
14
14
 
15
15
  - All skills are discoverable by the `skills` CLI when users run `npx skills add <honeydeck-repo-url> --copy` or explicit `npx skills add <honeydeck-repo-url> --copy --skill honeydeck` / `--skill presentation-writing` / `--skill slidev-migration`.
16
- - The `honeydeck` skill instructs agents to use Honeydeck documentation (`Readme.md` for package overview, `docs/getting-started.md` for first-run guidance, package/root `SPEC.md`, linked colocated `SPEC.md` files, `docs/next-steps.md`, `docs/slides.md`, `docs/steps-and-reveals.md`, `docs/kits.md`, `docs/configuration.md`, and related docs) as the source of truth when available.
16
+ - The `honeydeck` skill instructs agents to use Honeydeck documentation (`Readme.md` for package overview, `docs/getting-started.md` for first-run guidance, package/root `SPEC.md`, linked colocated `SPEC.md` files, `docs/deeper-dive.md`, `docs/slides.md`, `docs/steps-and-reveals.md`, `docs/customization.md`, `docs/configuration.md`, and related docs) as the source of truth when available.
17
17
  - The `honeydeck` skill documents a local docs discovery order: current project's `node_modules/@honeydeck/honeydeck`, monorepo checkout `packages/honeydeck`, package-root checkout docs, then the public docs URL.
18
18
  - The `presentation-writing` skill is framework-agnostic enough to help with presentation quality, while still working well alongside the Honeydeck skill.
19
19
  - The `slidev-migration` skill instructs agents to inspect existing Slidev projects, preserve source files until the user approves cleanup, initialize or merge Honeydeck starter files, migrate common Slidev syntax to Honeydeck MDX/React, and document unsupported or approximated features.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: honeydeck
3
- description: Help users create, edit, debug, and export Honeydeck MDX presentations. Use for Honeydeck syntax, deck.mdx structure, layouts, frontmatter, steps/reveals, presenter notes, code blocks, custom React components, kits/themes, CLI commands, dev preview, build, or PDF export.
3
+ description: Help users create, edit, debug, and export Honeydeck MDX presentations. Use for Honeydeck syntax, deck.mdx structure, layouts, frontmatter, steps/reveals, presenter notes, code blocks, custom React components, themes, CLI commands, dev preview, build, or PDF export.
4
4
  ---
5
5
 
6
6
  # Honeydeck
@@ -22,11 +22,11 @@ Important docs:
22
22
 
23
23
  - `Readme.md` for the compact package overview and documentation index
24
24
  - `docs/getting-started.md` for quick start and first-run orientation
25
- - `docs/next-steps.md` for CLI details, feature overview, architecture, exports, and agent skills
25
+ - `docs/deeper-dive.md` for CLI details, feature overview, architecture, exports, and agent skills
26
26
  - root/package `SPEC.md` and linked colocated `SPEC.md` files for expected behavior
27
27
  - `docs/slides.md` for deck structure, slide separators, and multi-file decks
28
28
  - `docs/steps-and-reveals.md` for step-by-step reveals and code steps
29
- - `docs/kits.md` and `docs/kit-authoring.md` for themes, layouts, and reusable kits
29
+ - `docs/customization.md` for themes, layouts, custom React components, layout maps, demos, and design tokens
30
30
  - `docs/configuration.md` for frontmatter options
31
31
  - `docs/navigation.md`, `docs/mobile.md`, `docs/presenter-mode.md`, and `docs/pdf-export.md` for presenting/exporting
32
32