# Strobe Montage
URL: https://remocn.dev/docs/transitions/strobe-montage

A fast strobe of photo frames flickers between two scenes and lands on a prompt box

- Install: `npx shadcn@latest add @remocn/strobe-montage`
- Vibe: playful
- Natural length: 28f @ 30fps

## Installation

```bash
npx shadcn@latest add @remocn/strobe-montage
```

## Usage

```tsx
// src/Root.tsx
import { Composition } from "remotion";
import { StrobeMontage } from "@/components/remocn/strobe-montage";

const StrobeMontageScene = () => (
  <StrobeMontage
    lead="Six weekends"
    accentWord="of making."
    prompt="A 30-second film for our 2.0 release"
    images={["/shots/a.jpg", "/shots/b.jpg", "/shots/c.jpg"]}
  />
);

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

Scene A is an opener with a lead phrase and an accent word. A strobe of images flashes frame by frame, growing in size and punching in, then lands on scene B, a prompt box with a heading, a file chip and a typed request. Pass `lead`, `accentWord`, `heading` and `prompt` for the copy, and your own `images` through the montage options (the defaults exist only in the Remocn repo); it ships light and dark.

The ground is a live gradients.sh shader (`GshGround`), installed with the component as `@remocn/gsh`. Pick another look with the `ground` preset prop.

## Props

| Prop | Type | Default | Description |
|---|---|---|---|
| `theme` | `"dark" \| "light"` | `"dark"` | Light or dark palette for both scenes |
| `accent` | `string` | — | Accent color; defaults to the theme accent |
| `lead` | `string` | `"Six weekends"` | Lead phrase of the scene A opener |
| `accentWord` | `string` | `"of making."` | Accent phrase that follows the lead |
| `heading` | `[string, string]` | `["What will you", "launch next"]` | Two-part heading above the scene B prompt |
| `accentMark` | `string` | `"?"` | Punctuation mark set in the accent color after the heading |
| `prompt` | `string` | `"A 30-second film for our 2.0 release"` | Request typed into the scene B prompt box |
| `file` | `string` | `"launch-notes.md"` | File name shown on the attachment chip |
| `ground` | `GshPresetId` | — | Preset id for the scene A gradients.sh shader ground |
| `groundParams` | `Partial<GradientParams>` | — | Overrides for the scene A shader parameters |
| `groundB` | `GshPresetId` | — | Preset id for the scene B gradients.sh shader ground |
| `groundBParams` | `Partial<GradientParams>` | — | Overrides for the scene B shader parameters |
| `transitionFrames` | `number` | `STROBE_MONTAGE_TIMING.transition` | Transition length in frames |
| `montage` | `StrobeMontageProps` | — | Strobe options: images, framesPerHit, growFrom, growHits, punch, focus |

## Use when
- A high-energy cut from an opening claim to the product prompt, with a burst of imagery in between.
- A launch video that needs a montage beat without building a separate image sequence scene.
- Showing the range of what the product makes, flashed in under a second, before the call to act.

## Don't use when
- The cut should be quiet and slow — use `hairline-open`.
- You have no images to flash and want a plain light-based swap — use `flash-sweep`.
- You need accessibility-safe motion without flicker — use `zoom-blur`.