@honeydeck/honeydeck 0.1.2 → 0.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.
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,18 +19,18 @@ 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
32
31
  - [PDF export](docs/pdf-export.md) - options, color modes, and step handling
33
32
  - [Local development](docs/local-development.md) - running Honeydeck from this repository
33
+ - [Skills](docs/skills.md) - optional agent skills for authoring, writing, and migration help
34
34
  - [Slidev migration](docs/slidev-migration.md) - moving from Slidev with the bundled agent skill
35
35
 
36
36
  ## Common commands
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
 
@@ -360,18 +362,11 @@ type LayoutProps<F = Record<string, unknown>> = {
360
362
 
361
363
  ## Agent skills
362
364
 
363
- Honeydeck ships optional agent skills:
364
-
365
- - `honeydeck` for Honeydeck-specific MDX and CLI guidance
366
- - `presentation-writing` for help writing strong slide narratives
367
- - `slidev-migration` for moving decks from Slidev to Honeydeck
368
-
369
- `honeydeck init` can open the same interactive skills installer as `honeydeck skill`.
365
+ Honeydeck ships optional agent skills for Honeydeck authoring, presentation writing, and Slidev migration. `honeydeck init` can open the same interactive skills installer as `honeydeck skill`.
370
366
 
371
367
  ```bash
372
368
  honeydeck skill
373
- npx skills add <honeydeck-repo-url> --copy
374
- npx skills add <honeydeck-repo-url> --copy --skill slidev-migration
375
369
  ```
376
370
 
371
+ See [Skills](skills.md) for installation options and bundled skill details.
377
372
  Coming from Slidev? See the [Slidev migration guide](slidev-migration.md).
@@ -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,18 +98,18 @@ 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
104
110
  - [PDF export](pdf-export.md) - options, color modes, and step handling
105
111
  - [Local development](local-development.md) - running Honeydeck from this repository
112
+ - [Skills](skills.md) - optional agent skills for authoring, writing, and migration help
106
113
  - [Slidev migration](slidev-migration.md) - moving from Slidev with the bundled agent skill
107
114
 
108
115
  ## Learn inside a running deck
@@ -113,4 +120,6 @@ During development, open the runtime reference pages to see:
113
120
  - layout previews with copyable usage snippets
114
121
  - built-in component docs
115
122
 
123
+ See those in our [showcase](https://showcase.honeydeck.dev/#/layouts)
124
+
116
125
  Honeydeck is built with MDX, React, Vite, and Tailwind v4.
package/docs/skills.md ADDED
@@ -0,0 +1,65 @@
1
+ # Skills
2
+
3
+ Honeydeck ships optional agent skills that help AI coding agents work with presentations more reliably. They are plain skill files bundled with the `@honeydeck/honeydeck` package, so you can install them into a deck project or into your global agent setup.
4
+
5
+ ## Install skills
6
+
7
+ New projects can open the skills installer during init:
8
+
9
+ ```bash
10
+ npx @honeydeck/honeydeck init --name my-talk --install-skill
11
+ ```
12
+
13
+ Existing projects can run:
14
+
15
+ ```bash
16
+ honeydeck skill
17
+ ```
18
+
19
+ Both commands open the same `skills` CLI flow, where you choose which Honeydeck skills to install, whether to install them for the project or globally, and which agents should receive them.
20
+
21
+ You can also install from the Honeydeck repository:
22
+
23
+ ```bash
24
+ npx skills add <honeydeck-repo-url> --copy
25
+ npx skills add <honeydeck-repo-url> --copy --skill honeydeck
26
+ npx skills add <honeydeck-repo-url> --copy --skill presentation-writing
27
+ npx skills add <honeydeck-repo-url> --copy --skill slidev-migration
28
+ ```
29
+
30
+ ## Bundled skills
31
+
32
+ | Skill | Use it for |
33
+ | --- | --- |
34
+ | `honeydeck` | Honeydeck-specific guidance for MDX decks, layouts, CSS imports, presenter notes, reveals, code steps, PDF export, and package docs. |
35
+ | `presentation-writing` | Framework-agnostic help with audience, storyline, slide headlines, speaker notes, timing, and review heuristics. |
36
+ | `slidev-migration` | Migrating Slidev decks to Honeydeck while preserving source files until you approve cleanup. |
37
+
38
+ The `honeydeck` and `presentation-writing` skills work well together: one keeps the agent inside Honeydeck conventions, while the other improves the story and delivery. Add `slidev-migration` when you are converting an existing Slidev project.
39
+
40
+ ## How agents use them
41
+
42
+ Skills do not change Honeydeck runtime behavior. They give your agent a focused local instruction file before it edits your deck.
43
+
44
+ For example, an agent with the `honeydeck` skill should prefer:
45
+
46
+ - `deck.mdx` as the entry file
47
+ - exact `---` slide separators
48
+ - slide frontmatter for layouts
49
+ - explicit imports from `@honeydeck/honeydeck`
50
+ - `<Notes>` for speaker notes
51
+ - `<Reveal>`, `<RevealGroup>`, and code metadata for steps
52
+ - `honeydeck pdf` for PDF export
53
+
54
+ The skills also point agents back to the packaged docs and specs, so generated deck changes can stay aligned with the installed Honeydeck version.
55
+
56
+ ## Updating skills
57
+
58
+ Skills are copied into the target scope when you install them. Re-run the installer after upgrading Honeydeck if you want the latest bundled instructions:
59
+
60
+ ```bash
61
+ npm update @honeydeck/honeydeck
62
+ honeydeck skill
63
+ ```
64
+
65
+ Coming from Slidev? See the [Slidev migration guide](slidev-migration.md) for the migration-specific workflow.