Kodza

Scroll Sequence

A numbered series of pictures drawn on one canvas as the scroll runs through a section that holds the screen. Captions come in on cue, and the frames load coarse to fine: a fast scroll never shows a blank.

Scroll No dependencies scrollimage sequencecanvasframesstickyscrubproduct turn360 turnstorytelling Images 16:9 Added Nov 2026
/anim/scroll-sequence/ GitHub Fullscreen

With your AI

Just ask.

Say it to your AI. It gets the exact code below, not its best guess, and knows where it goes.

Add the Kodza Scroll Sequence to my page.

Not plugged in yet?
claude mcp add -t http kodza https://kodza.dev/api/mcp
Also in Codex, Cursor and VS Code.
kodza-scroll-sequence.html
<div class="kodza-scroll-sequence" data-kodza-scroll-sequence data-frames="60" data-src="https://kodza.dev/media/kz-arch-day/{index}.webp">
  <div class="kodza-scroll-sequence__stage">
    <img class="kodza-scroll-sequence__poster" src="https://kodza.dev/media/kz-arch-day/01.webp" alt="A concrete wall with a single arched opening, its patch of sunlight crossing the ground from morning to evening" width="1440" height="810">
    <div class="kodza-scroll-sequence__panel">
      <p class="kodza-scroll-sequence__meter" aria-hidden="true">
        <span class="kodza-scroll-sequence__counter">01 / 60</span>
        <span class="kodza-scroll-sequence__rail"></span>
      </p>
      <div class="kodza-scroll-sequence__captions">
        <div class="kodza-scroll-sequence__caption" data-at="0">
          <p class="kodza-scroll-sequence__label">Le Mur — Étretat, 8:10</p>
          <h2 class="kodza-scroll-sequence__title">One wall. One hole.</h2>
          <p class="kodza-scroll-sequence__text">Poured on the cliff path, facing inland. Nobody moves in this film, and neither does the camera. Only the sun does.</p>
        </div>
        <div class="kodza-scroll-sequence__caption" data-at="0.36">
          <p class="kodza-scroll-sequence__label">Noon — sun 38° up</p>
          <h2 class="kodza-scroll-sequence__title">The patch crosses the slab.</h2>
          <p class="kodza-scroll-sequence__text">The sun climbs and the light through the arch slides across the ground. A sundial nobody asked for.</p>
        </div>
        <div class="kodza-scroll-sequence__caption" data-at="0.7">
          <p class="kodza-scroll-sequence__label">Evening — sun 14° up</p>
          <h2 class="kodza-scroll-sequence__title">Then the wall takes it back.</h2>
          <p class="kodza-scroll-sequence__text">Low sun, long shadow. By seven the opening is just a door again, and the scroll gives you the morning back.</p>
        </div>
      </div>
    </div>
  </div>
</div>

Checked

Checked before you paste.

Robots poked at it before you did. Every component goes through the same checks, and again each time it changes.

What ranLast run
Accessibilityaxe-core 4.10.2: the WCAG 2.1 A and AA rules, plus best practices. 0 issues
KeyboardThe Tab key gets there, and the focus ring shows when it does. Passed
Reduced motionTurn on reduced motion and what moved just appears. Nothing loops. Passed
Light and darkThe same checks on both themes, contrast included. Passed
WordPressPasted into Twenty Twenty-Five, Twenty Twenty-One, Astra, Blocksy, GeneratePress, Hello Elementor, Kadence and OceanWP. Nothing to flag. 8 / 8 themes
Robots checked this. A human with VoiceOver hasn't yet.

More like this

More in Scroll