dragoon0x/everything-design-taste

motion-principles

Animation purpose, timing, easing philosophy, and motion as a design language element rather than decoration.

First seen Jul 18, 2026

Installation

$ npx skills add dragoon0x/everything-design-taste --skill motion-principles

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from dragoon0x/everything-design-taste · top by installs.

npx skills add dragoon0x/everything-design-taste

Browse all from dragoon0x/everything-design-taste

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Stars 11
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,450 B
  • docs SUMMARY.md 134 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Motion Principles

Motion Has Purpose

Every animation answers one of these questions:

  1. Where did this come from? (spatial orientation)
  2. What just happened? (state feedback)
  3. What should I look at? (attention direction)
  4. What's related? (grouping/connection)

If an animation doesn't answer any of these, remove it.

Timing

Duration Scale

  • Micro-interactions (hover, toggle): 100-200ms
  • Element transitions (fade, slide): 200-300ms
  • Page transitions: 300-500ms
  • Complex orchestrations: 500-800ms
  • Loading/progress: match actual duration

The 300ms Rule

Most UI animations should be under 300ms. Users perceive anything longer as slow. The exception is orchestrated sequences where staggered delays create rhythm.

Easing

Which Curve When

  • ease-out (decelerate): Elements entering the screen. They arrive and settle.
  • ease-in (accelerate): Elements leaving the screen. They start slow and exit fast.
  • ease-in-out: Elements moving between two visible positions.
  • linear: Progress bars, loading spinners. Never for UI transitions.
  • spring/bounce: Playful brands only. Subtle. Never on critical UI.

Custom Curves

/* Snappy entrance */
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);

/* Smooth move */
--ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);

/* Gentle settle */
--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);

Stagger Patterns

When animating multiple items (list items, grid cards), stagger by 30-60ms per item. Cap total duration at 600ms (after ~10 items, start them together in groups).

Reduced Motion

Always respect prefers-reduced-motion. This is not optional.

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

Anti-Patterns

  • Animations that block interaction (can't click until animation finishes)
  • Parallax scrolling on mobile (performance killer, motion sickness trigger)
  • Loading spinners when a skeleton screen would work
  • Bounce effects on serious/professional products
  • Animation on every single element (visual noise)