remotion

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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "remotion" with this command: npx skills add oakoss/agent-skills/oakoss-agent-skills-remotion

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

tanstack-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript-patterns

No summary provided by upstream source.

Repository SourceNeeds Review