Gravity Scroll Cards

Cards that stack and unstack with scroll. Gravity-style depth effect.

Last updated Mar 5, 2026

Component

Card 1
Card 2
Card 3

Installation

pnpm dlx shadcn@latest add "https://pulkitxm.com/components/gravity-scroll-cards.json"

Usage

Import

Add the GravityScrollCards import.

import { GravityScrollCards } from "@/components/gravity-scroll-cards";

Use

Wrap your card elements.

<GravityScrollCards>{/* cards */}</GravityScrollCards>;

Guidelines

  • Pass children as cards. They stack with scroll-linked transform.
  • stackOffset and stackRotation control the stacking effect.
  • start and end control scroll range.

Props

All props are optional unless marked required. Use these to customize every aspect of the component.

PropTypeDefaultDescription
classNamestringAdditional CSS classes.
cardClassNamestringClasses for each card wrapper.
cardWidthstring | number256Card width in pixels or CSS value (e.g. '16rem').
stackOffsetnumber24Vertical offset between stacked cards (px).
stackRotationnumber3Rotation per card in degrees.
startstring"top 80%"ScrollTrigger start.
endstring"top 20%"ScrollTrigger end.

Examples

Basic

Basic stacked cards.

Card 1
Card 2
Card 3
import { GravityScrollCards } from "@/components/gravity-scroll-cards";

<GravityScrollCards className="min-h-[320px]">
  <div className="rounded-xl border bg-gradient-to-br from-violet-600 to-purple-800 p-6">
    Card 1
  </div>
  <div className="rounded-xl border bg-gradient-to-br from-fuchsia-600 to-pink-800 p-6">
    Card 2
  </div>
  <div className="rounded-xl border bg-gradient-to-br from-cyan-600 to-blue-800 p-6">
    Card 3
  </div>
</GravityScrollCards>;

Custom stack

Custom stack offset and rotation.

Card 1
Card 2
Card 3
import { GravityScrollCards } from "@/components/gravity-scroll-cards";

<GravityScrollCards stackOffset={28} stackRotation={4}>
  {/* cards with more offset and rotation */}
</GravityScrollCards>;

Made with ❤️ by Pulkit & Cursor :)

© 2026 Pulkit. All rights reserved

DMCA Verified

Last updated: