tween
ComponentsTemplatesShowcaseContact

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Installation
  • StoryNew
Guides
  • Motion Principles
  • Scroll and Smooth Scroll
  • Performance and Accessibility
Scroll Animations
  • Sticky Cards Scroll
  • Rise Fan Cards Scroll
  • Rotate Stack Scroll
  • Doodle Lens ScrollNew
  • Slit Open Hero ScrollNew
  • Logo Mask Zoom ScrollNew
  • ASCII Dissolve ScrollNew
  • Lottie Flight ScrollNew
  • Inline Icon Text ScrollNew
  • Starfield ScrollNew
  • Name Swap ScrollNew
  • Spotlight Gallery HeroNew
  • Slit Rotate Hero ScrollNew
  • Stroke Cover ScrollNew
  • Stroke Rows ScrollNew
Text Animations
  • Text Skew Reveal
  • Block Text Reveal
Hover & Cursor
  • Image Trail Cursor
  • Cursor Depth Logo
  • Physics Tag Drop
  • Elastic Card ListNew
  • Magnetic Cards SpringNew
Sliders & Carousels
  • Wheel Fullscreen Carousel
  • Ripple Displacement Slider
  • Three.js Blend Slider
  • Stacked Deck Slider
  • Orbit Cylinder SliderNew
  • Fan Stack SliderNew
  • Exponential Strip SliderNew
  • Dual Column SliderNew
Galleries & Grids
  • Scroll Wave Gallery
Menus & Navigation
  • Shrink Page MenuNew
Preloaders & Intros
  • Floating Items RevealNew
  • Word Cycle RevealNew
  • Tile Grid LoaderNew
Page Transitions
  • Panel Assembly TransitionNew
3D & WebGL
  • Fractal Glass Hero
  • Fluid Cursor Canvas
  • Fluid Portrait Hero
  • Fluid Gradient Canvas
  • Inversion Lens HoverNew
UI Elements
  • Circular Widgets
  • Vinyl Cover
  • Image Explosion Footer
  • Accordion Image FramesNew

(Tween) — Motion registry

Animated components & full sites, one command away.

Product

  • Components
  • Templates
  • Installation
  • Guides
  • Blog
  • Contact

Categories

  • Scroll Animations
  • Text Animations
  • Hover & Cursor
  • Sliders & Carousels
  • Galleries & Grids
  • Menus & Navigation
  • Preloaders & Intros
  • Page Transitions
  • 3D & WebGL
  • UI Elements
TWEEN
ease: power2.inOut0.00s
© 2026 TweenBack to topBuilt by mohammad
  1. Docs/
  2. Components/
  3. Rise Fan Cards Scroll

Rise Fan Cards Scroll

PreviousNext

A pinned section where four rotated image cards rise from below into a centered overlapping stack, then fan out to four distinct positions while de-rotating upright as the scroll continues.

Open in
rise-fan-cards-scroll-demo

Every vessel begins as a quiet afternoon.

Glaze settles slowly, the way good light does.

Celadon jugs and bowls glazed in sage and seafoam
Three matte porcelain bud vases set in a row
A single bone-white stoneware vase in soft light
A speckled grey bottle vase against a charcoal wall

We throw by hand and fire in patient batches.

components/ui/rise-fan-cards-scroll-demo.tsx
import { RiseFanCardsScroll } from "@/registry/tween/rise-fan-cards-scroll"

export function RiseFanCardsScrollDemo() {
  return (
    <div className="w-full">
      <RiseFanCardsScroll />
    </div>
  )
}

Installation

pnpm dlx shadcn@latest add https://tweenui.dev/r/rise-fan-cards-scroll.json

Usage

import { RiseFanCardsScroll } from "@/components/ui/rise-fan-cards-scroll"
<RiseFanCardsScroll
  cards={[
    {
      img: "https://images.unsplash.com/photo-1597696929644-a2157a251a43?q=80&w=1400&h=1000&fit=crop&crop=center&auto=format",
      alt: "Celadon jugs and bowls glazed in sage and seafoam",
    },
    {
      img: "https://images.unsplash.com/photo-1687191886564-4df56dc1c7df?q=80&w=1400&h=1000&fit=crop&crop=center&auto=format",
      alt: "Three matte porcelain bud vases set in a row",
    },
    {
      img: "https://images.unsplash.com/photo-1687191883721-257d8cad5b54?q=80&w=1400&h=1000&fit=crop&crop=center&auto=format",
      alt: "A single bone-white stoneware vase in soft light",
    },
    {
      img: "https://images.unsplash.com/photo-1523263889714-d345f8119047?q=80&w=1400&h=1000&fit=crop&crop=center&auto=format",
      alt: "A speckled grey bottle vase against a charcoal wall",
    },
  ]}
  intro="Every vessel begins as a quiet afternoon."
  heading="Glaze settles slowly, the way good light does."
  outro="We throw by hand and fire in patient batches."
/>

The middle section pins for pinDistanceFactor viewport heights. In the first phase, the four rotated cards rise from below the frame into a centered, overlapping stack with a per-card stagger and an eased cubic-out motion. In the second phase, as the scroll continues, each card fans out to its own distinct position while rotating back to upright, again with a stagger. Each card is absolutely centered and animated via xPercent / yPercent so its center stays anchored to the parent center as it moves. The trigger resolves its scroller via usePreviewScroller and a ResizeObserver rebuilds it on layout changes. When prefers-reduced-motion: reduce is set, the section renders its final state with the cards fanned out and upright.

Props

PropTypeDefaultDescription
cardsRiseFanCard[]4 defaultsImage cards ({ img, alt }) that rise and fan out.
introReact.ReactNodedefaultHeadline shown in the intro section.
headingReact.ReactNodedefaultHeadline shown behind the cards in the pinned section.
outroReact.ReactNodedefaultHeadline shown in the outro section.
pinDistanceFactornumber6How many viewport heights the section pins for.
backgroundstring"#d7dbd2"Intro / outro background color.
panelBackgroundstring"#edf1e8"Pinned card section background color.
foregroundstring"#141414"Text color.
scrollerHTMLElement | string | null—Optional ScrollTrigger scroller; defaults to preview scroller.
classNamestring—Extra classes on the outer container.
Sticky Cards ScrollRotate Stack Scroll

On This Page

InstallationUsageProps

Contribute

  • Report an issue
  • Request a feature
  • Edit this page