guyronnen/openmontage

remotion

Toolkit-specific Remotion patterns — custom transitions, shared components, and project conventions.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Remotion — Toolkit Extensions

Core Remotion knowledge lives in .claude/skills/remotion-official/ (synced from the official remotion-dev/skills repo). This file covers toolkit-specific patterns only.

Shared Components

Reusable video components in lib/components/. Import in templates via:

tsx
import { AnimatedBackground, SlideTransition, Label } from '../../../../lib/components';
ComponentPurpose
AnimatedBackgroundFloating shapes background (variants: subtle, tech, warm, dark)
SlideTransitionScene transitions (fade, zoom, slide-up, blur-fade)
LabelFloating label badge with optional JIRA reference
VignetteCinematic edge darkening overlay
LogoWatermarkCorner logo branding
SplitScreenSide-by-side video comparison
NarratorPiPPicture-in-picture presenter overlay
Envelope3D envelope with opening flap animation
PointingHandAnimated hand emoji with slide-in and pulse
MazeDecorationAnimated isometric grid decoration for corners

Custom Transitions

The toolkit includes a transitions library at lib/transitions/ for scene-to-scene effects beyond the official @remotion/transitions package.

Using TransitionSeries

tsx
import { TransitionSeries, linearTiming } from '@remotion/transitions';
// Import custom transitions from lib (adjust path based on your project location)
import { glitch, lightLeak, clockWipe, checkerboard } from '../../../../lib/transitions';
// Or import from @remotion/transitions for official ones
import { slide, fade } from '@remotion/transitions/slide';

<TransitionSeries>
  <TransitionSeries.Sequence durationInFrames={90}>
    <TitleSlide />
  </TransitionSeries.Sequence>
  <TransitionSeries.Transition
    presentation={glitch({ intensity: 0.8 })}
    timing={linearTiming({ durationInFrames: 30 })}
  />
  <TransitionSeries.Sequence durationInFrames={120}>
    <ContentSlide />
  </TransitionSeries.Sequence>
</TransitionSeries>

Available Custom Transitions

TransitionOptionsBest For
glitch()intensity, slices, rgbShiftTech demos, edgy reveals, cyberpunk
rgbSplit()direction, displacementModern tech, energetic transitions
zoomBlur()direction, blurAmountCTAs, high-energy moments, impact
lightLeak()temperature, directionCelebrations, film aesthetic, warm moments
clockWipe()startAngle, direction, segmentsTime-related content, playful reveals
pixelate()maxBlockSize, gridSize, scanlines, glitchArtifacts, randomnessRetro/gaming, digital transformations
checkerboard()gridSize, pattern, stagger, squareAnimationPlayful reveals, structured transitions

Checkerboard patterns: sequential, random, diagonal, alternating, spiral, rows, columns, center-out, corners-in

Transition Examples

tsx
// Tech/cyberpunk feel
glitch({ intensity: 0.8, slices: 8, rgbShift: true })

// Warm celebration
lightLeak({ temperature: 'warm', direction: 'right' })

// High energy zoom
zoomBlur({ direction: 'in', blurAmount: 20 })

// Chromatic aberration
rgbSplit({ direction: 'diagonal', displacement: 30 })

// Clock sweep reveal
clockWipe({ direction: 'clockwise', startAngle: 0 })

// Retro pixelation
pixelate({ maxBlockSize: 50, glitchArtifacts: true })

// Checkerboard patterns
checkerboard({ pattern: 'diagonal', gridSize: 8 })
checkerboard({ pattern: 'spiral', gridSize: 10 })
checkerboard({ pattern: 'center-out', squareAnimation: 'scale' })

Transition Duration Guidelines

TypeFramesNotes
Quick cut15-20Fast, punchy
Standard30-45Most common
Dramatic50-60Slow reveals
Glitch effects20-30Should feel sudden
Light leak45-60Needs time to sweep

Preview Transitions

Run the showcase gallery to see all transitions:

bash
cd showcase/transitions && npm run studio

Toolkit Best Practices

  1. Frame-based animations only — Avoid CSS transitions/animations; they cause flickering during render
  2. Use fps from useVideoConfig() — Make animations frame-rate independent
  3. Clamp interpolations — Use extrapolateRight: 'clamp' to prevent runaway values
  4. Use OffthreadVideo — Better performance than <Video> for complex compositions
  5. delayRender for async — Always block rendering until data is ready
  6. staticFile for assets — Reference files from public/ folder correctly
  7. All projects use 30fps — Timing: frames = seconds × 30
  8. playbackRate must be constant — For variable/extreme speeds, pre-process with FFmpeg

Project Timing Conventions

Scene TypeDurationNotes
Title3-5s (90-150f)Logo + headline
Overview10-20s3-5 bullet points
Demo10-30sAdjust playbackRate to fit
Stats8-12s3-4 stat cards
Credits5-10sQuick fade

Pacing: ~150 words/minute for voiceover. Voiceover drives timing.

Advanced API

For detailed API documentation on all hooks, components, renderer, Lambda, and Player APIs, see reference.md.

License Note

Remotion has a special license. Companies may need to obtain a license for commercial use. Check https://remotion.dev/license


Feedback & Contributions

If this skill is missing information or could be improved:

  • Missing a pattern? Describe what you needed
  • Found an error? Let me know what's wrong
  • Want to contribute? I can help you:
  1. Update this skill with improvements
  2. Create a PR to github.com/digitalsamba/claude-code-video-toolkit

Just say "improve this skill" and I'll guide you through updating .claude/skills/remotion/SKILL.md.

from this repository

More skills

All skills
guyronnen
Community

acestep

AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction for video production. Use when generating music, soundtracks, jingles, or working with audio stems. Triggers include background music, soundtrack, jingle, music generation, stem extraction, cover, style transfer, or musical composition tasks.

installs
2
GitHub stars
2
Updated
Apr 12
guyronnen
Community

agents

Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience.

installs
2
GitHub stars
2
Updated
Apr 12
guyronnen
Community

ai-video-gen

Generate AI videos from text prompts using multiple provider gateways. Use when: (1) Generating videos from text descriptions, (2) Creating AI-generated video clips for content production, (3) Image-to-video generation with a reference image, (4) Choosing between video generation providers (VEO, Kling, Sora, Runway, Seedance, MiniMax). Supports two gateways: HeyGen API and fal.ai API.

installs
2
GitHub stars
2
Updated
Apr 12
guyronnen
Community

avatar-video

Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API. Use when: (1) Choosing a specific avatar and voice for a video, (2) Writing exact scripts for an avatar to speak, (3) Building multi-scene videos with different backgrounds per scene, (4) Creating transparent WebM videos for compositing, (5) Using talking photos as video presenters, (6) Integrating HeyGen avatars with Remotion, (7) Batch video generation with exact specs, (8) Brand-consistent production videos with precise control.

installs
2
GitHub stars
2
Updated
Apr 12