shot-composition
This skill should be used when the user asks to "compose a frame", "set up a grid", "plan shot composition", "place the focal point", "decide where elements enter and exit", "add a parallax/camera move", "adapt a layout for 16:9 / 9:16 / 1:1", or "keep content inside safe areas". Covers grids, safe areas, focal hierarchy, and 2D/3D camera framing.
1How It Works & Mechanism
The entry point is a decision tree that first routes problems across four categories (static composition / entry & exit / depth & camera / multi-aspect ratio adaptation) before applying corresponding rules.
├─ A static frame's layout
The spatial layer explicitly inherits from animation-principles: it spatializes the Rule of Thirds into power points and travel limits, while mapping the three-tier motion roles onto the Z-axis as depth layers.
**Cross-reference — apply the shared frameworks.** This skill is the spatial half of `animation-principles`. Apply them explicitly:
Grids provide formulas instead of adjectives: a 12-column layout, an 8px baseline, a column width formula, and a concrete calculation example for 1920 width.
column_width = (content_width - (cols - 1) * gutter) / cols
A single focal point constraint paired with a fixed hierarchy priority: size > contrast > color > position.
Build **visual hierarchy** in this priority order to direct the eye: **size > contrast > color > position**.
Depth layering directly maps to motion roles with explicit parallax speed multipliers: Background at 0.1–0.3x (Ambient), Midground at 0.5–0.7x (Secondary), and Foreground at 1.0–1.5x (Primary).
| Background | Ambient | 0.1–0.3x | low, often desaturated/blurred | sky, gradient, texture, set dressing |
Camera language enforces 'one shot, one intent': simultaneous push, pan, and roll are prohibited, paired with four standard 2D/3D camera moves and durations.
**One shot, one intent.** Don't push + pan + rotate simultaneously — combined moves read as chaotic.
Entry and exit directions carry semantic meaning (following reading direction signifies progression; reverse signifies back navigation), requiring entrance and exit from the nearest edge.
Motion that follows reading direction (left-to-right, top-to-bottom in LTR locales) feels natural and smooth; reversing it creates tension or signals "back/undo."
The multi-aspect ratio strategy first provides safe area percentage tables, then mandates 'restacking over cropping' for vertical aspect ratios.
Design the **focal point centered enough** that it survives all crops, then let secondary elements reflow per aspect.
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| package | Three.js(reference 的深度视差示例,产物期由实现方引入) |
| package | 下游实现 skill:gsap-web / remotion-video / after-effects(其中 gsap-web 属 iart-ai/web-animation-skills 仓库) |
| package | CSS scroll-driven animations / Pointer Events(reference 的纯 CSS 与 JS 视差示例) |
4Recommended Governance & Evidence
- SKILL.md: Pure prompt instructions and rule text; no script execution or external impact.
5Second-Pass Verification
- [discrepancy] 被点名的 gsap-web 是否在本仓(防悬空引用) — 本仓 skills/ 下无 gsap-web;该 skill 位于另一工作副本 iart-web-animation-skills/skills/gsap-web(同一作者的另一 pack),其 SKILL.md 亦反向引用 shot-composition。因此这条交付链跨仓,只装 motion-design-skills 时 gsap-web 引用解析不到——属真实缺口(文档未标注「需另装」)。
- [ok] reference 是否含可执行脚本或联网调用 — camera-and-grids.md 内只有 CSS/JS/GLSL 代码块与具名镜头参数表;全目录搜 npx/curl/fetch/URL 无执行期命中。
- [ok] 与 animation-principles 的交叉引用是否一致(两处术语是否打架) — SKILL.md 明写 depth layers ARE the three motion layers projected onto Z,并把 1/3 规则拆成「构图三分点」与「行程不超过 1/3」两形态;与 animation-principles 原文表述一致,属同义映射而非冲突。
- [unlocatable] 安全区百分比是否有出处 — 9:16 顶部 12-14% / 底部 18-20%、1:1 6-8%、4:5 6%/8% 等是经验值,pin 仓库内无平台文档引用或测量数据;平台 UI 尺寸会随版本变化,实际交付应以当期平台规格复核(本 pack 的 video-delivery-specs 给的是像素级版本)。
6Verdict & Scenarios
5c7f5d87a93826a3…