This component no longer exists. It was in remotionui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-11 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
transition-clock-wipe
remotionui/transition-clock-wipeRemovedComponent
Clock sweep that reads the composition size itself
Live preview
live · rendered by the registry
Rendered by remotionui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://remotionui.com/r/transition-clock-wipe.jsonSource
1import type { TransitionPresentation } from "@remotion/transitions";2import { clockWipe } from "@remotion/transitions/clock-wipe";3import { useVideoConfig } from "remotion";4import {5 resolveTransitionTiming,6 type TransitionVariant,7} from "@/remotion/lib/transition-timing";89export type ClockWipeProps = {10 /** Defaults to the composition width. */11 width?: number;12 /** Defaults to the composition height. */13 height?: number;14};1516/**17 * `clockWipe()` needs the frame size to build its sweep, which forced every18 * caller to reach for `useVideoConfig()` first and pass it down — including in19 * the config helpers, where hooks are not available. Resolving it inside the20 * presentation instead makes the size optional everywhere.21 */22const AutoSizedClockWipe: React.FC<23 React.ComponentProps<24 NonNullable<TransitionPresentation<ClockWipeProps>["component"]>25 >26> = ({ passedProps, ...rest }) => {27 const config = useVideoConfig();28 const presentation = clockWipe({29 width: passedProps.width ?? config.width,30 height: passedProps.height ?? config.height,31 });32 const Presentation = presentation.component;3334 return <Presentation {...rest} passedProps={presentation.props} />;35};3637export function autoClockWipe(38 props: ClockWipeProps = {},39): TransitionPresentation<ClockWipeProps> {40 return { component: AutoSizedClockWipe, props };41}4243export type TransitionClockWipeConfig = {44 durationInFrames?: number;45 width?: number;46 height?: number;47 variant?: TransitionVariant;48};4950/** Clock wipe transition config for use with TransitionSeries.Transition */51export function transitionClockWipe({52 durationInFrames = 26,53 width,54 height,55 variant = "editorial",56}: TransitionClockWipeConfig = {}) {57 return {58 presentation: autoClockWipe({ width, height }),59 timing: resolveTransitionTiming({ durationInFrames, variant }),60 };61}6263export function getTransitionClockWipeDuration(64 config: TransitionClockWipeConfig = {},65 fps: number,66): number {67 return transitionClockWipe(config).timing.getDurationInFrames({ fps });68}
