# Motion Direction Playbook Depth behind the SKILL.md frameworks: a brief template, filled motion-language specs for five tone cells, brand→motion translation, a direction-notes template with worked entries, an easing cheat sheet, and a pre-render checklist. ## Creative brief template Fill before any other decision. One line per row — if a row can't be answered, the piece isn't ready to direct. ``` PIECE: AUDIENCE: ONE MESSAGE: PLATFORM: DURATION: MOOD: BRAND CUES: CONSTRAINTS: REFERENCE: <1–3 links + one line on WHAT to borrow from each> ``` The 3 adjectives are load-bearing: they resolve every later judgment call. "Confident, precise, warm" rules out bouncy overshoot (not precise) and cold linear snaps (not warm) on its own. ## Filled motion-language specs (five tone cells) Each is internally consistent — copy the closest one and adjust. Easings are CSS `cubic-bezier`; the same curves map to GSAP eases and Lottie keyframe handles. ### Calm + Soft — luxury / wellness / editorial | Property | Choice | |---|---| | Easing | `cubic-bezier(0.4, 0, 0.2, 1)` in/out, long tails | | Base unit | 0.6s (micro 0.3s, hero 1.2s) | | Transition | Slow crossfade + gentle scale; no hard cuts | | Stagger | 120ms, generous | | Intensity | Travel ≤ 16px, scale 0.98→1.0, zero overshoot | | Hold | ≥ 0.6s stillness; let frames breathe | ### Calm + Sharp — premium tech / fintech | Property | Choice | |---|---| | Easing | `cubic-bezier(0.22, 1, 0.36, 1)` decel; exits `cubic-bezier(0.4, 0, 1, 1)` | | Base unit | 0.4s | | Transition | Match-cut + crossfade only | | Stagger | 60ms cascade | | Intensity | Travel ≤ 24px, scale 0.96→1.0, overshoot ≤ 2% | | Hold | ≥ 0.3s | ### Kinetic + Sharp — sports / hype / gaming / launch | Property | Choice | |---|---| | Easing | `cubic-bezier(0.16, 1, 0.3, 1)` hard-out; snaps near-instant | | Base unit | 0.25s (micro 0.12s) | | Transition | Hard cuts on beats; speed-ramp into drops | | Stagger | 40ms, tight machine-gun | | Intensity | Big travel, scale 1.18→1.0 overshoot on impact | | Hold | ≥ 0.2s, brief — energy over rest | ### Kinetic + Soft — playful / lifestyle / kids | Property | Choice | |---|---| | Easing | Spring / `cubic-bezier(0.34, 1.56, 0.64, 1)` overshoot | | Base unit | 0.4s, loose | | Transition | Bouncy pushes, squash-and-stretch wipes | | Stagger | 80ms, irregular feels human | | Intensity | Generous bounce, secondary follow-through | | Hold | ≥ 0.3s | ### Neutral data-story — explainer / dashboard / report | Property | Choice | |---|---| | Easing | `cubic-bezier(0.25, 0.1, 0.25, 1)` calm in/out | | Base unit | 0.5s; count-ups 0.8–1.2s | | Transition | Cross-dissolve between data states; never wipe a chart | | Stagger | 80ms per series/bar | | Intensity | Number eases to value; axes static; no overshoot on quantities | | Hold | ≥ 0.5s on each datapoint so it can be read | ## Brand → motion translation Brands describe themselves in adjectives; direction converts those to motion parameters. | Brand word | Easing | Timing | Intensity | What to avoid | |---|---|---|---|---| | Premium / luxury | Long, soft decel | Slow, generous holds | Minimal travel, no overshoot | Bounce, fast cuts, spins | | Trustworthy / precise | Clean decel, symmetric | On-grid, multiples of base | Small, controlled | Wobble, irregular stagger | | Energetic / bold | Hard-out, snappy | Fast, syncopated | Big scale, overshoot on beats | Slow fades, dead air | | Friendly / human | Slight overshoot/spring | Loose, slightly irregular | Soft bounce, follow-through | Robotic linear, perfect symmetry | | Innovative / techy | Decel with subtle anticipation | Tight, layered staggers | Crisp, geometric | Skeuomorphic squash, grunge | Map only the 2–3 strongest brand words. Trying to honor every adjective produces mush. ## Direction-notes template (per shot) Direct *intent*, not keyframes — let the technique skill choose exact values within the spec. ``` SHOT [t = 0.0–0.0s] PURPOSE: HERO: SUPPORT: TEXTURE: TRANSITION IN/OUT: BEAT: