Sibling contract
Motion
Motion is structural communication. If motion files are malformed or violate the non-negotiable standards, they degrade trust, clarity, and usability.
Version 0.1.1 · provisional · machine export
Source authority
- Primary standard
- Lottie Animation Community Specification v1.0.1 (2025-06-26)
- Reference validator
- ajv 8.20.0 (draft 2020-12 via ajv/dist/2020) + ajv-formats 3.0.1
Ten non-negotiable motion standards
01 Easing is deliberate
02 Properties are explicit
03 Entrances have opacity
04 Keyboard is still
05 Layout is not animated
06 Touch is gated
07 Duration is bounded
08 Reduced-motion is handled
09 Press is asymmetric
10 Easing is never ease-in
Verification
10 checks. PASS=1, WARN=0.5, FAIL=0. Score = (points/10) × 100. A≥90, B≥80, C≥70, D≥60, F<60.
01 m01 · Lottie file validates against LAC v1.0.1 JSON Schema Pass Schema valid Fail Schema violation
02 m02 · Required fields present (v, fr, ip, op, w, h, layers) Pass All present Fail Any missing
03 m03 · No deprecated Bodymovin version (v: "4.x") Pass v >= "5.x" Fail v: "4.x"
04 m04 · markers array present (reduced-motion support) Pass Present Fail Missing
05 m05 · meta object present (attribution, author, description) Pass Present Warn Missing (attribution gap)
06 m06 · prefers-reduced-motion path documented (§3.4) Pass Documented Warn External wrapper noted Fail Not handled
07 m07 · Easing uses deliberate curves (§16.1, §16.10) Pass Custom curves Fail ease/linear/ease-in
08 m08 · Duration ≤ 300ms for UI motion (§16.7) Pass <= 300ms Fail > 300ms without justification
09 m09 · No layout-property animation (§16.5) Pass transform/opacity only Fail width/height/margin/padding/top/left
10 m10 · No motion on keyboard-initiated actions (§16.4) Pass Still Fail Motion on keyboard
Open questions
- Raw schema URL verification: is it lottie.schema.json appended to the schema path?
- Reduced-motion marker convention: should Designesy establish "reduced"/"calm"/"static" name?
- GSAP scope: should this contract cover GSAP timeline validation or a separate contract?
- HyperFrames scope: does the HyperFrames quality gate handle HyperFrames independently?
- Lottie spec stability: should validator warn when file uses features outside approved subset?
Sibling contract to the design system v0.4.6. Machine export at /contracts/motion.json.