A full-screen vertical slider with a 'melt' transition between sections, a side indicator, and radio buttons to change the animation type

Scroll-Driven View Transitions

demo & code

This is a Scroll-Driven View Transitions component. It simulates app-like, full-screen transitions between content sections using only native CSS properties. Its function is to replace traditional vertical scrolling with a more engaging, cinematic experience, where each scroll action triggers a complex animation (like a “melt”, slide, or zoom) rather than a simple positional change.

Level: Intermediate
Browser Support [As of Mar 2026]: Chrome 115+, Edge 115+
Image gallery showing a large main display with a row of clickable thumbnails below. On mobile, the thumbnails transform into small dots with hover previews.

Adaptive Thumbnail Carousel

demo & code

This Adaptive Thumbnail Carousel is a versatile gallery component that seamlessly bridges the gap between desktop and mobile UX. On desktop, it presents a traditional filmstrip of thumbnails. On mobile, it intelligently morphs into a dot-navigation style, where hovering (or tapping) a dot reveals a floating preview of the image. The carousel handles state synchronization, smooth scrolling, and accessibility, making it a robust choice for e-commerce product pages or portfolios.

Level: Intermediate
Browser Support [As of Feb 2026]: Chrome 69+, Edge 79+, Firefox 63+, Safari 13.1+
Pure HTML/CSS Image Slideshow

Pure HTML/CSS Image Slideshow

A lightweight, fast gallery that operates without JS libraries, supporting keyboard navigation, mobile swipes, and deep linking to specific slides.

See the Pen Pure HTML/CSS Image Slideshow.

Page Indicator Animation

Page Indicator Animation

A full vertical slider with scroll-snap points. The navigation indicator is dynamically animated using the Intersection Observer API, which tracks when a slide enters the viewport.

See the Pen Page Indicator Animation.

Infinite Scrolling Cards with GSAP and ScrollTrigger

Infinite Scrolling Cards with GSAP and ScrollTrigger

A demonstration of an advanced GSAP technique for an infinite carousel, where the animation of each element is cyclically repeated with precise staggering, creating the feeling of continuous 3D space.

Scroll-Snap Grid Navigation with Intersection Observer

Scroll-Snap Grid Navigation with Intersection Observer

See how the Intersection Observer powers the 2D grid navigation: the Scroll Snap logic handles mandatory cell binding, while a JS utility adds support for keyboard arrow navigation and responsive typography using cqi/dvh units.

Dinosaur Park Scroll Snap Reveal Demo

Dinosaur Park Scroll Snap Reveal Demo

Impressive scroll-triggered element reveal implemented using the native Intersection Observer API and styling based on CSS Custom Properties for cascading animations.

CSS-Only Testimonials Using Scroll Snap

CSS-Only Testimonials Using Scroll Snap

A powerful demonstration of building a full-featured carousel entirely with CSS, leveraging experimental ::scroll-button, ::scroll-marker, and position-anchor for navigation, indicators, and positional layout without any JavaScript.

CSS-Only Carousel using ::scroll-* Pseudo-Elements [Demo 2]

CSS-Only Carousel using ::scroll-* Pseudo-Elements [Demo 2]

A showcase of the newest CSS capabilities for component building: a complete carousel where navigation buttons (::scroll-button) and marker dots (::scroll-marker) are automatically generated and styled, and the initial item is set via scroll-initial-target.

Popover Drawer UI

Popover Drawer UI

A demonstration of an adaptive drawer UI, driven entirely by modern CSS features like scroll-snap and animation-timeline: scroll(), with a close mechanism based on scrollsnapchange. It also includes VisualViewport handling logic for proper iOS behavior.

See the Pen Popover Drawer UI.

Nintendo Switch UI Recreation with CSSexternal link

A horizontally scrollable game carousel with custom scrollbars and snap points. JavaScript adds click‑to‑scroll and sound feedback on snap events. CSS scroll‑state queries highlight the snapped item and animate its title; progressive enhancement ensures fallbacks for unsupported browsers.

Trip Overview Carousel with Scroll-State Queriesexternal link

Experimental trip carousel using CSS scroll‑snap, scroll markers, and anchor positioning. Each day card reveals details on hover or when snapped. A plane icon follows the active marker. Counters for day numbers are currently broken; the layout relies on modern, partially supported CSS features.