Deck format (.deck.json)¶
A deck is described by a single .deck.json manifest: the slides it
contains, where they sit on the grid, the edges between them, and any
groups. Like all scrolly sources it is authored as JSON5 but kept
on the .json extension, so tooling that defaults to *.json keeps
working while you write the friendlier JSON5 superset.
Slides and positions¶
The manifest lists each slide and its grid position: [col, row].
Positions may be negative and need not start at the origin (see
The 2D canvas). Each entry points at a
.slide.json file described in Slide format.
Edges¶
Edges connect grid-neighboring slides to show the reader where they can navigate. Each edge names its endpoints; scrolly draws the connector in the deck map and the corresponding navigation arrow in slide view.
Groups¶
A group collects slides under a shared background color and a labeled
tab in the deck map. A group has a label, the slide_ids it
contains, and an optional color.
Label coloring¶
By default a group's label color is derived automatically from its
background color for legibility — scrolly picks black or white by
whichever gives the higher contrast against the background. This means
that just setting a background gets you a readable label with no extra
work.
When the automatic black-or-white choice isn't what you want — for
example a tinted label that matches the group's hue — set label_color
explicitly to override it. Both color and label_color accept the
same hex forms (#RGB or #RRGGBB).
The complete manifest field list is in the Element schemas reference.