Scrollytelling block
A type: scrollytelling block: one map plus an ordered list of chapters that drive the camera and layer visibility as the reader scrolls. For narrative and examples see Scrollytelling.
Type: "scrollytelling" · Required
Block type
Type: string · Required
Unique block identifier
className
Section titled “className”Type: string
CSS class name for container
Type: string
Inline CSS styles for container
config
Section titled “config”Type: object · Required
Map configuration with MapLibre options
Same shape as config.
Type: "light" | "dark" · Default: "light"
Visual theme
showMarkers
Section titled “showMarkers”Type: boolean · Default: false
Show chapter markers on map
markerColor
Section titled “markerColor”Type: string · Default: "#3FB1CE"
Chapter marker color
layers
Section titled “layers”Type: object[] · Default: []
Persistent layers (visible throughout story)
Each entry: see the Layers reference.
chapters
Section titled “chapters”Type: object[] · Required · Min items: 1
Story chapters
Path: chapters[].id · Type: string · Required
Unique chapter identifier
Path: chapters[].title · Type: string · Required
Chapter title
center
Section titled “center”Path: chapters[].center · Type: [number, number] · Required
Map center [longitude, latitude]
Path: chapters[].zoom · Type: number · Required
Zoom level
description
Section titled “description”Path: chapters[].description · Type: string
Chapter description (HTML/markdown supported)
Path: chapters[].image · Type: string (URL)
Hero image URL
Path: chapters[].video · Type: string (URL)
Video URL
Path: chapters[].pitch · Type: number · Default: 0 · Range: 0 to 85
Camera pitch angle (0-85)
bearing
Section titled “bearing”Path: chapters[].bearing · Type: number · Default: 0 · Range: -180 to 180
Camera bearing (-180 to 180)
Path: chapters[].speed · Type: number · Default: 0.6 · Range: 0 to 2
Animation speed multiplier (0-2)
Path: chapters[].curve · Type: number · Default: 1 · Range: 0 to 2
Animation curve (0=linear, 1=default, 2=steep)
animation
Section titled “animation”Path: chapters[].animation · Type: "flyTo" | "easeTo" | "jumpTo" · Default: "flyTo"
Animation type
rotateAnimation
Section titled “rotateAnimation”Path: chapters[].rotateAnimation · Type: boolean
Enable continuous rotation animation
spinGlobe
Section titled “spinGlobe”Path: chapters[].spinGlobe · Type: boolean
Not implemented (warns, no effect). Globe projection itself is the map-level projection: { type: globe }
alignment
Section titled “alignment”Path: chapters[].alignment · Type: "left" | "right" | "center" | "full" · Default: "center"
Content alignment
hidden
Section titled “hidden”Path: chapters[].hidden · Type: boolean · Default: false
Hide chapter content (map-only)
layers
Section titled “layers”Path: chapters[].layers · Type: object
Layer visibility control
Path: chapters[].layers.show · Type: string[] · Default: []
Layer IDs to show
Path: chapters[].layers.hide · Type: string[] · Default: []
Layer IDs to hide
onChapterEnter
Section titled “onChapterEnter”Path: chapters[].onChapterEnter · Type: object[] · Default: []
Actions when entering chapter
action
Section titled “action”Path: chapters[].onChapterEnter[].action · Type: string · Required
Action type
Allowed values: setFilter, setPaintProperty, setLayoutProperty, flyTo, easeTo, fitBounds, custom
Path: chapters[].onChapterEnter[].layer · Type: string
Target layer ID
property
Section titled “property”Path: chapters[].onChapterEnter[].property · Type: string
Property name (for setPaintProperty/setLayoutProperty)
Path: chapters[].onChapterEnter[].value · Type: any
Property value
filter
Section titled “filter”Path: chapters[].onChapterEnter[].filter · Type: array | null
Filter expression (for setFilter, null to clear)
bounds
Section titled “bounds”Path: chapters[].onChapterEnter[].bounds · Type: number[]
Bounds array (for fitBounds)
options
Section titled “options”Path: chapters[].onChapterEnter[].options · Type: map of any
Additional options
onChapterExit
Section titled “onChapterExit”Path: chapters[].onChapterExit · Type: object[] · Default: []
Actions when exiting chapter
Each entry has the same shape as chapters[].onChapterEnter[].
callback
Section titled “callback”Path: chapters[].callback · Type: string
Custom callback function name
footer
Section titled “footer”Type: string
Footer content (HTML)