Docs

Animate In

A simple and lightweight animation component that animates children elements into view with CSS transitions, customizable directions, timing, blur effects, and intersection observer support.

Welcome to the Future

Experience seamless animations that bring your content to life with elegant motion design

Backed by
Y Combinator
Combinator

Overview

The AnimateIn component provides a lightweight solution for animating content into view using CSS animations and React state management. It supports multiple animation directions (up, left, right, fade) with customizable delays, optional blur effects, and intersection observer functionality for scroll-triggered animations.

The component uses CSS transforms and filters for smooth, hardware-accelerated animations and provides both time-based (delay) and viewport-based (intersection observer) triggering options, making it perfect for landing pages, feature sections, and any content that needs elegant entrance animations.

Installation

pnpm dlx shadcn@latest add https://deltacomponents.dev/r/animate-in.json

Usage

Basic Usage with Delay

import AnimateIn from "@/registry/animations/animate-in"
export function Component() {
return (
<AnimateIn direction="up" delay={200}>
<h1 className="text-4xl font-bold">Hello World</h1>
<p className="text-muted-foreground">
This content fades in from bottom with a delay
</p>
</AnimateIn>
)
}

Intersection Observer

import AnimateIn from "@/registry/animations/animate-in"
export function Component() {
return (
<AnimateIn direction="up" useIntersectionObserver threshold={0.2}>
<h1 className="text-4xl font-bold">Hello World</h1>
<p className="text-muted-foreground">
This content animates when it comes into view
</p>
</AnimateIn>
)
}

Blur Animation

import AnimateIn from "@/registry/animations/animate-in"
export function Component() {
return (
<AnimateIn direction="up" delay={200} enableBlur={true} blurAmount={10}>
<h1 className="text-4xl font-bold">Blurred Entrance</h1>
<p className="text-muted-foreground">
This content animates with a blur-to-focus effect
</p>
</AnimateIn>
)
}

Fade-in Only

import AnimateIn from "@/registry/animations/animate-in"
export function Component() {
return (
<AnimateIn direction="fade" useIntersectionObserver threshold={0.1}>
<div className="p-4 border rounded-lg">
<h2 className="text-xl font-semibold">Fade In</h2>
<p className="text-muted-foreground">
This content fades in smoothly using only opacity
</p>
</div>
</AnimateIn>
)
}

API Reference

NameTypeDescriptionDefault
childrenReact.ReactNodeContent to animate-
direction"up" | "left" | "right" | "fade"Direction of the animation. Use "fade" for opacity-only animation"up"
delaynumberDelay before animation starts in milliseconds (ignored if using intersection observer)0
classNamestringAdditional CSS classes""
useIntersectionObserverbooleanEnable intersection observer for scroll-triggered animationsfalse
thresholdnumberIntersection observer threshold (0.0 to 1.0)0.1
triggerOncebooleanWhether animation should only trigger oncetrue
durationnumberAnimation duration in seconds0.6
enableBlurbooleanEnable blur animation effect that transitions from blurred to clearfalse
blurAmountnumberInitial blur amount in pixels (used when enableBlur is true)8

Examples

Directions

Showcase content animating in from different directions.

Animation Directions

Content can animate in from different directions

From Left

This content slides in smoothly from the left side of the screen

From Right

This content slides in smoothly from the right side of the screen

From Bottom

This content rises up from the bottom with a fade effect

Another From Bottom

This content also rises up from the bottom with a longer delay

Intersection Observer

Scroll-triggered animations using the Intersection Observer API. Elements animate into view as you scroll.

Scroll down to see elements animate in as they come into view using the Intersection Observer API.

First Section

This section animates in from the bottom when it becomes 20% visible in the viewport.

Second Section

This section slides in from the left when 30% of it is visible.

Third Section

This section slides in from the right with a lower threshold (10%).

Re-triggerable Section

This section re-animates every time you scroll it in and out of view (triggerOnce=false).

You made it to the end!

Each section used different threshold values and animation directions.

Staggered Animation

Animate multiple children with staggered timing for a cascading effect.

Staggered Animation

Each card animates in sequence with different delays

1

Feature One

The first feature in our staggered animation sequence

2

Feature Two

The second feature appears with a slight delay

3

Feature Three

The final feature completes the staggered sequence

Tag One
Tag Two
Tag Three
Tag Four
Tag Five

Fade Animation

Cards that fade in smoothly using only opacity changes, perfect for component showcases and grids.

Cards fade in smoothly using only opacity changes, without any directional movement.

Card One

This card fades in smoothly using only opacity animation without any transform effects.

Card Two

This card fades in smoothly using only opacity animation without any transform effects.

Card Three

This card fades in smoothly using only opacity animation without any transform effects.

Card Four

This card fades in smoothly using only opacity animation without any transform effects.

Card Five

This card fades in smoothly using only opacity animation without any transform effects.

Card Six

This card fades in smoothly using only opacity animation without any transform effects.

Simple Delays

Multiple elements with different delays for smooth sequential animations.

Simple Animation

This card fades in from the bottom with a smooth transition.

Delayed Animation

This card appears with a longer delay for a staggered effect.

Final Animation

The last card in the sequence with an even longer delay.