Slide format (.slide.json)¶
Each slide is a .slide.json file — JSON5 on the .json extension.
It declares the slide's title, its elements, and the properties that
control how it scrolls.
A slide file comes in two forms, distinguished by its top-level keys:
a regular slide carries elements; a template-slide stub
carries template_file + with and renders a whole-slide factory
template instead — see Templates.
Core fields¶
title— the slide's title, required on every slide.- elements — the stack of elements that make up the slide's content, each with its own position, size, and optional animation.
Scroll behavior¶
scroll_range— how far the slide scrolls, as a number, or"auto"(default) for content-driven height;0pins the slide static. Animation keyframes are expressed in these units.snap_positions— scroll offsets the view eases to, letting the slide rest on meaningful moments.reverse— when true, flips the scroll direction so the thumb starts at the bottom and rises as the reader advances.font_scale— multiplies the slide's text size (default1.0).
Multi-line content¶
Markdown and HTML element bodies with internal structure read best split across source lines using JSON5 string-continuation, rather than crammed into one long string. See Working with assets for how element content references external files.
The authoritative, per-field schema for slides and every element type lives in the Element schemas reference, generated from the installed scrolly version.