ui-polish-pass
UI Polish Pass
Core Pack — Always Active
This is a core skill. Use as the final step after design-review and ux-baseline-check on all visual work.
The screen works. Now make it feel right. This is the difference between functional and professional.
Core Lens
- Distill before decorating.
- Strip the screen to its essential structure, then add back only what earns its place.
- If a polish pass needs more color, more cards, and more chrome, it is probably not a polish pass.
- Use
/bolderand/quieteras directional moves:/bolder= increase contrast, hierarchy, or confidence without adding clutter/quieter= remove noise, reduce emphasis, let the right thing lead
The Pass (run sequentially)
Pass 1: Spacing & Breathing Room
- Section spacing — major sections have clear visual separation (32-48px minimum between groups)
- Element spacing — consistent gaps within groups (use the project's spacing scale, usually 4/8/12/16/24)
- Edge padding — content doesn't touch container edges. Minimum 16px padding, 24-32px preferred
- The squint test — do clear groups emerge, or is it one undifferentiated blob?
- Remove, don't add — if two elements feel crowded, try removing one before adding more UI
Pass 2: Typography Hierarchy
- One clear headline — the page has exactly one thing that reads as the primary heading
- Three levels max — heading, subheading, body. If you need more, the IA is probably wrong
- Weight before size — try bold before bigger. Try softer opacity before smaller
- No orphan labels — labels without content, headers without their section
- Consistent text styles — same content type uses the same style everywhere
Pass 3: Alignment & Grid
- Left-align by default — center alignment is for special moments, not routine content
- Consistent gutters — columns have the same gap throughout
- Baseline alignment — text in adjacent columns sits cleanly together
- No rogue pixels — near-miss alignment reads cheap fast
- Max content width — prose doesn't exceed 65-75 characters per line
Pass 4: Color & Contrast
- Restrained palette — use project colors only, don't improvise new ones
- Tinted neutrals — prefer slightly warm/cool neutrals over pure gray
- Hierarchy through opacity — secondary text at 60-70%, tertiary at 40-50% when appropriate
- No decoration color — color means action, status, selection, or rare emphasis
- Dark/light mode — if the project supports both, check both
Pass 5: Interactive Feel
- Hover states exist — every clickable element acknowledges intent
- Transitions are smooth — 150-200ms for micro-interactions, ~300ms for layout changes
- Easing is refined — no bounce, no elastic, no novelty curves
- Cursor changes — pointer on clickable, not-allowed on disabled, grab on draggable
- Focus visible — tab through the page, always know where you are
- No dead zones — click targets are generous, not tiny islands of text
Pass 6: Micro-Details
- Tabular numbers — any dynamically updating number uses
font-variant-numeric: tabular-numsto prevent layout shift (counters, prices, stats, timers) - Text wrapping — headings use
text-wrap: balance, body text usestext-wrap: prettyto avoid orphans - Font smoothing — root layout has
-webkit-font-smoothing: antialiasedfor crisper text on macOS - Concentric border radius — nested rounded elements have outer radius = inner radius + padding (see alignment.md)
- Image outlines — images on light backgrounds get a subtle
outline: 1px solid rgba(0,0,0,0.06)for consistent depth - Icon animations — icons that change state (open/close, play/pause) cross-fade with opacity + scale, not hard swap
- Scale on press — buttons use
scale(0.97)on active state for tactile feedback, 100ms transition - No
transition: all— always specify exact properties (transition-property: transform, opacity)
Pass 7: Final Proof
- Screenshot at 1x — does it still look professional at actual pixels?
- Compare to reference — side by side, honestly
- The 3-second test — can someone tell what the screen is for quickly?
- Would Linear or Vercel ship this?
- Final distill pass — what can you remove and make better at the same time?
When NOT to Polish
- Prototypes Aaron hasn't aligned on yet
- Throwaway experiments or spikes
- Internal tools where speed matters more than beauty
Polish comes after structure is approved. Never polish a bad foundation.
Speed Tips
- Fix spacing first — it solves half the problem
- Use the browser inspector grid overlay to check alignment
- Compare at actual viewport width, not narrow devtools panels
- If you're spending more than 15 minutes on polish, something structural is probably wrong
- If the UI feels weak, choose a direction:
/bolderor/quieter, then commit
More from aa-on-ai/agentic-design-system
design-review
>
10web-animation-design
Design and implement web animations that feel natural and purposeful. Use this skill proactively whenever the user asks questions about animations, motion, easing, timing, duration, springs, transitions, or animation performance. This includes questions about how to animate specific UI elements, which easing to use, animation best practices, or accessibility considerations for motion. Triggers on: easing, ease-out, ease-in, ease-in-out, cubic-bezier, bounce, spring physics, keyframes, transform, opacity, fade, slide, scale, hover effects, microinteractions, Framer Motion, React Spring, GSAP, CSS transitions, entrance/exit animations, page transitions, stagger, will-change, GPU acceleration, prefers-reduced-motion, modal/dropdown/tooltip/popover/drawer animations, gesture animations, drag interactions, button press feel, feels janky, make it smooth.
9agentic-design-system
>
9agent-friendly-design
Design websites and applications that AI agents can consume, navigate, and interact with. Use when building any site, app, or product that agents will use as an end-user — not just crawl or index. Covers semantic structure, accessibility-as-agent-interface, machine-readable data, API-first patterns, and the emerging protocols (llms.txt, MCP, NLWeb, A2UI) that make sites agent-ready. Triggers on: agent-friendly, agent-readable, agent-accessible, AX, agent experience, agentic web, dual-interface, machine-readable, llms.txt, MCP integration, NLWeb, accessibility tree, ARIA for agents, structured data, JSON-LD, Schema.org, API-first design, build for agents, agent-ready.
9ux-baseline-check
>
9visual-reference-calibration
Use before implementing UI/design from a visual reference, screenshot, CodePen, Dribbble shot, website, or “make it feel like this” request. Prevents cargo-culting mechanics, fake UI chrome, and code-first misses by forcing reference breakdown, user-question calibration, visual target approval, and side-by-side review before implementation.
3