Beta

Scroll Animations

Scroll triggerd animations never been easier, now you can animate transforms, and roundness and positioning.

Combo animations (inset on x axis, scale and translateY)

This demo is inspired by Beyond agency hero section.

Installation

Usage

<ScrollAnimation className="overflow-hidden">
  <ScrollTranslateY className="h-dvh relative">
    <ScrollInset className="h-full relative">
      <ScrollScale className="flex bg-secondary gap-2 overflow-hidden px-6">
        <ScrollTranslateY
          yRange={['0%', '-10%']}
          className="flex flex-col gap-2"
        >
          {IMAGES_1.map((imageUrl, index) => (
            <img
              key={index}
              className="aspect-[4/2.5] inline-block align-middle h-auto max-h-full w-full  object-cover"
              src={imageUrl}
              alt="gallery item"
            />
          ))}
        </ScrollTranslateY>

        <ScrollTranslateY
          yRange={['0%', '20%']}
          className="flex mt-[-20%] relative flex-col gap-2"
        >
          {IMAGES_2.map((imageUrl, index) => (
            <img
              key={index}
              className="aspect-[4/2.5] inline-block align-middle h-auto max-h-full w-full  object-cover"
              src={imageUrl}
              alt="gallery item"
            />
          ))}
        </ScrollTranslateY>

        <ScrollTranslateY
          yRange={['0%', '-10%']}
          className="hidden md:flex flex-col gap-2"
        >
          {IMAGES_3.map((imageUrl, index) => (
            <img
              key={index}
              className="aspect-[4/2.5] inline-block align-middle h-auto max-h-full w-full  object-cover"
              src={imageUrl}
              alt="gallery item"
            />
          ))}
        </ScrollTranslateY>
      </ScrollScale>
    </ScrollInset>
  </ScrollTranslateY>
</ScrollAnimation>

Examples

Inset with roundness

Inset-X

Inset-Y

Roundness

Scale

Translate X

Crafting websites

in no time

Props

ScrollAnimation

PropTypeDefault
spacerClass?
string
-

ScrollTranslateY

PropTypeDefault
yRange?
number[]
[0, 384]
inputRange?
number[]
[0, 1]

ScrollTranslateX

PropTypeDefault
xRange?
number[]
[0, 100]
inputRange?
number[]
[0, 1]

ScrollInset

PropTypeDefault
insetRange?
number[]
[48, 0]
inputRange?
number[]
[0, 1]

ScrollScale

PropTypeDefault
yRange?
number[]
[1.2, 1]
inputRange?
number[]
[0, 1]