Skip to main content
Glama
REMAINING_LAYOUTS_SPECS.md•7.39 kB
# Remaining Layouts Specifications This document provides detailed specifications for each remaining layout to be migrated. ## 1. Vertical Layout ### Description 9:16 optimized layout for Shorts/TikTok/Reels with multiple layout styles. ### Props ```python top: Any | None # Top content bottom: Any | None # Bottom content layout_style: str = "top-bottom" # Values: "top-bottom", "caption-content", "content-caption", "split-vertical" top_ratio: float = 50 # For split styles (percentage) gap: float = 20 padding: float = 40 ``` ### Template Notes - Optimized for 9:16 aspect ratio - Different arrangements based on `layout_style`: - `top-bottom`: Simple vertical stack - `caption-content`: Caption at top, content below - `content-caption`: Content at top, caption below - `split-vertical`: 50/50 split (or custom ratio) ### MCP Tool `remotion_add_vertical` --- ## 2. DialogueFrame Layout ### Description For conversation/dialogue scenes with two speakers. ### Props ```python left_speaker: Any | None # Left speaker content right_speaker: Any | None # Right speaker content center_content: Any | None # Optional center content (captions, etc.) speaker_size: float = 40 # Speaker panel size (percentage) gap: float = 20 padding: float = 40 ``` ### Template Notes - Two side panels for speakers - Optional center area for captions/shared content - Typical layout: [Speaker 1] [Center] [Speaker 2] ### MCP Tool `remotion_add_dialogue_frame` --- ## 3. Timeline Layout ### Description Progress/timeline overlay with milestones and progress indicators. ### Props ```python main_content: Any | None # Background content milestones: list[dict] # List of milestone objects with {time, label, icon} current_time: float = 0 # Current progress time total_duration: float = 10 # Total timeline duration position: str = "bottom" # Values: "top", "bottom" height: float = 100 # Timeline bar height (pixels) ``` ### Template Notes - Overlay timeline bar over main content - Show milestones/markers along timeline - Highlight current position - Can be positioned at top or bottom ### MCP Tool `remotion_add_timeline` --- ## 4. OverTheShoulder Layout ### Description Looking over someone's shoulder perspective, typically for screen recordings. ### Props ```python screen_content: Any | None # Main screen content shoulder_overlay: Any | None # Person/shoulder overlay overlay_position: str = "bottom-left" # Position of shoulder overlay overlay_size: float = 30 # Size of shoulder overlay (percentage) angle: float = 0 # Optional rotation angle for perspective gap: float = 20 padding: float = 40 ``` ### Template Notes - Main content takes most of screen - Shoulder/person overlay in corner (typically bottom-left or bottom-right) - Optional perspective skew/rotation for "looking over shoulder" effect ### MCP Tool `remotion_add_over_the_shoulder` --- ## 5. StackedReaction Layout ### Description Reaction video style with stacked feeds (original content + reaction). ### Props ```python original_content: Any | None # Original video/content reaction_content: Any | None # Reaction video layout: str = "vertical" # Values: "vertical", "horizontal", "pip" reaction_size: float = 40 # Reaction panel size (percentage) gap: float = 20 padding: float = 40 ``` ### Template Notes - `vertical`: Stacked vertically (reaction above or below) - `horizontal`: Side by side (reaction left or right) - `pip`: Reaction as small overlay - Default: reaction at top, original below (vertical) ### MCP Tool `remotion_add_stacked_reaction` --- ## 6. HUDStyle Layout ### Description Heads-up display style with overlay elements (corners, edges, etc.). ### Props ```python main_content: Any | None # Main background top_left: Any | None # Top-left overlay top_right: Any | None # Top-right overlay bottom_left: Any | None # Bottom-left overlay bottom_right: Any | None # Bottom-right overlay center: Any | None # Center overlay overlay_size: float = 15 # Corner overlay size (percentage) gap: float = 20 padding: float = 40 ``` ### Template Notes - Main content full screen - Multiple overlay zones (corners + center) - Overlays should not obscure main content - Common for gaming, sports, tech demos ### MCP Tool `remotion_add_hud_style` --- ## 7. PerformanceMultiCam Layout ### Description Multi-camera performance view with primary + secondary cameras. ### Props ```python primary_cam: Any | None # Main camera feed secondary_cams: list[Any] = [] # List of secondary camera feeds (up to 4) layout: str = "primary-main" # Values: "primary-main", "grid", "filmstrip" gap: float = 20 padding: float = 40 ``` ### Template Notes - `primary-main`: Large primary + small secondaries in filmstrip - `grid`: Equal grid of all cameras - `filmstrip`: Primary large, secondaries as horizontal strip - Secondaries limited to 4 cameras ### MCP Tool `remotion_add_performance_multi_cam` --- ## 8. FocusStrip Layout ### Description Focused strip/banner layout for highlighting key content. ### Props ```python main_content: Any | None # Background/context content focus_content: Any | None # Focused strip content position: str = "center" # Values: "top", "center", "bottom" strip_height: float = 30 # Strip height (percentage) gap: float = 20 padding: float = 40 ``` ### Template Notes - Horizontal strip/banner across screen - Main content dimmed/blurred in background - Focus strip is prominent - Use for captions, quotes, code snippets ### MCP Tool `remotion_add_focus_strip` --- ## 9. Mosaic Layout (COMPLEX) ### Description Irregular collage with layered clips in various artistic arrangements. ### Props ```python clips: list[dict] # List of clip objects with {content, size, position} style: str = "hero-corners" # Values: "hero-corners", "stacked", "spotlight" gap: float = 10 padding: float = 40 ``` ### Template Notes - Most complex layout - `hero-corners`: Large hero center, small clips in corners - `stacked`: Overlapping cards/layers - `spotlight`: One large + multiple small arranged around - Each clip has custom size/position - May need z-index management ### MCP Tool `remotion_add_mosaic` --- ## Implementation Checklist For each layout, create: - [ ] `schema.py` with Pydantic models - [ ] `builder.py` with composition method - [ ] `tool.py` with MCP tool registration - [ ] `template.tsx.j2` with React component - [ ] `__init__.py` with exports - [ ] Update `src/chuk_motion/components/layouts/__init__.py` - [ ] Test with sample composition ## Testing For each layout, test with: 1. Minimal props (all optional) 2. Full props 3. Different variants/styles 4. Edge cases (missing content, invalid values) Refer to test files in `tests/templates/layouts/test_{layoutname}.py` for expected behavior. ## Priority Order Recommended order to implement: 1. **Vertical** - Simple, high demand for Shorts/Reels 2. **DialogueFrame** - Simple, useful for interviews/conversations 3. **Timeline** - Medium complexity, very useful 4. **StackedReaction** - Popular format 5. **FocusStrip** - Simple, good for captions 6. **OverTheShoulder** - Medium complexity 7. **HUDStyle** - Multiple overlays, medium-high complexity 8. **PerformanceMultiCam** - Complex camera management 9. **Mosaic** - Most complex, save for last Good luck! Each layout should take 30-60 minutes to implement following the existing patterns.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-remotion'

If you have feedback or need assistance with the MCP directory API, please join our Discord server