Atelier UI®

Read the docsGithub
Docs 0.7.0

Getting started

  • Browse Catalog
  • Installation
  • How to contribute
  • Code of conduct

Collage (01)

  • Fluid Scene

Components (27)

  • Clip Reveal
  • Stripe Wipe
  • Sweep Exit
  • Dither Flow
    pro
  • Glowing Fog
    pro
  • Halftone Glow
    pro
  • Fluid Distortion
  • Image Trail
  • Lens Image
  • Liquid Image
  • Magnetic Dot Grid
  • Pixel Image
  • Pixel Trail
  • Pixelated Text
  • Text Bounce
  • Text Fluid
  • Text Roll
  • Text Scramble
  • Curve Image
  • Elastic Stick
    pro
  • Infinite Gallery
  • Infinite Parallax
  • Infinite Zoom
  • Scattered Scroll
  • Text Split
  • WebGL Image
  • WebGL Text
Atelier UI 0.7.0 ©2026
Star on githubBuy me a coffeellms.txt
  1. Docs
  2. /
  3. Components
  4. /
  5. Stripe Wipe

Stripe Wipe

A staggered stripe wipe that reveals the page beneath an overlay.

Motion
Tailwind CSS
https://atelier-ui.com/stripe-wipe

Settings

stripes
8
segments
5
stagger
0.040
duration
1.2
reverse
See the documentation below for more options.

Install

npx atelier-ui add stripe-wipe
npm install motion
stripe-wipe.tsx
import { type Easing, motion, type Variants } from "motion/react"

export interface StripeWipeProps {
    stripes?: number
    segments?: number
    reverse?: boolean
    stagger?: number
    duration?: number
    ease?: Easing
    trigger?: boolean
    className?: string
}

export function StripeWipe({
    stripes = 8,
    segments = 5,
    reverse = false,
    stagger = 0.04,
    duration = 1.2,
    ease = [0.85, 0, 0.2, 1],
    trigger = true,
    className,
}: StripeWipeProps) {
    const orchestrate: Variants = {
        initial: {},
        animate: {
            transition: {
                staggerChildren: stagger,
                staggerDirection: reverse ? -1 : 1,
            },
        },
    }

    const segment: Variants = {
        initial: { x: 0 },
        animate: {
            x: "-101%",
            transition: { duration, ease },
        },
    }

    return (
        <motion.div
            className={`flex overflow-hidden ${className ?? ""}`}
            initial="initial"
            animate={trigger ? "animate" : "initial"}
            variants={orchestrate}
        >
            {Array.from({ length: stripes }, (_, stripeIndex) => (
                <motion.div
                    key={stripeIndex}
                    className="flex flex-1 flex-col overflow-hidden"
                    variants={orchestrate}
                >
                    {Array.from({ length: segments }, (_, segmentIndex) => (
                        <motion.div
                            key={segmentIndex}
                            className="flex-1 bg-[black]"
                            variants={segment}
                        />
                    ))}
                </motion.div>
            ))}
        </motion.div>
    )
}

API

NameTypeDefaultDescription
stripesnumber8Number of vertical columns the overlay is split into.
segmentsnumber5Number of segments each column is divided into.
reversebooleanfalseReverses the direction the staggered wipe travels.
staggernumber0.04Delay in seconds added per column and per segment.
durationnumber1.2Duration in seconds of each segment's wipe.
easeEasing[0.85, 0, 0.2, 1]Motion easing: bezier array, named string, or easing function.
triggerbooleantrueStarts the wipe when set to true.
classNamestring—Extra classes applied to the wrapper (e.g. sizing).

Credits

Motion
React animation library.

  • Install
  • API
  • Credits
Star on githubBuy me a coffeellms.txt