Scroll Stack

Pinned cards that stack, turn and dissolve as the page scrolls

Customize

Scroll Length
1.0vh
Peek
26px
Scale Step
0.070
Blur
4.0px
Dim
0.28
Smooth
0.16
Depth
3
Card Width
880px
Card Height
0.68
Border Radius
22px
Perspective
1400px

Props

18
itemsScrollStackItem[]

Cards rendered by the built-in layout. Each accepts eyebrow, title, body, image and accent.

Default5 cards
childrenReactNode

Custom cards, one per child. Supplying children replaces the built-in card layout entirely.

Defaultundefined
variant"stack" | "deck" | "fade" | "flip" | "zoom" | "reveal"

Which stacking animation runs as the cards change over.

Default"stack"
scrollLengthnumber

Viewport heights of scrolling assigned to each card.

Default1
peeknumber

Pixels a covered card slides up so its edge peeks out.

Default26
scaleStepnumber

How much a covered card shrinks per step, from 0 to 1.

Default0.07
blurnumber

Maximum blur in pixels applied to covered cards. Set 0 to disable the filter entirely.

Default4
dimnumber

How far covered cards darken, from 0 to 1.

Default0.28
smoothnumber

Scroll follow damping. 0 tracks the scrollbar exactly, higher values trail behind it.

Default0.16
depthnumber

How many covered cards stay mounted behind the active one. Lower is cheaper to render.

Default3
cardWidthnumber

Maximum card width in pixels.

Default880
cardHeightnumber

Card height as a fraction of the viewport.

Default0.68
borderRadiusnumber

Corner radius of the cards in pixels.

Default22
perspectivenumber

Perspective depth in pixels used by the flip variant.

Default1400
showProgressboolean

Show the progress rail under the stack.

Defaulttrue
showCounterboolean

Show the numeric counter under the stack.

Defaulttrue
onIndexChange(index: number) => void

Fired whenever the frontmost card changes.

Defaultundefined
classNamestring

Extra classes for the outer section.

Defaultundefined