Skip to content
Web

Concept, design and build

Premium ice cream brand

A concept site for a small-batch ice cream brand told through scroll-scrubbed video: the hero cone tumbles into the first flavour card and a sundae builds itself scoop by scoop.

Stack: HTML, CSS, JavaScript, GSAP, Lenis, ffmpeg

An ice cream cone mid-tumble between scroll frames
Desktop
Mobile

Problem

Video-heavy scroll stories break easily. A blocked CDN, a slow phone or a reduced-motion setting can leave a blank page. This one had to look rich and never fail empty.

What I built

  1. Vanilla HTML, CSS and JS with GSAP ScrollTrigger and Flip, and Lenis synced to the GSAP ticker.
  2. Hero cone video autoplays for 2.8 s, then scroll-scrubs; on desktop a Flip hand-off lands it as flavour card 01.
  3. Pinned horizontal pint gallery and a pinned build-your-box sequence where a sundae assembles, then melts.
  4. Scrubbed videos re-encoded with a keyframe every 3 frames; the last frame is extracted as a hand-off still to avoid flicker.
  5. Three layers of resilience: the intro lock is added by script only, a static fallback runs if GSAP is missing, and 6 s and 9 s watchdogs release the page.
  6. gsap.matchMedia() tears pins down cleanly at 1024 px; reduced motion swaps everything for stills.

Proof

  • Text contrast raised from 1.68:1 to 7.3:1
  • 44 px targets under pointer: coarse

Stack

  • HTML
  • CSS
  • JavaScript
  • GSAP
  • Lenis
  • ffmpeg