better-ui

Applies design engineering principles to polish UI components, animations, icons, and surfaces.

Updated Jul 29, 2026
One-click install
npx skills add https://github.com/zomeru/zomlab --skill better-ui-zomeru
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: better-ui
Source: https://github.com/zomeru/zomlab/tree/main/.agents/skills/better-ui
Command: npx skills add https://github.com/zomeru/zomlab --skill better-ui-zomeru

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Interfaces often feel off due to small compounding details like mismatched border radii, jarring animations, or inconsistent icon weights. This Skill provides concrete, opinionated rules for reviewing and building polished UI so those details are handled systematically instead of by intuition. ## Core Features & Use Cases - UI Polish Reviews: Audit frontend code against 15 core principles covering surfaces, animations, icons, and performance, with a structured findings table and severity-based verdict. - Animation Guidance: Implement interruptible transitions, staggered enter animations, subtle exits, contextual icon cross-fades, and scale-on-press feedback with exact prescribed values. - Icon and Surface Rules: Match icon stroke weight to text weight, recolor a single SVG per state via currentColor, compute concentric border radii, and replace decorative borders with layered shadows. - Use Case: When a button press feels dead or a card looks visually off, apply the scale-on-press and concentric radius rules to produce concrete before/after code fixes. ## Quick Start Review my Button and Card components for UI polish issues and suggest fixes for animations, shadows, and border radius.

Frequently Asked Questions about better-ui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make UI animations feel polished in React?▼

Use interruptible CSS transitions for interactive state changes and reserve keyframes for one-shot sequences. For contextual icon swaps, animate opacity, scale from 0.25 to 1, and blur from 4px to 0, using a spring transition with duration 0.3 and bounce 0 when Motion is installed.

How to fix nested border radius that looks off?▼

Apply the concentric radius formula: outer radius equals inner radius plus padding. For example, a card with 8px padding and a 12px inner radius needs a 20px outer radius. If padding exceeds 24px, treat the layers as separate surfaces instead.

Should I use CSS transitions or Framer Motion for icon animations?▼

Check the project's package.json first: import from motion/react or framer-motion if either is installed, matching existing import conventions. If no motion library exists, keep both icons in the DOM and cross-fade with CSS transitions using cubic-bezier(0.2, 0, 0, 1).

Why does transition: all cause animation problems?▼

transition: all forces the browser to watch every property, causing unintended animations on colors, padding, and shadows while blocking optimizations. Always specify exact properties like transition-property: scale, opacity, or use Tailwind's transition-transform for transform-only changes.

When should I not add animations to UI elements?▼

Skip custom animation on high-frequency interactions like row hovers, keystrokes, and repeated tab switches, since the attention cost repeats on every trigger. Use instant feedback or a subtle opacity/color transition at 150ms or less, and never make motion the only feedback channel.

What icon stroke width should match bold text?▼

Match icon stroke to adjacent text weight: 1.5px beside regular 400 text, 2px beside semibold 600, and 2.5px beside bold 700 text on a 24px grid. Use one stroke weight per icon set and never mix icon libraries on a single surface.