Circular Gallery

A 3-D ring gallery with mouse-driven card flip, parallax tilt, and smooth morphing into a lightbox.

Naruto Uzumaki
Demon Slayer
Tokyo Nights
Anime Classroom
Spirit Sakura
Neon Mecha
Demon Hunter
Anime Rain Alley
Mystic Warrior
Kawaii Dreams
Samurai Legacy
Akihabara Lights
Fantasy Mage
Moonlit Shrine
Anime City Rush
Dragon Awakening
Shonen Rivalry
Anime Sunset
Ghost Blade
Cyberpunk Anime

Projects that redefine what's possible.

Click an image to explore

Installation

$ npx shadcn@latest add https://akshitr.com/r/circular-gallery.json

Usage

import CircularGallery from "@/components/circular-gallery";
 
const ITEMS = [
  { title: "Naruto Uzumaki", src: "https://images.unsplash.com/..." },
  { title: "Demon Slayer", src: "https://images.unsplash.com/..." },
];
 
export default function Demo() {
  return <CircularGallery items={ITEMS} />;
}

Component API

CircularGallery

PropTypeDefaultDescription
itemsGalleryItem[]Array of items to render on the ring. Works best with 10–20.
radius?number260Ring radius in pixels at full scale.
cardWidth?number40Width of each ring card in pixels.
cardHeight?number56Height of each ring card in pixels.
className?stringAdditional classes applied to the root div.
children?React.ReactNodeContent rendered inside the gallery ring.

GalleryItem

PropTypeDefaultDescription
titlestringLabel shown in the lightbox below the image.
srcstringImage URL rendered on the card face.

Interactions

TriggerBehaviour
Hover cardCard flips toward the cursor and pushes outward from center.
Click cardCard morphs into a centered lightbox.
Click overlay / EscapeLightbox closes, card morphs back to its position on the ring.
ArrowLeft / ArrowRightNavigates to the previous / next item while the lightbox is open.
Mouse movementEntire ring tilts with a subtle 3-D parallax effect.