all-the-vibes/atv-phoenix/phoenix-design

Claude Code and agent skill by all-the-vibes/atv-phoenix

Trust tier 3
  • community
Source check pending

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-design

SKILL.md

phoenix-design — taste is the differentiator, polished with evidence

Encodes Emil Kowalski's design-engineering philosophy: in a world where
everyone's software is good enough, taste is the differentiator, and unseen details compound into
interfaces people love without knowing why. Phoenix adds the verify-heal discipline so polish ships
without 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?
FrequencyDecision
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) — never all (janky, animates the unexpected).
  • `ease-out` for things entering / responding to user action (instant feedback). ease-in feels

sluggish for UI. Custom curves for personality.

  • Nothing appears from nothing: enter with scale(0.95) + opacity, not scale(0).
  • Respond to press: interactive elements get an :active state (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:

BeforeAfterWhy
transition: all 300mstransition: transform 200ms ease-outSpecify exact properties; avoid all
transform: scale(0)transform: scale(0.95); opacity: 0Nothing in the real world appears from nothing
ease-in on dropdownease-out with a custom curveease-in feels sluggish; ease-out is instant feedback
No :active on buttontransform: scale(0.97) on :activeButtons must feel responsive to press
transform-origin: center on popovervar(--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-motion is honored.
  • Visual/interaction check when possible: screenshot or interaction test for the changed state.
  • Snapshot before a risky restyle so phoenix_heal can roll back a regression.

Common Rationalizations

RationalizationReality
"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: all or scale(0) entrances. → Name properties; enter from 0.95+opacity.
  • No :active / no prefers-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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/all-the-vibes/atv-phoenix/phoenix-design/badge)](https://verified-skill.com/skills/all-the-vibes/atv-phoenix/phoenix-design)

Something wrong with this skill or its page? Tell us.