blaze-motion
← All components

Perspective Tilt In

Reveal

Reveal with a whisper of depth — rise + rotateX settle over a perspective.

Settles from a slight tilt, once.
A beat later — delay 0.15s.
trigger="mount" — plays immediately.

Installation

One command drops the source into your repo — editable, with the provider and motion pulled in automatically.

npx shadcn add https://motion.asmitsah.dev/r/perspective-tilt-in.json

Usage

Basic

Wrap any card or section — it settles opacity 0 → 1, y +28 → 0, and rotateX 8deg → 0 over an 800px perspective, the first time it is 30% in view.

import { PerspectiveTiltIn } from "@/components/motion/perspective-tilt-in";

<PerspectiveTiltIn className="rounded-sm border p-4">
  <h3>Settles from a slight tilt, once.</h3>
</PerspectiveTiltIn>

With delay

Offset sibling tilt-ins by a beat to sequence them without a full Stagger.

<PerspectiveTiltIn>
  <h3>Leads</h3>
</PerspectiveTiltIn>
<PerspectiveTiltIn delay={0.15}>
  <p>Follows, a beat later.</p>
</PerspectiveTiltIn>

Trigger on mount

Play immediately instead of waiting for scroll — for above-the-fold content.

<PerspectiveTiltIn trigger="mount">
  <Hero />
</PerspectiveTiltIn>

Props

PropTypeDefaultDescription
childrenReactNodeContent that tilts + rises into view.
classNamestringPassed straight through — PerspectiveTiltIn becomes your layout element.
styleCSSPropertiesInline style passthrough.
delaynumber0Seconds before this instance animates.
trigger"inView" | "mount""inView"Animate on scroll-into-view (once) or immediately on mount.