A video game character select screen with a large image of Ryu and a row of selectable character portraits at the bottom

CSS :has() Character Select Screen

demo & code

This is a CSS :has() Character Select Screen. It replicates the classic user interface of a fighting game’s selection menu, using modern CSS to handle all state logic. Its function is to demonstrate how the :has() pseudo-class can completely replace JavaScript for managing visibility in a selection-based UI, triggering changes in the main content area based on the state of a radio button group.

Level: Beginner
Browser Support [As of Mar 2026]: Chrome 105+, Edge 105+, Firefox 121+, Safari 15.4+
A grid of four image quadrants that expand to full screen with a sliding caption effect upon interaction

Clipping Quadrant Image Gallery

demo & code

This is a Clipping Quadrant Image Gallery. It segments a full-screen display into four interactive quadrants, each housing a unique photograph. Upon clicking any segment, the component utilizes the clip-path property to instantly expand that specific quadrant to cover the entire viewport, transitioning from a mosaic-style grid into a singular, immersive view.

Level: Beginner
Browser Support [As of Mar 2026]: Chrome 55+, Edge 79+, Firefox 52+, Safari 11+
A fan-like arrangement of rectangular image cards that spread apart gracefully when hovered, creating a fluid radial carousel

Interactive Radial Image Carousel

demo & code

This is an Interactive Radial CSS Image Carousel. It arranges a deck of image cards into a curved, fan-like layout. Its function is to provide an engaging, space-saving gallery interface where hovering over a card gracefully shifts its neighbors away along a circular path, bringing the focused item into clear view without relying on JavaScript math.

Level: Advanced
Browser Support [As of Mar 2026]: Chrome 119+, Edge 119+, Firefox (partial), Safari 26.2+
Circular layout of avatar images that dynamically expand and separate on hover, featuring a bright gradient background

Dynamic Circular Avatar Gallery

demo & code

This is a Dynamic Circular Avatar Gallery. It arranges a series of profile images into a perfect circle that smoothly expands when interacted with. Its function is to showcase user groups or team members in a compact, engaging format, using cutting-edge CSS math instead of JavaScript to handle complex radial positioning and dynamic item counting.

Level: Advanced
Browser Support [As of Mar 2026]: Chrome 119+, Edge 119+
Dark themed responsive CSS grid layout with SVG icons where an active card expands into full width smoothly

Smooth View Transition Grid Cards

demo & code

This is a Smooth View Transition Grid Cards component. It transforms a standard CSS Grid of cards into an interactive, animated gallery. Its function is to elegantly expand a selected item to full width, smoothly reflowing the remaining siblings using native browser rendering instead of complex JavaScript math.

Level: Intermediate
Browser Support [As of Feb 2026]: Chrome 111+, Edge 111+, Firefox 128+, Safari 18+
A circular 3D carousel of rounded images floating in a dark void, following a complex mathematical curve driven by pure CSS.

Trigonometric 3D Orbit Gallery

demo & code

This Trigonometric 3D Orbit Gallery is a stunning example of “Code Art,” demonstrating the raw power of modern CSS mathematics. Instead of relying on rigid keyframes for positioning, it uses parametric equations to place and animate 32 images along a complex, fluid 3D curve in real-time, creating a perpetual motion machine effect purely with stylesheets.

Level: Advanced
Browser Support [As of Jan 2026]: Chrome 111+, Edge 111+, Safari 16.4+, Firefox 113+
A gallery of images framed to look like interlocking jigsaw puzzle pieces.

Wavy Image Gallery

Images appear as jigsaw puzzle pieces with interlocking edges that can visually fit together.

See the Pen Wavy Image Gallery.

An expanding image gallery where hovering over an item causes it to widen and reveal more content.

Animated Grid Tracks with :has()

A pure CSS expanding gallery powered by the modern :has() selector. Hovering triggers a grid-template-columns transition, widening the active item while revealing content via opacity and transform animations, all styled with blend modes for a tinted monochrome aesthetic.

See the Pen Animated Grid Tracks with :has().

Responsive CSS Grid: Books

Responsive CSS Grid: Books

A unique, dynamic, and responsive collage of images that uses advanced CSS techniques to create a 3D-like geometric pattern.

See the Pen Responsive CSS Grid: Books.

Full Viewport Gallery: Pure CSS

Full Viewport Gallery: Pure CSS

A pure CSS image gallery that leverages the advanced :has() pseudo-class and radio input hacks to orchestrate state changes without JavaScript. The layout utilizes CSS Grid variables to dynamically translate the viewport, creating a smooth, easing-based transition between full-screen images controlled entirely by sibling combinators and checked states.

See the Pen Full Viewport Gallery: Pure CSS.

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.

Smooth Scroll Image Gallery with Anchor Links

Smooth Scroll Image Gallery with Anchor Links

This component leverages the native browser feature scroll-behavior: smooth to create a fluid scrolling animation between sections. This is triggered by anchor links, providing a simple and performant way to build a slideshow without any complex JavaScript animation libraries.

Scroll-Driven Gallery

Scroll-Driven Gallery

A demonstration of the new CSS Scroll-Driven Animations (SDA) API, where the scroll position of the entire page directly drives a complex, scaling, and rotating grid of images, achieving a high-performance, engaging visual effect purely with CSS.

See the Pen Scroll-Driven Gallery.

Photo Gallery Grid Animation with CSS Clip-Path

Photo Gallery Grid Animation with CSS Clip-Path

A showcase of the creative application of clip-path to create an “unfolding” image effect on hover, where the interaction not only changes the shape but also uses z-index to elevate the element and overlap neighboring tiles.

3D Parallax Navigation with 'Fisheye' Hover Effect (CSS-Only)

3D Parallax Navigation with 'Fisheye' Hover Effect (CSS-Only)

A stunning CSS-only 3D parallax navigation with a “fisheye” hover effect, achieved using transform-style: preserve-3d and a translateZ function tied to cursor position. The core mechanism is the mathematical calculation of CSS variables.

Reflection with Progressive Blur in CSS

Reflection with Progressive Blur in CSS

Progressive Blur for the lower screen half is implemented to simulate fog: the effect is created by layering multiple elements with varying backdrop-filter: blur() values, precisely masked using mask: linear-gradient().

Corner-shape Hexagon Avatars

Corner-shape Hexagon Avatars

This demo creates a responsive hexagonal grid using CSS Grid and the powerful, lesser-known corner-shape: bevel property. It uses negative margin-block for smooth overlaps, and a unique linear() easing function for a bouncy, fluid hover animation.

See the Pen Corner-shape Hexagon Avatars.

Coverflow 3D Effect with CSS

Coverflow 3D Effect with CSS

A truly modern image flow powered by CSS Scroll-driven Animations and view-timeline. This demo uses pure CSS to create a 3D perspective effect where images pop out and rotate as they enter the viewport, with no JavaScript required.

See the Pen Coverflow 3D Effect with CSS.

Vertical Slider with CSS Only

Vertical Slider with CSS Only

A simple, yet effective image gallery using CSS Grid and native browser features like scroll-snap and :target. This approach creates a smooth, fully accessible slideshow without any JavaScript, relying on pure CSS for both layout and navigation.

See the Pen Vertical Slider with CSS Only.

Slide In/Out Gallery Effectexternal link

An atmospheric, cyberpunk gallery where static images feel alive due to constantly shifting digital artifacts and smooth caption reveals on hover.

A Gallery of Squiggle Images

A Gallery of Squiggle Imagesexternal link

CSS Grid creates a 3‑column base, then each image is individually shifted with translate to break the alignment — resulting in a scattered, organic layout. The wave‑shaped border is drawn using mask with repeating radial gradients; the design is purely visual and static.

CSS Grid for Multi-Sized Avatars

CSS Grid for Multi-Sized Avatars

A responsive mosaic grid of user avatars utilizing CSS Grid’s dense auto-flow algorithm to seamlessly pack items of varying sizes. Special ‘gold’ supporters span multiple rows and columns, creating visual hierarchy, while :has() pseudo-class selectors enable a focused hover state that subtly dims non-active elements.

See the Pen CSS Grid for Multi-Sized Avatars.

Pokémon Slide Gallery (Yet Another Circle Gallery)external link

Radio buttons hidden behind thumbnails control a rotating circular menu — each selection rotates the container so the chosen item aligns at the front. Custom properties handle positioning and animation delays; :has() and sibling selectors manage the interactions. The gallery is fully functional with no JavaScript.