Gravity Scroll Cards

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

Component

Card 1
Card 2
Card 3

Installation

 

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
classNamestring-Additional CSS classes.
cardClassNamestring-Classes 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-80">
  <div className="rounded-xl border bg-linear-to-br from-violet-600 to-purple-800 p-6">
    Card 1
  </div>
  <div className="rounded-xl border bg-linear-to-br from-fuchsia-600 to-pink-800 p-6">
    Card 2
  </div>
  <div className="rounded-xl border bg-linear-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>;

Last updated on Mar 5

Made with ❤️ by Pulkit & Cursor :)

© 2026 Pulkit. All rights reserved

DMCA Verified

Last updated: