Configuration
Configuration documentation for Honeydeck.
Configuration
All settings live in YAML frontmatter — no separate config file.
Deck-Level Settings
Defined in the first frontmatter block of the deck entry file (before any slide content):
| Property | Type | Default | Description |
|---|---|---|---|
title | string | "" | Deck title (HTML <title>, metadata) |
description | string | "" | Deck description (metadata) |
aspectRatio | "n:n" | "16:9" | Slide canvas aspect ratio |
colorMode | "system" | "light" | "dark" | "system" | Browser color mode |
pdfColorMode | "light" | "dark" | unset | Optional PDF color mode; when unset, falls back to pinned colorMode, then light |
pdfSteps | "final" | "all" | "final" | PDF includes all steps or final state |
transition | string | boolean | fade | Default named slide transition (fade, none, slide-left, magic, or custom CSS name) |
transitionDuration | number | 200 | Default slide transition duration in milliseconds |
transitionEasing | string | ease | Default slide transition timing function |
magicCodeDuration | number | 800 | Default Magic Code animation duration in milliseconds |
layouts | string | "" (built-in) | Layout map module path |
defaultLayout | string | "Default" | Layout used when slide has no layout: |
showSlideNumbers | boolean | false | Show the current slide number in the bottom-right corner of slides |
Aspect Ratio
Slides are fixed-ratio canvases, not scrolling pages. Accepted values are "number:number" strings:
aspectRatio: "16:9"
aspectRatio: "4:3"
aspectRatio: "1:1"Named presets, CSS syntax, and numeric values are not supported.
Color Mode
colorMode: system # follow OS preference (default)
colorMode: light # pin to light
colorMode: dark # pin to darkWhen pinned, the viewer cannot switch mode from navigation controls.
Transitions
A subtle named fade transition is applied between slides by default:
transition: fade # default
transition: none # disable
transition: magic # explicit data-magic-id FLIP movementLegacy booleans still work: transition: true maps to fade, and transition: false maps to none.
For built-ins, magic data-magic-id matching, custom CSS transitions, duration, and easing, see Transitions.
Magic Code Duration
Magic Code animations default to 800ms. Set a deck-wide default with magicCodeDuration:
magicCodeDuration: 500A Magic Code block can override this locally with {duration:500}. Slide-level frontmatter does not configure Magic Code; the same key in slide frontmatter is treated as a layout prop.
Slide-Level Settings
Per-slide frontmatter (after ---):
| Property | Type | Default | Description |
|---|---|---|---|
layout | string | (uses defaultLayout) | Layout to use (PascalCase) |
transition | string | boolean | deck default | Named transition into this slide |
transitionDuration | number | deck default | Transition duration into this slide in milliseconds |
transitionEasing | string | deck default | Transition easing into this slide |
| ...layout props | varies | — | Additional props the layout accepts |
Example:
---
layout: Cover
author: Hendrik
---
# Welcome
A modern slide framework.For the opening slide, layout: and its layout-specific fields may also live
in the first frontmatter block alongside deck-level settings.
Minimal Generated Deck
honeydeck init generates frontmatter that keeps the clean defaults explicit and easy to swap:
---
title: "My First Deck"
colorMode: system
transition: fade
transitionDuration: 200
transitionEasing: ease
layouts: "@honeydeck/honeydeck/layouts"
layout: Cover
---Use layouts: "./layouts" for custom layouts or layouts: "@honeydeck/honeydeck/layouts/bee" for the playful Bee layouts.