Alphabetical contact list sidebar indicator with active letters dynamically scaling using CSS scroll-driven animations and view-timeline.

Native CSS Scroll Snap Time Picker

This date and time wheel selector leverages the cutting-edge CSS Scroll Snap Events API to build an efficient mobile-style picker. By registering event listeners for scrollsnapchanging and scrollsnapchange, the layout dynamically updates the select state in real time as the wheels rotate. It uses native CSS scroll-start-target-block to set initial positions, offering a smooth, lightweight solution.

Technologies:
HTML CSS JavaScript/Babel
Difficulty: Advanced
Browser Support (as of Jul 2026):
Chrome Chrome 129+ Edge Edge 129+ Safari Safari 18+
Features:
Scroll Snap Events Scroll Start Target Pure CSS Spinner
Code by: Adam Argyle Adam Argyle
License: MIT
High-fidelity custom select dropdown menu using native HTML customizable select, vertical scroll snapping, proximity text blur, and active scrolling realignment.

Scroll-Snapping Popover Select Dropdown Menu

An experimental custom select dropdown menu built on native HTML5 base-select specifications. The picker popover displays options in a vertically scroll-snapped viewport that fades and blurs adjacent values based on scroll proximity. A lightweight GSAP scrolling script automatically centers and aligns selected items in real time, while modern @starting-style manages discrete popover overlay entry transitions. (Requires: gsap.js, tweakpane.js)

Technologies:
HTML CSS JavaScript/Babel
Difficulty: Advanced
Browser Support (as of Jun 2026):
Chrome Chrome 130+ Edge Edge 130+
Features:
Base Select Menu Scroll Snapping Proximity Blur
Code by: Jhey Jhey
License: MIT
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

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.

Technologies:
HTML CSS
Difficulty: Intermediate
Browser Support (as of Mar 2026):
Chrome Chrome 115+ Edge Edge 115+
Features:
Scroll Timeline Scroll Snap View Transitions Pure CSS
Code by: Giana Giana
License: MIT

See the Pen Scroll-Driven View Transitions.

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

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.

Technologies:
HTML CSS JavaScript
Difficulty: Intermediate
Browser Support (as of Feb 2026):
Chrome Chrome 69+ Edge Edge 79+ Firefox Firefox 63+ Safari Safari 13.1+
Features:
Responsive Design Scroll Snapping Keyboard Navigation Thumbnail Preview
Code by: Full on CSS Full on CSS
License: MIT

See the Pen Adaptive Thumbnail Carousel.

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.

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.

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.