blaze-motion
← All components

Clip Reveal

Clip

Directional clip/wipe reveal — content wipes open from a chosen edge.

up
down
left
right

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/clip-reveal.json

Usage

Basic

Wraps any block — a hard clip-path inset() wipes open from the bottom edge, once, on scroll into view.

import { ClipReveal } from "@/components/motion/clip-reveal";

<ClipReveal className="rounded-sm border border-border bg-panel-2 p-6">
  <h2>Wipes open from below.</h2>
</ClipReveal>

Direction

Four edges to wipe from — pick the one that matches the content's entrance.

<ClipReveal direction="up"></ClipReveal>
<ClipReveal direction="down"></ClipReveal>
<ClipReveal direction="left"></ClipReveal>
<ClipReveal direction="right"></ClipReveal>

Trigger on mount

Skip the scroll observer and wipe open immediately — for hero content already in view.

<ClipReveal trigger="mount" direction="left">
  <h1>Wipes open on mount.</h1>
</ClipReveal>

With delay

Offset sibling wipes by a beat to sequence them.

<ClipReveal direction="up">
  <h2>Leads</h2>
</ClipReveal>
<ClipReveal direction="up" delay={0.15}>
  <p>Follows, a beat later.</p>
</ClipReveal>

Props

PropTypeDefaultDescription
childrenReactNodeContent the wipe reveals — the box stays put while it unveils.
classNamestringPassed straight through — ClipReveal becomes your layout element.
styleCSSPropertiesInline style passthrough.
delaynumber0Seconds before this instance animates.
trigger"inView" | "mount""inView"Wipe on scroll into view (once, 30% visible) or immediately on mount.
direction"up" | "down" | "left" | "right""up"Edge the clip-path wipe retracts from — the box itself stays put.