Capability 03 — Side-by-side scroll

Sticky media. Scrolling prose. A cadence.

The shape the New York Times made famous — a sticky photograph on one side, a column of editorial copy on the other, the image changing as each beat crosses a narrow reading band. Below the large breakpoint, the grid collapses and the page reads linearly. Scroll.

A vast horizon before development, rendered in warm dawn tones.

Scene 01

A hilltop, before the city starts.

The first time you stand here the air is cooler than you expect. The horizon reads flatter than on the map, the ridge softer. What the surveyors called a plateau turns out, up close, to be a slow amphitheatre — a place that seems to have been waiting for something.

Scene 02

The long table arrives.

Twelve metres of cedar, milled from a single log and finished by hand. It is set at the southern edge so that the morning fog, when there is any, rolls across the surface and off the far end before the first plates are laid. Its placement was debated for seven months. Nobody can now imagine the hilltop without it.

Scene 03

A hundred-year pavilion, drawn slowly.

The pavilion is not a building so much as a commitment rendered in stone. Each column is carved from the quarry visible from its own entrance. Every decision was tested against the question of what it will look like at one hundred years of weathering — and, on at least two occasions, that question caused a decision to be rejected and redrawn.

Scene 04

Night falls, and the canopy resolves.

At dusk the canopy — a lattice of bronze and dyed glass — catches the last of the western light and holds it. The effect is not dramatic. It is closer to the way a good piece of fabric catches light: matte, warm, distributed. The intention was to make a gathering place that would flatter the faces of the people in it. It does.

Scene 05

A garden, planted for 2075.

The garden was designed backwards from its fiftieth year. Fast species were chosen for the edges, slow species for the centre, with the understanding that the composition would not be legible for a generation. The gardeners are paid, explicitly, on a hundred-year contract. None of them will see the work they are planting.

How this is built

Two columns, one intersection observer.

Nothing clever. A sticky frame. An observer with a tight reading band. A clip-path wipe that completes before the next beat is ready. Below lg, the columns stack and the observer still works because the reading band is measured against the viewport, not the grid.

01Sticky media columnCSS position: sticky at 10vh (desktop) / 15vh (mobile). No JS needed — the browser pins the frame while copy scrolls past.View source
02IntersectionObserver on each beatrootMargin of -40% top and bottom defines a narrow "reading band." The beat inside it becomes active.View source
03GSAP clip-path wipeActive media enters with a left-to-right inset clip-path reveal, gentle scale-down from 1.15, 1.1s ease-out.View source
04SplitHeading on each titleCharacter-level stagger reveal fires when a beat becomes active. Words, not chars, for a softer entrance.View source
05Body copy scroll revealGSAP fromTo with x: 40 → 0, opacity 0 → 1, triggered once per beat via ScrollTrigger at top 82%.View source
06Responsive stack below lgBelow 1024px the grid collapses to a single column. Media stays sticky at the top but no longer sits beside copy.View source
07prefers-reduced-motionAll clip-paths, scales, and x-translations short-circuit to a static crossfade. Media still swaps — it just doesn't wipe.View source
08Ken Burns on active mediaA slow scale from 1 → 1.06 over 12s, only on the currently-active image. The page never sits still when it's supposed to breathe.View source
Back to the showcase