Scrollytelling — Playground
Capture
Start with the raw material — colour, light, a first idea.
Compose
Arrange the pieces; the pinned panel swaps to match this step.
Render
The transition style animates each media change as you scroll.
Deliver
Land on the final frame — a scrollytelling narrative.
Crossfade — options
// On the Section (Section → Animations → Scrollytelling), 2 columns: media layers + steps:
'scrollytelling' => [
'mode' => 'crossfade',
'crossfade' => [
'pin_side' => 'left',
'transition' => 0.6,
'intensity' => 0.5,
'progress' => 'dots',
],
],Scrollytelling is a Section-level control — Section → Animationstab → Scrollytelling. Build the Section with two columns: one holds N media layers, the other N step blocks. The media column pins while the steps scroll, swapping to match the active step with the chosen transition. Pure CSS sticky + IntersectionObserver; honours reduced motion (media shows statically above each step).
Pick a transition on the right and drag the vertical scroll on the stage's right edge — the
pinned media panel swaps to match each step, exactly as on a real page. This runs the real
runtime: one column pins while the other's steps scroll, the matching media layer gets .is-active
by index, and the verbatim per-style CSS runs the transition. Tune media side, transition,
intensity, direction and the progress indicator. The Sample option updates as you tweak.
The 23 CSS transitions are all here. Parallax Depth, Pixelate Resolve, Color Shift, Frame Sequence, Horizontal Track and Liquid (WebGL) scrub real images or a canvas/WebGL context, so they aren't simulated in this playground — they're documented on this page and work on a live site.
Scrollytelling is a Section-level control — Section → Animations tab → Scrollytelling. Build the Section with two columns: one holds N media layers, the other N step blocks. Step 1 shows media 1, step 2 shows media 2, and so on. Pure CSS sticky + IntersectionObserver; honours reduce motion.
← Back to Scrollytelling