Desert Mirage
Discover golden dunes and starlit skies in the heart of the Arabian desert.

Tropical Escape
Experience the crystal-clear waters and white sands of the Maldives — your private paradise awaits.

Mountain Adventure
Conquer breathtaking peaks and lose yourself in nature’s raw beauty high in the Himalayas.

European Escape
Wander through cobblestone streets, ancient castles, and cozy cafés across Europe.

Forest Retreat
Reconnect with nature in misty pine forests surrounded by peace and birdsong.

Installation
Examples
Scroll Stack Cards
Desert Mirage
Discover golden dunes and starlit skies in the heart of the Arabian desert.

Tropical Escape
Experience the crystal-clear waters and white sands of the Maldives — your private paradise awaits.

Mountain Adventure
Conquer breathtaking peaks and lose yourself in nature’s raw beauty high in the Himalayas.

European Escape
Wander through cobblestone streets, ancient castles, and cozy cafés across Europe.

Forest Retreat
Reconnect with nature in misty pine forests surrounded by peace and birdsong.

Usage
import { ScrollStackCards } from "@/components/sillybitsui/scroll-stack-cards";const items: Item[] = [
  {
    title: "Desert Mirage",
    description:
      "Discover golden dunes and starlit skies in the heart of the Arabian desert.",
    imageSrc:
      "https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg",
    color: "#F59E0B",
  },
  {
    title: "Tropical Escape",
    description:
      "Experience the crystal-clear waters and white sands of the Maldives — your private paradise awaits.",
    imageSrc:
      "https://images.pexels.com/photos/1450353/pexels-photo-1450353.jpeg",
    color: "#3B82F6",
  },
  {
    title: "Mountain Adventure",
    description:
      "Conquer breathtaking peaks and lose yourself in nature’s raw beauty high in the Himalayas.",
    imageSrc:
      "https://images.pexels.com/photos/674010/pexels-photo-674010.jpeg",
    color: "#10B981",
  },
 
  {
    title: "European Escape",
    description:
      "Wander through cobblestone streets, ancient castles, and cozy cafés across Europe.",
    imageSrc:
      "https://images.pexels.com/photos/460672/pexels-photo-460672.jpeg",
    color: "#8B5CF6",
  },
  {
    title: "Forest Retreat",
    description:
      "Reconnect with nature in misty pine forests surrounded by peace and birdsong.",
    imageSrc:
      "https://images.pexels.com/photos/1179229/pexels-photo-1179229.jpeg",
    color: "#065F46",
  },
];
<ScrollStackCards items={items} />;Props
| Prop | Type | Default | Description | 
|---|---|---|---|
items | Item[] | [] | Array of card objects to display | 
title | string | — | Title for each card | 
description | string | — | Description text for each card | 
imageSrc | string | — | Image URL for each card background | 
color | `#${string}` | — | Background color for each card | 
mainContainerRef | Ref<HTMLDivElement> | undefined | Reference to a scrollable container for controlling animation behavior | 
Notes
- The component uses 
useScrollfrom motion/react to track scroll position. - The 
mainContainerRefis passed to both the parent and each card to synchronize scrolling behavior. - If you remove the 
mainContainerRefprop, eachuseScrollhook will default to using the viewport as its container. - This means that the animations will trigger based on the page scroll instead of the scrollable container.