motion

Installation
SKILL.md

Motion

The most valuable motion decision is "this should not animate". After that gate, every value is exact: curves, durations, and spring configs live in this file and nowhere else in the Icons8 skill line.

Scope

This skill owns all timing: durations, easings, springs, stagger, press feedback, interruption behavior, reduced-motion handling. When ui-polish or any other neighbor needs a motion value, it points here by name; no motion number is restated elsewhere. Static styling belongs to ui-polish, state coverage to ux-check.

One exception on the other side: the response-time budgets in ux-check (feedback within 100 ms, progress past a second) are perception thresholds for whether the interface answered at all, not animation values, and they stay there.

Animation authored inside an Icons8 asset (an animated icon, an Ouch video or Lottie) keeps the animator's timing: icons8 and ouch decide when it may play, and no duration here applies to it. The press feedback on the control around it is still yours.

Motion tokens (--ease-*, durations) are defined here and may live in their own file. design-tokens exempts that file from its parallel-palette count; it does not own these values and does not rename them.

Skills outside this line can own the same ground (animate, review-animations, improve-animations, emil-design-eng carry the same duration tables, from the same source). If one is loaded, follow it and add only what it does not cover. One defect, one finding.

Hard rules

Installs
6
GitHub Stars
11
First Seen
Sep 24, 2026