Gryffin Forge
Experiment2026-10-14

Scroll-driven cinematic showcase

A reusable section that turns any demo into a short film: licensed footage opens from a framed window to full-bleed as you scroll, followed by a pinned photo gallery.

Technical objective

Give every demo the feel of an agency-produced site — real footage, confident typography and motion — while keeping it a single dependency-free script that works on phones.

Constraints

  • No animation libraries: one small script per section.
  • Only one video decoding at a time to protect battery and data.
  • Must respect reduced-motion preferences and degrade to a static layout.

Architecture

  1. 01

    Pinned reel

    A tall section with a sticky stage; scroll progress drives clip-path, scale and chapter.

  2. 02

    Chapters

    Up to three clips cross-fade with captions; only the active clip plays.

  3. 03

    Pinned gallery

    A horizontal track translated by scroll with per-card parallax.

  4. 04

    Own photos first

    When a business's own photos are known, they lead the gallery.

Flow runs left to right, top to bottom.

Key implementation decisions

Footage over procedural 3D

The earlier procedural 3D room looked synthetic. Licensed footage made the same section feel real immediately.

Namespaced styles

The section is injected into many different templates, so every class is prefixed to avoid collisions with template CSS — a lesson learned from a real layout bug.

Preload the next clip only

The first clip loads eagerly; each subsequent clip is upgraded from preload='none' just before it is needed.

Screenshots

Showcase reel opened to full-bleed in the garage demo
Showcase reel opened to full-bleed in the garage demo
Showcase chapter caption in the barbershop demo
Showcase chapter caption in the barbershop demo
Showcase reel in the restaurant demo
Showcase reel in the restaurant demo

Challenges

CSS collisions

A generic class name in the gallery collided with a template's grid rule and collapsed the track. Prefixing every selector fixed it permanently.

Mobile overlap

The final call-to-action overlapped the sticky mobile action bar; on small screens it is now hidden in favour of the bar.

Lessons learned

  • Scroll-linked motion should map to one progress value; everything else derives from it.
  • Injected components must defend their own styles.
  • Real footage plus restraint beats elaborate generated graphics.
Next case studyTemplate-driven website demo engine