driftkit
ComponentsScroll Reveal

Scroll Reveal

Viewport-triggered entrance with multiple variants: fade-up, slide-left/right, scale, and blur. Uses IntersectionObserver with spring physics.

Animation

Card 1

This card reveals with staggered animation as you scroll.

Card 2

This card reveals with staggered animation as you scroll.

Card 3

This card reveals with staggered animation as you scroll.

Card 4

This card reveals with staggered animation as you scroll.

Card 5

This card reveals with staggered animation as you scroll.

Card 6

This card reveals with staggered animation as you scroll.

Card 7

This card reveals with staggered animation as you scroll.

Card 8

This card reveals with staggered animation as you scroll.

Card 9

This card reveals with staggered animation as you scroll.

Card 10

This card reveals with staggered animation as you scroll.

Installation

Copy and paste

Copy the component source code and paste it into your project.

import { ScrollReveal } from "driftkit";

Props

NameTypeRequiredDescription
childrenReactNodeYesContent to reveal.
variant"fade-up" | "fade-down" | "slide-left" | "slide-right" | "scale" | "blur"NoAnimation variant.
delaynumberNoDelay in seconds.
oncebooleanNoOnly animate once.
stiffnessnumberNoSpring stiffness.
dampingnumberNoSpring damping.
🎮

Playground

Tune spring physics for this component

Live Preview

Scroll Reveal Component

Spring Physics

300
30
1

Generated Code

const springConfig = {
  "type": "spring",
  "stiffness": 300,
  "damping": 30,
  "mass": 1
};

// Basic hover animation
<motion.div
  whileHover={{ scale: 1.05 }}
  whileTap={{ scale: 0.95 }}
  transition={springConfig}
>
  <ScrollReveal />
</motion.div>

// Advanced with custom animations
<motion.div
  animate={{ 
    scale: [1, 1.02, 1],
    y: [0, -4, 0]
  }}
  transition={{
    ...springConfig,
    repeat: Infinity,
    repeatDelay: 2
  }}
>
  <ScrollReveal />
</motion.div>
Stiffness: Controls animation speed. Higher values create snappier animations.
Damping: Controls resistance to motion. Lower values create more bounce and overshoot.
Mass: Controls the perceived weight. Higher values make animations slower with more momentum.

Source Code

View the source code on GitHub to see the full implementation.

View on GitHub