better-ui

Reviews and polishes UI code for border radius, shadows, icon transitions, and animation details.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Interfaces often feel subtly off due to small compounding details: mismatched nested border radii, borders used where shadows belong, jarring theme-switch transitions, and icons that clash with text weight. This Skill provides exact, opinionated values and recipes to find and fix those polish issues in UI code. ## Core Features & Use Cases - Surface polish: Enforces concentric border radius (outer = inner + padding), layered box-shadows instead of depth borders, and pure black/white image outlines at 10% opacity. - Motion recipes: Prescribes interruptible CSS transitions, scale(0.96) press feedback, staggered enter animations, subtle exits, and contextual icon cross-fades with exact values for both Motion/Framer Motion and dependency-free CSS. - Icon consistency: Matches icon stroke width to adjacent text weight, uses one currentColor SVG recolored per state, and handles RTL flipping rules. - Use Case: Ask for a review of a React/Tailwind component and receive a severity-ranked findings table (HIGH/MEDIUM/LOW) with file:line locations, before/after fixes, and a Block or Approve verdict. ## Quick Start Review the UI polish of my Button and Card components and report any violations with fixes.

Frequently Asked Questions about better-ui

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

FAQPage Schema
How do I fix mismatched border radius on nested elements?▼

Apply the concentric radius rule: outer radius equals inner radius plus the padding between them. For example, a card with 8px padding and a 12px inner radius needs a 20px outer radius. Past 24px of padding, treat layers as separate surfaces.

How to animate icon changes with Framer Motion?▼

Use AnimatePresence with a keyed motion.span, animating opacity 0 to 1, scale 0.25 to 1, and blur 4px to 0px with transition type spring, duration 0.3, and bounce 0. Without a motion library, keep both icons in the DOM and cross-fade with CSS transitions.

Should I use border or box-shadow for card depth?▼

Use layered transparent box-shadows for depth on cards, buttons, and elevated elements, since they adapt to any background. Keep borders only for structural purposes like dividers, separators, and focus or selected states.

Why does my theme toggle animate the whole page?▼

A theme flip changes color, background, border, and shadow on every element at once, so all transitions fire together and smear. Inject a stylesheet disabling all transitions, force a reflow, then remove it on the next frame.

When should I use will-change in CSS animations?▼

Use will-change only for transform, opacity, and filter, which the GPU can composite, and only after observing first-frame stutter. Never use will-change: all or apply it preemptively, since each compositing layer costs memory.

What icon stroke width matches bold text?▼

Match stroke width to adjacent text weight: 1.5px beside regular 400 text, 2px beside semibold 600, and 2.5px beside bold 700. Keep one stroke convention per surface and one icon library per toolbar.