blaze-motion
← All components

Scale In

Scale

Soft 0.95 → 1 grow + fade on a straight ease tween, never a spring.

0.95 → 1
default
a beat later
delay={0.15}
plays on mount
trigger="mount"

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/scale-in.json

Usage

Basic

Wrap any element — it settles 0.95 → 1 scale + fades in the first time it is 30% in view.

import { ScaleIn } from "@/components/motion/scale-in";

<ScaleIn className="rounded-sm border border-border bg-panel-2 p-4">
  <Card />
</ScaleIn>

With delay

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

<ScaleIn>
  <Card>Leads</Card>
</ScaleIn>
<ScaleIn delay={0.15}>
  <Card>Follows, a beat later</Card>
</ScaleIn>

Trigger on mount

Play immediately instead of waiting for scroll — for above-the-fold content, e.g. a modal or popover.

<ScaleIn trigger="mount">
  <Dialog.Content />
</ScaleIn>

Props

PropTypeDefaultDescription
childrenReactNodeContent that grows + fades in.
classNamestringPassed straight through — ScaleIn 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.