Honeydeck Docs
Core

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):

PropertyTypeDefaultDescription
titlestring""Deck title (HTML <title>, metadata)
descriptionstring""Deck description (metadata)
aspectRatio"n:n""16:9"Slide canvas aspect ratio
colorMode"system" | "light" | "dark""system"Browser color mode
pdfColorMode"light" | "dark"unsetOptional PDF color mode; when unset, falls back to pinned colorMode, then light
pdfSteps"final" | "all""final"PDF includes all steps or final state
transitionstring | booleanfadeDefault named slide transition (fade, none, slide-left, magic, or custom CSS name)
transitionDurationnumber200Default slide transition duration in milliseconds
transitionEasingstringeaseDefault slide transition timing function
magicCodeDurationnumber800Default Magic Code animation duration in milliseconds
layoutsstring"" (built-in)Layout map module path
defaultLayoutstring"Default"Layout used when slide has no layout:
showSlideNumbersbooleanfalseShow 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 dark

When 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 movement

Legacy 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: 500

A 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 ---):

PropertyTypeDefaultDescription
layoutstring(uses defaultLayout)Layout to use (PascalCase)
transitionstring | booleandeck defaultNamed transition into this slide
transitionDurationnumberdeck defaultTransition duration into this slide in milliseconds
transitionEasingstringdeck defaultTransition easing into this slide
...layout propsvariesAdditional 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.

On this page