# Flash Sweep
URL: https://remocn.dev/docs/transitions/flash-sweep

A tilted band of light sweeps across the frame and swaps one shot for the next

- Install: `npx shadcn@latest add @remocn/flash-sweep`
- Vibe: premium
- Natural length: 140f @ 30fps

## Installation

```bash
npx shadcn@latest add @remocn/flash-sweep
```

## Usage

```tsx
// src/Root.tsx
import { Composition } from "remotion";
import { FlashSweep } from "@/components/remocn/flash-sweep";

const FlashSweepScene = () => (
  <FlashSweep
    images={["/shots/one.png", "/shots/two.png", "/shots/three.png"]}
    direction="right"
    hold={30}
    accent="#3B5BFD"
  />
);

export const RemotionRoot = () => (
  <Composition
    id="FlashSweep"
    component={FlashSweepScene}
    durationInFrames={156}
    fps={30}
    width={1280}
    height={720}
  />
);
```

A tilted band of light, or a shadow in the `dark` variant, crosses the frame, blows out at the middle and swaps the shot, which then settles. Pass `scenes` for a chain where every neighboring pair gets one sweep, or `from` and `to` for a single swap, or `images` for screenshots. With the default four shots it ends at frame 140; each extra shot adds `hold` plus `duration` frames, and a single pair ends at frame 56.

## Props

| Prop | Type | Default | Description |
|---|---|---|---|
| `from` | `React.ReactNode` | — | Outgoing shot |
| `to` | `React.ReactNode` | — | Incoming shot |
| `scenes` | `React.ReactNode[]` | — | A chain of shots; each neighboring pair gets one sweep |
| `images` | `string[]` | — | Screenshots, used when no React shots are passed |
| `variant` | `"light" \| "dark"` | — | Light burns through to white; dark passes a shadow |
| `angle` | `number` | `22` | Tilt of the band from vertical, in degrees |
| `direction` | `"right" \| "left"` | `"right"` | Which way the band travels |
| `duration` | `number` | `12` | Frames the band takes to cross the frame; 8 to 14 reads best |
| `hold` | `number` | `30` | Frames each shot holds before the next sweep |
| `tint` | `string` | — | Color of the light; defaults to warm white |
| `accent` | `string` | `"#3B5BFD"` | Accent color used by the built-in shots |
| `speed` | `number` | `1` | Playback multiplier for the whole timeline |
| `theme` | `"dark" \| "light"` | `"dark"` | Light or dark built-in shots; sets the default variant |

## Use when
- Cutting through a chain of three or four product shots with a quick, repeated light pass.
- A feature tour where each screen should flash into the next without a heavy effect.
- A swap between two shots that should feel like a camera flash or a lens glint.

## Don't use when
- You want colored bars instead of a single light band — use `color-bars`.
- The light should linger as a warm, analog glow — use `light-leak`.
- You want the cut to be a hard sideways camera move — use `whip-pan`.