Communitygithub.com

iamaanahmad/motion-design-craft

Motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

What is motion-design-craft?

motion-design-craft is a Claude Code agent skill that motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/motion-design-craft

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Motion Design Craft

Good motion is invisible: it directs attention and gets out of the way.

Durations (at 30 fps)

MotionFramesSeconds
Micro feedback (button press, highlight)4 to 80.15 to 0.25
Element enter or exit10 to 180.35 to 0.6
Scene transition12 to 200.4 to 0.7
Large move across the screen20 to 300.7 to 1.0
Stagger between list items3 to 60.1 to 0.2

Exits are faster than entrances (about 70 percent of the enter time). Longer than a second feels sluggish unless it is a deliberate reveal.

Easing

Pick the ease by what the object is doing:

  • Entering the frame: ease-out (fast start, soft landing).
  • Leaving the frame: ease-in (slow start, accelerates away).
  • Moving between positions on screen: ease-in-out.
  • Continuous (loops, progress bars): linear.

Never use plain linear for UI-like motion; it reads as robotic.

Springs

Use critically damped or slightly under-damped springs for natural settle. In Remotion, damping: 200 is smooth with no bounce; lower damping (10 to 20) adds overshoot, appropriate for playful content only. Keep overshoot under about 10 percent.

Read time for text

seconds_on_screen = max(1.5, words * 0.35 + 0.5)

A 6 word title needs about 2.6 seconds. If the voiceover reads the text, show it slightly before the voice says it.

Rhythm

  • Choose a beat (for example 0.5 s or one bar of the music) and align cuts and entrances to multiples of it. Misaligned motion feels sloppy even if viewers cannot say why.
  • Vary scene length; identical durations feel mechanical.
  • Cut on action: begin the next shot while motion from the previous one is still happening.

Hierarchy

  • One focal element at a time. Dim or blur what is not the subject.
  • Body text at least 36 px on 1080p; titles 72 px or more. Phone viewers need larger.
  • Contrast ratio at least 4.5:1 for text over backgrounds; add a scrim or outline over video.
  • Margins: keep content inside the central 90 percent (safe area), 80 percent for vertical video.

Transitions with a cause

Use a transition only when it says something: a wipe for a time shift, a push for the next step, a cross-fade for a gentle topic change. Otherwise use a straight cut. Do not mix more than two transition styles in one video.

What makes a video look generated

Avoid these defaults unless chosen on purpose:

  1. Everything fades in from 0 opacity with the same duration.
  2. Centered text on a dark gradient with floating blobs.
  3. A purple-blue gradient for every brand.
  4. Every element bouncing with a spring.
  5. Identical scene length and the same transition between all scenes.
  6. Stock emoji used as icons.
  7. Text that appears all at once, long before it is spoken.

Fixes: use the brand palette and real assets, vary motion by role, stagger meaningfully, and let some scenes just cut.

Review checklist

  • Can you pause any frame and see a clear subject?
  • Does anything move without a reason?
  • Is text readable at phone size?
  • Does the last 2 seconds hold still long enough to read the call to action?

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

iamaanahmad/captions-subtitles

Create, edit, translate and burn in captions and subtitles - transcribe speech with Whisper, write SRT/VTT/ASS files, style them, and hard-burn word-highlight captions for Shorts, Reels and TikTok. Use for any captioning, subtitle, transcript or accessibility request.

iamaanahmad/ffmpeg-essentials

Core FFmpeg and ffprobe recipes for trimming, joining, converting, resizing, compressing, speed changes, fades, audio extraction and GIF conversion. Use for any direct media transformation task, or when a video will not play, has odd dimensions, or is out of sync.

iamaanahmad/moviepy-python-video

Compose and edit video in pure Python with moviepy 2.x - overlay text, lower thirds and captions on footage, cut and join clips, add audio, build short single-file build.py videos without Node. Use when the user wants Python-based video editing or deterministic text over AI-generated video.

iamaanahmad/remotion-programmatic-video

Build videos as React code with Remotion - compositions, sequences, springs, interpolation, audio sync, data-driven props, studio preview and rendering to MP4. Use for explainers, product demos, release notes, data charts, branded templates, or any video that should be reproducible from code.

iamaanahmad/screen-recording-demos

Record clean product and web app demos - scripted browser recording with Playwright, cursor and zoom polish, speed ramps, trimming dead time and syncing to narration. Use when the user wants a walkthrough, tutorial, UI demo or release video of a web app, or a repeatable recording.

iamaanahmad/voiceover-tts

Generate and time narration with text-to-speech (ElevenLabs, OpenAI TTS, Kokoro, Piper) or prepare a recorded voice - script prep, per-scene audio files, pacing, pronunciation, cleanup and loudness. Use when the user needs a voiceover, narration, dubbing, or voice cloning guidance.

Related Skills