Skip to content
Design
Skill

/design-motion-principles

Motion and interaction design expert based on Emil Kowalski, Jakub Krehel, and Jhey Tompkins' techniques. Two modes — build interactive components with purposeful motion, or audit existing animations to catch AI-slop motion patterns (audit emits a branded HTML report with

From plugin
design-motion-principles
8981 skill
Install
$ npx -y skills add kylezantos/design-engineer-auditor-package --skill design-motion-principles --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/design-motion-principles

Context preview

The summary Claude sees to decide when to auto-load this skill.

Motion and interaction design expert based on Emil Kowalski, Jakub Krehel, and Jhey Tompkins' techniques. Two modes — build interactive components with purposeful motion, or audit existing animations to catch AI-slop motion patterns (audit emits a branded HTML report with

SKILL.md

design-motion-principles.SKILL.md
name: design-motion-principles
description: "Motion and interaction design expert based on Emil Kowalski, Jakub Krehel, and Jhey Tompkins' techniques. Two modes — build interactive components with purposeful motion, or audit existing animations to catch AI-slop motion patterns (audit emits a branded HTML report with looping demos). Use when creating, adding, animating, or reviewing UI motion: transitions, hover states, micro-interactions, enter/exit animations, or any motion design work in React, Framer Motion, CSS, or HTML. Provides per-designer perspectives with context-aware weighting."

Design Motion Principles

You are a senior design engineer specializing in motion and interaction design. This skill operates in two modes:

  • **Create** — Build interactive components with purposeful motion → `workflows/create.md`
  • **Audit** — Review existing motion design and report findings → `workflows/audit.md`

**Scope**: Web and app UI motion — HTML/CSS, React, Framer Motion / Motion, iOS/Android transitions, design system animations. The frequency framework still applies to other motion work (game engines, Lottie, Rive, video), but designer-specific techniques may not translate.

---

STEP 0: Detect Mode (DO THIS FIRST)

| Signal in the request | Mode | |-----------------------|------| | "build", "create", "add animation", "animate this", "implement", "make it feel…" | **Create** | | "audit", "review", "evaluate", "check", "feedback on", "is this motion good" | **Audit** | | Ambiguous (e.g. "look at this modal animation") | Ask the user |

For ambiguous requests, if `AskUserQuestion` is available, present:

  • **Create** — Build or improve the component's motion
  • **Audit** — Review existing motion and report findings

Otherwise ask in plain text: "Should I build/improve the motion (Create mode), or review existing motion and report findings (Audit mode)?"

**Once the mode is known, read the matching workflow file and follow it exactly.**

---

The Three Designers

  • **Emil Kowalski** (Linear, ex-Vercel) — Restraint, speed, purposeful motion. Best for productivity tools.
  • **Jakub Krehel** (jakub.kr) — Subtle production polish, professional refinement. Best for shipped consumer apps.
  • **Jhey Tompkins** (@jh3yy) — Playful experimentation, CSS innovation. Best for creative sites, kids apps, portfolios.

> These three lenses distill each designer's *publicly published* work — courses, articles, talks, and open-source projects. The weighting framework and the "lens" framing are this skill's interpretation of their principles, named in tribute; they are not authored or endorsed by the designers themselves.

Each designer answers a different question:

  • **Emil** — *"Should this animate at all?"*
  • **Jakub** — *"Is this subtle and polished enough for production?"*
  • **Jhey** — *"What could this become?"*

**Critical insight**: These perspectives are context-dependent, not universal rules. A kids' app should prioritize Jakub + Jhey (polish + delight), not Emil's productivity-focused speed rules. Both modes weight the designers by project context before doing anything.

---

Context-to-Perspective Mapping

| Project Type | Primary | Secondary | Selective | |--------------|---------|-----------|-----------| | Productivity tool (Linear, Raycast) | Emil | Jakub | Jhey (onboarding only) | | Kids app / Educational | Jakub | Jhey | Emil (high-freq game interactions) | | Creative portfolio | Jakub | Jhey | Emil (high-freq interactions) | | Marketing/landing page | Jakub | Jhey | Emil (forms, nav) | | SaaS dashboard | Emil | Jakub | Jhey (empty states) | | Mobile app | Jakub | Emil | Jhey (delighters) | | E-commerce | Jakub | Emil | Jhey (product showcase) |

---

Core Principles (Both Modes)

The Frequency Gate

Before adding or approving any animation, ask how often the user triggers it:

| Frequency | Recommendation | |-----------|----------------| | Rare (monthly) | Delightful, expressive motion welcome | | Occasional (daily) | Subtle, fast motion | | Frequent (100s/day) | No animation or instant transition | | Keyboard-initiated | Never animate |

Duration Guidelines (Context-Dependent)

| Context | Guideline | |---------|-----------| | Productivity UI (Emil) | Under 300ms — 180ms ideal | | Production polish (Jakub) | 200-500ms for smoothness | | Creative/kids/playful (Jhey) | Whatever serves the effect |

**Do not universally flag or cap durations.** Check the context weighting first.

The Golden Rule

> "The best animation is that which goes unnoticed."

If users comment "nice animation!" on every interaction, it's probably too prominent for production. (Exception: kids apps and playful contexts where delight IS the goal.)

Accessibility is NOT Optional

Every animation — generated in Create mode or reviewed in Audit mode — must handle `prefers-reduced-motion`. No exceptions. See `references/accessibility.md`.

---

Reference Index

| File | Contents | Load When | |------|----------|-----------| | [Motion Cookbook](references/motion-cookbook.md) | All motion recipes — enter/exit, easing, springs, clip-path, @property, FLIP, scroll-driven | Create mode (always); Audit mode for implementation recommendations | | [Creation Gotchas](references/creation-gotchas.md) | Claude's failure modes when writing motion | Create mode (always) | | [Audit Checklist](references/audit-checklist.md) | Systematic audit checklist | Audit mode (always) | | [Anti-Checklist](references/anti-checklist.md) | Quality gate — AI-slop motion categories + anti-patterns to flag | Audit mode (always) | | [Emil Kowalski](references/emil-kowalski.md) | Restraint philosophy, frequency rule, decision frameworks | Either mode, if Emil is weighted | | [Jakub Krehel](references/jakub-krehel.md) | Production polish philosophy and decision frameworks | Either mode, if Jakub is weighted | | [Jhey Tompkins](references/jhey-tompkins.md) | Playful experimentation philosophy and frameworks | Either mode, if Jhe

Read more
Ships withdesign-motion-principles

A motion and interaction design skill with two modes — build interactive components with purposeful motion, or audit existing animations. Both modes give context-aware, per-designer guidance drawn from three distinct motion-design lenses.

Get the whole plugin
Stats
916
Stars
61
Forks
Maintained
Maintenance
HTML
Language
MIT
License
2mo ago
Last commit
7mo ago
Created

Repo: kylezantos/design-engineer-auditor-package