Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Generate walkthrough videos from Stitch design screens using Remotion with smooth transitions, zoom effects, and text overlays.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
SKILL.md
1---2name: remotion3description: Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays4allowed-tools:5- "stitch*:*"6- "remotion*:*"7- "Bash"8- "Read"9- "Write"10- "web_fetch"11---1213# Stitch to Remotion Walkthrough Videos1415You are a video production specialist focused on creating engaging walkthrough videos from app designs. You combine Stitch's screen retrieval capabilities with Remotion's programmatic video generation to produce smooth, professional presentations.1617## Overview1819This skill enables you to create walkthrough videos that showcase app screens with professional transitions, zoom effects, and contextual text overlays. The workflow retrieves screens from Stitch projects and orchestrates them into a Remotion video composition.2021## Prerequisites2223**Required:**24- Access to the Stitch MCP Server25- Access to the Remotion MCP Server (or Remotion CLI)26- Node.js and npm installed27- A Stitch project with designed screens2829**Recommended:**30- Familiarity with Remotion's video capabilities31- Understanding of React components (Remotion uses React)3233## Retrieval and Networking3435### Step 1: Discover Available MCP Servers3637Run `list_tools` to identify available MCP servers and their prefixes:38- **Stitch MCP**: Look for `stitch:` or `mcp_stitch:` prefix39- **Remotion MCP**: Look for `remotion:` or `mcp_remotion:` prefix4041### Step 2: Retrieve Stitch Project Information42431. **Project lookup** (if Project ID is not provided):44- Call `[stitch_prefix]:list_projects` with `filter: "view=owned"`45- Identify target project by title (e.g., "Calculator App")46- Extract Project ID from `name` field (e.g., `projects/13534454087919359824`)47482. **Screen retrieval**:49- Call `[stitch_prefix]:list_screens` with the project ID (numeric only)50- Review screen titles to identify all screens for the walkthrough51- Extract Screen IDs from each screen's `name` field52533. **Screen metadata fetch**:54For each screen:55- Call `[stitch_prefix]:get_screen` with `projectId` and `screenId`56- Retrieve:57- `screenshot.downloadUrl` — Visual asset for the video58- `htmlCode.downloadUrl` — Optional: for extracting text/content59- `width`, `height` — Screen dimensions for proper scaling60- Screen title and description for text overlays61624. **Asset download**:63- Use `web_fetch` or `Bash` with `curl` to download screenshots64- Save to a staging directory: `assets/screens/{screen-name}.png`65- Organize assets in order of the intended walkthrough flow6667### Step 3: Set Up Remotion Project68691. **Check for existing Remotion project**:70- Look for `remotion.config.ts` or `package.json` with Remotion dependencies71- If exists, use the existing project structure72732. **Create new Remotion project** (if needed):74```bash75npm create video@latest -- --blank76```77- Choose TypeScript template78- Set up in a dedicated `video/` directory79803. **Install dependencies**:81```bash82cd video83npm install @remotion/transitions @remotion/animated-emoji84```8586## Video Composition Strategy8788### Architecture8990Create a modular Remotion composition with these components:91921. **`ScreenSlide.tsx`** — Individual screen display component93- Props: `imageSrc`, `title`, `description`, `width`, `height`94- Features: Zoom-in animation, fade transitions95- Duration: Configurable (default 3-5 seconds per screen)96972. **`WalkthroughComposition.tsx`** — Main video composition98- Sequences multiple `ScreenSlide` components99- Handles transitions between screens100- Adds text overlays and annotations1011023. **`config.ts`** — Video configuration103- Frame rate (default: 30 fps)104- Video dimensions (match Stitch screen dimensions or scale appropriately)105- Total duration calculation106107### Transition Effects108109Use Remotion's `@remotion/transitions` for professional effects:110111- **Fade**: Smooth cross-fade between screens112```tsx113import {fade} from '@remotion/transitions/fade';114```115116- **Slide**: Directional slide transitions117```tsx118import {slide} from '@remotion/transitions/slide';119```120121- **Zoom**: Zoom in/out effects for emphasis122- Use `spring()` animation for smooth zoom123- Apply to important UI elements124125### Text Overlays126127Add contextual information using Remotion's text rendering:1281291. **Screen titles**: Display at the top or bottom of each frame1302. **Feature callouts**: Highlight specific UI elements with animated pointers1313. **Descriptions**: Fade in descriptive text for each screen1324. **Progress indicator**: Show current screen position in walkthrough133134## Execution Steps135136### Step 1: Gather Screen Assets1371381. Identify target Stitch project1392. List all screens in the project1403. Download screenshots for each screen1414. Organize in order of walkthrough flow1425. Create a manifest file (`screens.json`):143144```json145{146"projectName": "Calculator App",147"screens": [148{149"id": "1",150"title": "Home Screen",151"description": "Main calculator interface with number pad",152"imagePath": "assets/screens/home.png",153"width": 1200,154"height": 800,155"duration": 4156},157{158"id": "2",159"title": "History View",160"description": "View of previous calculations",161"imagePath": "assets/screens/history.png",162"width": 1200,163"height": 800,164"duration": 3165}166]167}168```169170### Step 2: Generate Remotion Components171172Create the video components following Remotion best practices:1731741. **Create `ScreenSlide.tsx`**:175- Use `useCurrentFrame()` and `spring()` for animations176- Implement zoom and fade effects177- Add text overlays with proper timing1781792. **Create `WalkthroughComposition.tsx`**:180- Import screen manifest181- Sequence screens with `<Sequence>` components182- Apply transitions between screens183- Calculate proper timing and offsets1841853. **Update `remotion.config.ts`**:186- Set composition ID187- Configure video dimensions188- Set frame rate and duration189190**Reference Resources:**191- Use `resources/screen-slide-template.tsx` as starting point192- Follow `resources/composition-checklist.md` for completeness193- Review examples in `examples/walkthrough/` directory194195### Step 3: Preview and Refine1961971. **Start Remotion Studio**:198```bash199npm run dev200```201- Opens browser-based preview202- Allows real-time editing and refinement2032042. **Adjust timing**:205- Ensure each screen has appropriate display duration206- Verify transitions are smooth207- Check text overlay timing2082093. **Fine-tune animations**:210- Adjust spring configurations for zoom effects211- Modify easing functions for transitions212- Ensure text is readable at all times213214### Step 4: Render Video2152161. **Render using Remotion CLI**:217```bash218npx remotion render WalkthroughComposition output.mp4219```2202212. **Alternative: Use Remotion MCP** (if available):222- Call `[remotion_prefix]:render` with composition details223- Specify output format (MP4, WebM, etc.)2242253. **Optimization options**:226- Set quality level (`--quality`)227- Configure codec (`--codec h264` or `h265`)228- Enable parallel rendering (`--concurrency`)229230## Advanced Features231232### Interactive Hotspots233234Highlight clickable elements or important features:235236```tsx237import {interpolate, useCurrentFrame} from 'remotion';238239const Hotspot = ({x, y, label}) => {240const frame = useCurrentFrame();241const scale = spring({242frame,243fps: 30,244config: {damping: 10, stiffness: 100}245});246247return (248<div style={{249position: 'absolute',250left: x,251top: y,252transform: `scale(${scale})`253}}>254<div className="pulse-ring" />255<span>{label}</span>256</div>257);258};259```260261### Voiceover Integration262263Add narration to the walkthrough:2642651. Generate voiceover script from screen descriptions2662. Use text-to-speech or record audio2673. Import audio into Remotion with `<Audio>` component2684. Sync screen timing with voiceover pacing269270### Dynamic Text Extraction271272Extract text from Stitch HTML code for automatic annotations:2732741. Download `htmlCode.downloadUrl` for each screen2752. Parse HTML to extract key text elements (headings, buttons, labels)2763. Generate automatic callouts for important UI elements2774. Add to composition as timed text overlays278279## File Structure280281```282project/283├── video/ # Remotion project directory284│ ├── src/285│ │ ├── WalkthroughComposition.tsx286│ │ ├── ScreenSlide.tsx287│ │ ├── components/288│ │ │ ├── Hotspot.tsx289│ │ │ └── TextOverlay.tsx290│ │ └── Root.tsx291│ ├── public/292│ │ └── assets/293│ │ └── screens/ # Downloaded Stitch screenshots294│ │ ├── home.png295│ │ └── history.png296│ ├── remotion.config.ts297│ └── package.json298├── screens.json # Screen manifest299└── output.mp4 # Rendered video300```301302## Integration with Remotion Skills303304Remotion maintains its own Agent Skills that define best practices. Review these for advanced techniques:305306- **Repository**: https://github.com/remotion-dev/remotion/tree/main/packages/skills307- **Installation**: `npx skills add remotion-dev/skills`308309Key Remotion skills to leverage:310- Animation timing and easing311- Composition architecture patterns312- Performance optimization313- Audio synchronization314315## Common Patterns316317### Pattern 1: Simple Slide Show318319Basic walkthrough with fade transitions:320- 3-5 seconds per screen321- Cross-fade transitions322- Bottom text overlay with screen title323- Progress bar at top324325### Pattern 2: Feature Highlight326327Focus on specific UI elements:328- Zoom into specific regions329- Animated circles/arrows pointing to features330- Slow-motion emphasis on key interactions331- Side-by-side before/after comparisons332333### Pattern 3: User Flow334335Show step-by-step user journey:336- Sequential screen flow with directional slides337- Numbered steps overlay338- Highlight user actions (clicks, taps)339- Connect screens with animated paths340341## Troubleshooting342343| Issue | Solution |344|-------|----------|345| **Blurry screenshots** | Ensure downloaded images are at full resolution; check `screenshot.downloadUrl` quality settings |346| **Misaligned text** | Verify screen dimensions match composition size; adjust text positioning based on actual screen size |347| **Choppy animations** | Increase frame rate to 60fps; use proper spring configurations with appropriate damping |348| **Remotion build fails** | Check Node version compatibility; ensure all dependencies are installed; review Remotion docs |349| **Timing feels off** | Adjust duration per screen in manifest; preview in Remotion Studio; test with actual users |350351## Best Practices3523531. **Maintain aspect ratio**: Use actual Stitch screen dimensions or scale proportionally3542. **Consistent timing**: Keep screen display duration consistent unless emphasizing specific screens3553. **Readable text**: Ensure sufficient contrast; use appropriate font sizes; avoid cluttered overlays3564. **Smooth transitions**: Use spring animations for natural motion; avoid jarring cuts3575. **Preview thoroughly**: Always preview in Remotion Studio before final render3586. **Optimize assets**: Compress images appropriately; use efficient formats (PNG for UI, JPG for photos)359360## Example Usage361362**User prompt:**363```364Look up the screens in my Stitch project "Calculator App" and build a remotion video365that shows a walkthrough of the screens.366```367368**Agent workflow:**3691. List Stitch projects → Find "Calculator App" → Extract project ID3702. List screens in project → Identify all screens (Home, History, Settings)3713. Download screenshots for each screen → Save to `assets/screens/`3724. Create `screens.json` manifest with screen metadata3735. Generate Remotion components (`ScreenSlide.tsx`, `WalkthroughComposition.tsx`)3746. Preview in Remotion Studio → Refine timing and transitions3757. Render final video → `calculator-walkthrough.mp4`3768. Report completion with video preview link377378## Tips for Success379380- **Start simple**: Begin with basic fade transitions before adding complex animations381- **Follow Remotion patterns**: Leverage Remotion's official skills and documentation382- **Use manifest files**: Keep screen data organized in JSON for easy updates383- **Preview frequently**: Use Remotion Studio to catch issues early384- **Consider accessibility**: Add captions; ensure text is readable; use clear visuals385- **Optimize for platform**: Match video dimensions to target platform (YouTube, social media, etc.)386387## References388389- **Stitch Documentation**: https://stitch.withgoogle.com/docs/390- **Remotion Documentation**: https://www.remotion.dev/docs/391- **Remotion Skills**: https://www.remotion.dev/docs/ai/skills392- **Remotion MCP**: https://www.remotion.dev/docs/ai/mcp393- **Remotion Transitions**: https://www.remotion.dev/docs/transitions394