claude/skills-external/design-motion-principles/references/jhey-tompkins.md
Bastien Chanot 469c807c10 feat(skills): add design-motion-principles from kylezantos
Motion/animation design skill with 3-designer lens (Emil Kowalski,
Jakub Krehel, Jhey Tompkins). Two modes: Create and Audit.
Complements frontend-design (broad) with deep motion expertise.

Integration points:
- skills-external/design-motion-principles/ — skill files + references
- link.sh EXTERNAL_SKILLS — symlink to ~/.claude/skills/
- install-plugins.sh step 8c — presence check
- update-all.sh step 7.2 — sync from GitHub
- profiles: design, full, web, web-full — listed as external
- plugin-advisor — decision table, recommended sets, conditional rules
- design-gate — symlink check + non-blocking warning if missing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 22:40:23 +02:00

123 lines
5.6 KiB
Markdown

# Jhey Tompkins' Animation Principles
Jhey Tompkins (@jh3yy) is a design engineer known for pushing the boundaries of CSS and creative coding. His approach emphasizes **playful experimentation** — learning through building whimsical projects where the joy of creation drives skill development.
This file is Jhey's **philosophy and decision frameworks** — the judgment for *creative expression* and *easing personality*. Implementation code lives in `motion-cookbook.md` (cross-referenced below).
---
## Core Philosophy: Learn Through Play
> "I went from 'I want to learn X, so how do I fit it into Y' to 'I want to make Y, can I learn X to do it?'"
His key question for any interaction: **"What could this become?"**
**The motivation should be making something cool — learning is a happy side effect.**
### Core Beliefs
- **No idea is a bad idea** — Document every spark, however weird
- **Don't ask "Why?" or "Is this practical?"** — Make what brings you joy first
- **"Useless" demos teach real skills** — CSS art teaches clip-path mastery, border-radius tricks, stacking contexts
- **Lateral learning** — Building diverse demos trains you to switch contexts and rise to challenges
- **You'll never have time to make everything** — And that's okay. The act of documenting ideas matters.
**Keep notebooks everywhere** — including by your bed. Creative sparks happen at random times.
---
## When to Apply Jhey's Mindset
- Creative sites, portfolios, kids apps — contexts where delight is the point
- Learning new techniques
- Personal projects and experiments
- When you're stuck in a creative rut
- Exploring what's possible with new CSS features
---
## The Golden Rule (Even in Play)
> "The best animation is that which goes unnoticed."
Even in playful contexts, effective motion enhances the experience without demanding attention, feels natural and expected, serves a functional purpose, and doesn't fatigue users on repeated interactions.
---
## Easing Has Personality (Decision Framework)
> "Duration is all about timing, and timing has a big impact on the movement's naturalness."
Each easing curve communicates something. **Context matters more than rules.**
> "You wouldn't use 'Elastic' for a bank's website, but it might work perfectly for an energetic site for children."
Brand personality should drive easing choices — a playful brand can use bouncy/elastic easing, a professional brand should use subtle springs or `ease-out`.
**When NOT to use bouncy/elastic easing:**
- Professional/enterprise applications
- Frequently repeated interactions (gets tiresome)
- Error states or serious UI
- When users need to complete tasks quickly
(Easing-feel reference table and the `linear()` recipe for pure-CSS bounce/elastic/spring → cookbook §2.)
---
## Signature Techniques (decision context — code in cookbook)
| Technique | When Jhey reaches for it | Cookbook |
|-----------|--------------------------|----------|
| `linear()` function | Pure-CSS bounce, elastic, spring effects without JS | §2 |
| `@property` | Animating CSS custom properties — type declaration unlocks interpolation | §7 |
| Decomposed transforms | Curved motion paths impossible with a monolithic transform | §7 |
| `animation-fill-mode` | Delayed fade-in sequences — `backwards` prevents the pre-animation flash | §1 |
| Negative delays | "Already in progress" stagger effects | §2 |
| Scoped CSS variables | Varied behavior from a single animation definition | §7 |
| 3D CSS ("think in cubes") | Decompose 3D objects into cuboids; `preserve-3d` + `perspective` | §8 |
| Scroll-driven with duration | Decouple animation timing from scroll speed | §14 |
---
## Why "Useless" CSS Art Matters
CSS art teaches real skills that transfer to production: clip-path mastery, border-radius tricks, stacking contexts, complex gradients, pseudo-element layering. For complex illustrations — break into simple shapes, use pseudo-elements liberally, layer with z-index carefully, use CSS variables for repeated values, don't fear many elements.
---
## When to Experiment vs. Ship
| Situation | Approach |
|-----------|----------|
| Learning a new CSS feature | Build something weird and fun |
| Portfolio piece | Push boundaries, show creativity |
| Personal project | Follow your joy |
| Client work | Apply Jakub's production polish instead |
| High-frequency tool | Apply Emil's restraint instead |
The playful approach is for **learning and exploration**. For production, switch to Jakub or Emil's mindset.
---
## Common Mistakes (Jhey's Perspective)
- **Filtering ideas based on "usefulness" too early** — Make first, judge later
- **Not documenting random creative sparks** — Keep notebooks everywhere
- **Thinking CSS art is useless** — It teaches real skills
- **Focusing on "How do I learn X?" instead of "How do I make Y?"** — Let ideas drive learning
- **Following tutorials without experimenting** — Tutorials teach techniques; experimentation teaches problem-solving
- **Giving up when something doesn't work** — The struggle is where learning happens
---
## Jhey vs. Emil vs. Jakub
| Aspect | Jhey | Emil | Jakub |
|--------|------|------|-------|
| **Focus** | Playful experimentation | Restraint & speed | Subtle polish |
| **Key question** | "What could this become?" | "Should this animate?" | "Is this subtle enough?" |
| **Signature technique** | CSS custom properties | Frequency-based decisions | Blur + opacity + translateY |
| **Ideal context** | Learning & exploration | High-frequency tools | Production polish |
**When to use Jhey**: You're building something where delight is the goal, exploring what's possible, or learning a new technique. The skills transfer to production work later.