RemotionUI

Circle Reveal

A circular mask that opens from any point in the frame onto the next scene.

PrimitiveTransitions

transition-circle-reveal30fps · 960×540
Install
$ npx remotion-ui@latest add transition-circle-reveal

The incoming scene is revealed through a circle growing from originX/originY, while the outgoing one holds whole underneath. Only the arriving scene is masked — punching the hole in both would open it onto the page background instead of onto the next scene.

The radius is sized against the corner furthest from the origin, so an off-centre reveal still clears the frame; half the diagonal would leave a wedge unrevealed for any origin that is not dead centre. edgeSoftness feathers the edge as a share of that radius, and the mask is grown past full coverage by the feather width so no translucent ring survives into the last frames.

underScale gives the outgoing scene a little push-back under the hole, which sells the circle as depth rather than as a sticker. Leave it at 1 for a flat graphic reveal.

Exports transitionCircleReveal() and getTransitionCircleRevealDuration() for use with TransitionSeries.Transition.

Requires @remotion/transitions. Run npx remotion add @remotion/transitions if not already installed.

Agent notes

Install first, then import the copied source component locally. AI guide →

Import
@/remotion/primitives/transition-circle-reveal
  • Use when: scene transitions and composition pacing.
  • Customize: durationInFrames, originX, originY, edgeSoftness, plus copied source for timing, layout, colors, and typography.
  • Rule: do not import this component from the remotion-ui npm package; it is copied into your project.

Usage

Example
import { transitionCircleReveal } from "@/remotion/primitives/transition-circle-reveal"; <TransitionSeries.Transition {...transitionCircleReveal({ originX: 0.3, originY: 0.4 })} />

API Reference

PropTypeDescription
durationInFramesnumberTransition overlap length.
originXnumberCentre of the circle, 0→1 of the frame width.
originYnumberCentre of the circle, 0→1 of the frame height.
edgeSoftnessnumberFeathered edge as a share of the final radius. 0 cuts hard.
underScalenumberScale the outgoing scene drifts to under the hole. 1 holds it still.
variant"linear" | "spring" | "editorial"Timing curve.

Related