all-the-vibes/atv-phoenix/phoenix-design
Claude Code and agent skill by all-the-vibes/atv-phoenix
- community
Checking that the SKILL.md file is still in the repository.
Design-engineering craft for interfaces that feel right — the animation decision framework (should it animate at all, what's the purpose, what curve), the invisible details that compound, and a required Before/After review table. Gated where possible by objective checks (lint, build, visual/interaction verification). Grounded in Emil Kowalski's design-engineering philosophy. Use when building or reviewing UI, animations, or interactions, or when the user says /phoenix-design, "make it feel better", or "review this UI".
Install
npx vskill@latest install all-the-vibes/atv-phoenix/phoenix-designSKILL.md
phoenix-design — taste is the differentiator, polished with evidence
Encodes Emil Kowalski's design-engineering philosophy: in a world whereeveryone's software is good enough, taste is the differentiator, and unseen details compound intointerfaces people love without knowing why. Phoenix adds the verify-heal discipline so polish shipswithout regressing build/lint/behavior.
Core philosophy
- Taste is trained, not innate. Reverse-engineer great interfaces; understand why they feel right.
- Unseen details compound. Users rarely notice them consciously — that's the point. The aggregate of
invisible correctness is what makes software feel stunning.
- Beauty is leverage. People pick tools on the whole experience. Good defaults + good motion stand out.
The Animation Decision Framework (answer in order, before writing any animation)
1. Should this animate at all?
| Frequency | Decision | |
|---|---|---|
| 100+×/day (keyboard shortcuts, command palette) | No animation. Ever. | |
| Tens of ×/day (hover, list nav) | Remove or drastically reduce | |
| Occasional (modals, drawers, toasts) | Standard animation | |
| Rare/first-time (onboarding, celebration) | Can add delight |
Never animate keyboard-initiated actions — they repeat hundreds of times a day; animation makes them feel slow. (Raycast has no open/close animation. That's optimal for something used constantly.)
2. What is the purpose?
Every animation needs a clear answer to "why does this animate?" Valid: spatial consistency, state indication, explanation, feedback. No purpose → no animation.
3. What curve & properties?
- Animate specific properties (
transform,opacity) — neverall(janky, animates the unexpected). - `ease-out` for things entering / responding to user action (instant feedback).
ease-infeels
sluggish for UI. Custom curves for personality.
- Nothing appears from nothing: enter with
scale(0.95)+opacity, notscale(0). - Respond to press: interactive elements get an
:activestate (transform: scale(0.97)). - Scale from origin: popovers/dropdowns scale from their trigger (
transform-origin), modals stay centered. - Honor
prefers-reduced-motion.
Review Format (REQUIRED)
When reviewing UI code you MUST output a single markdown table — never a "Before:/After:" list:
| Before | After | Why | |
|---|---|---|---|
transition: all 300ms | transition: transform 200ms ease-out | Specify exact properties; avoid all | |
transform: scale(0) | transform: scale(0.95); opacity: 0 | Nothing in the real world appears from nothing | |
ease-in on dropdown | ease-out with a custom curve | ease-in feels sluggish; ease-out is instant feedback | |
No :active on button | transform: scale(0.97) on :active | Buttons must feel responsive to press | |
transform-origin: center on popover | var(--radix-popover-content-transform-origin) | Popovers scale from their trigger |
Verify the polish (the Phoenix part — taste, but gated)
Craft is not an excuse to skip evidence. Where a check exists, gate on it:
- Build/lint stay green:
phoenix_sense {"kind":"command_exit","target":["npm","run","lint"],"expect":0}
and the build — beautiful code that doesn't compile isn't shipped.
- Behavior unbroken: if the component has tests, sense them; a motion tweak must not break logic.
- Reduced-motion path exists: check (regex or test) that
prefers-reduced-motionis honored. - Visual/interaction check when possible: screenshot or interaction test for the changed state.
- Snapshot before a risky restyle so
phoenix_healcan roll back a regression.
Common Rationalizations
| Rationalization | Reality | |
|---|---|---|
| "More animation = more delight." | High-frequency animation feels slow. Delight lives in rare moments; everyday actions want speed. | |
"transition: all is convenient." | It animates properties you didn't intend (layout, color) and janks. Name the exact property. | |
"ease-in looks fine." | For UI entrances it feels laggy. ease-out gives the instant feedback users read as responsive. | |
| "It's just a style change, no need to check." | Style changes break builds, lint, and reduced-motion paths. Sense them; taste still needs evidence. | |
| "I'll write the review as a Before/After list." | The required format is a markdown table. Lists bury the reasoning; the table makes each call legible. |
Red Flags
- Animation on a keyboard-repeated action. → Remove it; speed beats motion there.
transition: allorscale(0)entrances. → Name properties; enter from0.95+opacity.- No
:active/ noprefers-reduced-motion. → Add both; responsiveness and accessibility are table stakes. - A UI review written as a prose list. → Use the Before/After table.
- Shipping a restyle without a green build/lint sense. → Gate it; beauty that breaks the build isn't shipped.
Next
Pair with phoenix-build (implement under the heal loop), phoenix-typescript (typed components), and phoenix-review/phoenix-ship (gate the polish on green evidence). Deeper craft: Emil's course at animations.dev.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/phoenix-design/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/all-the-vibes/atv-phoenix/phoenix-design)