remotion

v2026.09.24

Best practices for Remotion - Video creation in React. Use when creating programmatic videos with Remotion, adding animations or transitions, working with audio/captions, rendering compositions, embedding 3D content, building charts, or using Mapbox maps in video.

GitHub
Install command
npx skhub add oakoss/remotion
Markdown
SKILL.md

Remotion

Overview

Remotion enables programmatic video creation using React components. Compositions define renderable videos with explicit width, height, fps, and duration. All animations must be driven by useCurrentFrame() -- CSS animations and Tailwind animation classes are forbidden as they cause rendering artifacts. Use this skill for Remotion compositions, animations, audio, captions, transitions, media handling, or rendering. Not intended for general React UI development.

Quick Reference

PatternAPI / ApproachKey Points
Basic animationuseCurrentFrame() + interpolate()Always clamp with extrapolateRight: 'clamp'
Spring animationspring({ frame, fps }){ damping: 200 } for smooth, no-bounce motion
Composition<Composition id, component, durationInFrames, fps, width, height>Always set explicit dimensions
Dynamic metadatacalculateMetadata on <Composition>Set duration, dimensions, props before render
Sequencing<Sequence from, durationInFrames>useCurrentFrame() returns local frame (starts at 0)
Series<Series> with <Series.Sequence>Sequential playback; negative offset for overlaps
Transitions<TransitionSeries> with fade(), slide(), wipe()Total duration = sum of scenes minus transition durations
Audio/Video<Audio> / <Video> from @remotion/mediaUse staticFile() for local assets
CaptionscreateTikTokStyleCaptions()Token-level word highlighting via page.tokens
Images<Img> from remotionNever use native <img> or Next.js <Image>
GIFs<AnimatedImage> from remotionSynced with timeline; playbackRate for speed control
Fonts@remotion/google-fonts or @remotion/fontsCall loadFont() at top level; blocks rendering until ready
3D content<ThreeCanvas> from @remotion/threeMust set width/height; useFrame() from R3F is forbidden
Text measurementmeasureText(), fitText() from @remotion/layout-utilsLoad fonts first; match properties for measurement and render
ParametersZod schema on <Composition schema>Top-level must be z.object(); exact Zod version required (check Remotion docs)
Transparent video--pixel-format=yuva420p --codec=vp9WebM for browser; ProRes 4444 for editing software
MapsMapbox with useCurrentFrame()Set interactive: false, fadeDuration: 0; render with --gl=angle --concurrency=1

Common Mistakes

MistakeCorrect Pattern
Using CSS animations or setTimeoutUse interpolate() and useCurrentFrame() for timeline-synced animations
Using native <img>, <video>, <audio> tagsUse <Img>, <Video>, <Audio> from Remotion for proper preloading
Hardcoding video durationUse calculateMetadata to dynamically set duration from content
Not specifying width/height on compositionsAlways define explicit dimensions to avoid rendering issues
Using useFrame() from React Three FiberUse useCurrentFrame() from Remotion inside <ThreeCanvas>
Forgetting premountFor on sequencesAlways premount sequences to preload components before playback
Not clamping interpolate() outputSet extrapolateRight: 'clamp' to prevent values exceeding target range
Placing <Sequence> in <ThreeCanvas> without layout="none"Set layout="none" on any <Sequence> inside <ThreeCanvas>

Delegation

  • Discover available Remotion components and their props: Use Explore agent to search the codebase for composition definitions and asset usage
  • Build a multi-scene video with transitions and audio: Use Task agent to compose sequences, transitions, and audio tracks step by step
  • Plan a video generation pipeline with dynamic data: Use Plan agent to design the architecture for parametrized compositions and rendering workflow

References

  • Animations and Timing -- Interpolation, springs, easing, and frame-driven animation patterns
  • Compositions and Sequencing -- Defining compositions, stills, folders, sequences, series, and trimming
  • Media and Assets -- Audio, video, images, GIFs, fonts, and static file handling
  • Captions and Text -- Transcription, SRT import, TikTok-style captions, and text animations
  • Transitions -- Scene transitions with fade, slide, wipe, flip, and duration calculation
  • Advanced Features -- 3D content, charts, maps, parameters, transparent video, and DOM measurement
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/remotion

Default branch

main

Latest commit

85e3a39

Tree SHA

a4c9e7b