# Remotion Rule: Sequencing > Remotion skill rule: Sequencing patterns for Remotion - delay, trim, limit duration of items. Part of the official Remotion Agent Skill for programmatic video in React. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash npx skills add remotion-dev/skills ``` This rule activates automatically when working with sequencing in a Remotion project. --- ## Intro Sequencing patterns for Remotion - delay, trim, limit duration of items. Part of the [Remotion AI Skill](https://tokrepo.com/en/workflows/57997ead-c8fa-409c-916f-28bbc0adc8d9) — the official Agent Skill for programmatic video creation in React. **Best for**: Developers using Remotion for sequencing **Works with**: Claude Code, OpenAI Codex, Cursor --- ## Rule Content Use `` to delay when an element appears in the timeline. ```tsx import { Sequence } from "remotion"; const {fps} = useVideoConfig(); </Sequence> <Sequence from={2 * fps} durationInFrames={2 * fps} premountFor={1 * fps}> <Subtitle /> </Sequence> ``` This will by default wrap the component in an absolute fill element. If the items should not be wrapped, use the `layout` prop: ```tsx <Sequence layout="none"> <Title /> </Sequence> ``` ## Premounting This loads the component in the timeline before it is actually played. Always premount any `<Sequence>`! ```tsx <Sequence premountFor={1 * fps}> <Title /> </Sequence> ``` ## Series Use `<Series>` when elements should play one after another without overlap. ```tsx import { Series } from "remotion"; <Series> <Series.Sequence durationInFrames={45}> <Intro /> </Series.Sequence> <Series.Sequence durationInFrames={60}> <MainContent /> </Series.Sequence> <Series.Sequence durationInFrames={30}> <Outro /> </Series.Sequence> </Series>; ``` Same as with `<Sequence>`, the items will be wrapped in an absolute fill element by default when using `<Series.Sequence>`, unless the `layout` prop is set to `none`. ### Series with overlaps Use negative offset for overlapping sequences: ```tsx <Series> <Series.Sequence durationInFrames={60}> <SceneA /> </Series.Sequence> <Series.Sequence offset={-15} durationInFrames={60}> {/* Starts 15 frames before SceneA ends */} <SceneB /> </Series.Sequence> </Series> ``` ## Frame References Inside Sequences Inside a Sequence, `useCurrentFrame()` returns the local frame (starting from 0): ```tsx <Sequence from={60} durationInFrames={30}> <MyComponent /> {/* Inside MyComponent, useCurrentFrame() returns 0-29, not 60-89 */} </Sequence> ``` ## Nested Sequences Sequences can be nested for complex timing: ```tsx <Sequence from={0} durationInFrames={120}> <Background /> <Sequence from={15} durationInFrames={90} layout="none"> <Title /> </Sequence> <Sequence from={45} durationInFrames={60} layout="none"> <Subtitle /> </Sequence> </Sequence> ``` ## Nesting compositions within another To add a composition within another composition, you can use the `<Sequence>` component with a `width` and `height` prop to specify the size of the composition. ```tsx <AbsoluteFill> <Sequence width={COMPOSITION_WIDTH} height={COMPOSITION_HEIGHT}> <CompositionComponent /> </Sequence> </AbsoluteFill> ``` --- ## Source & Thanks > Created by [Remotion](https://github.com/remotion-dev). Licensed under MIT. > [remotion-dev/skills](https://github.com/remotion-dev/skills) — Rule: `sequencing` Part of the [Remotion AI Skill](https://tokrepo.com/en/workflows/57997ead-c8fa-409c-916f-28bbc0adc8d9) collection on TokRepo. --- Source: https://tokrepo.com/en/workflows/fda3b2ce-7591-4a64-aed6-4e6d8d93d4d0 Author: Skill Factory