
Make Interfaces Feel Better
Apply spacing, typography, radius, shadow, motion, and interaction-state tweaks so dashboards, forms, and controls feel polished instead of flat or jumpy.
Overview
Make Interfaces Feel Better is an agent skill most often used in Build (also Ship review) that applies concrete spacing, typography, border, shadow, motion, and state details so interfaces feel polished.
Install
npx skills add https://github.com/affaan-m/everything-claude-code --skill make-interfaces-feel-betterWhat is this skill?
- Concentric radius rule for nested rounded surfaces (outer = inner + padding) with optical-coherence guidance
- Optical alignment fixes for icons and asymmetric glyphs via SVG or pixel-level offset
- Borders vs layered shadows for cards, dropdowns, popovers, and depth without muddy separation
- Hover, active, focus, enter/exit, loading, and empty states with concrete before/after review hooks
- Typography, hit areas, text wrapping, and motion details when the UI feels cramped, generic, or unfinished
- 3 core principle areas: concentric radius, optical alignment, shadows and borders
Adoption & trust: 1.1k installs on skills.sh; 210k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You shipped functional UI that still reads as generic, flat, or visually “off” because small radius, alignment, shadow, and state details were never specified.
Who is it for?
Solo builders polishing dashboards, forms, and component libraries with an agent when the layout works but the feel does not.
Skip if: Greenfield brand systems, full accessibility remediation-only audits, or backend-only work with no visible UI surface.
When should I use this skill?
The user says the UI feels off, flat, generic, cramped, jumpy, or unfinished; you are building or reviewing controls, cards, lists, dashboards, navigation, forms, or toolbars; components need hover, active, focus, enter,
What do I get? / Deliverables
You get actionable before-and-after UI recommendations and implementation guidance so components feel cohesive, tappable, and finished across hover, focus, and empty states.
- Before/after UI recommendations
- Concrete spacing, radius, shadow, and state implementation notes
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Build → frontend because the skill targets component-level design engineering while you ship UI. Most invocations happen on controls, cards, lists, nav, and toolbars during frontend implementation, not backend or ops work.
Where it fits
Tune card padding, layered shadows, and focus rings while building a settings panel.
Run a structured UI pass before release when testers say navigation feels jumpy or cramped.
Lift a clickable prototype so demo flows feel credible before you commit to full build.
Polish in-app empty states and toolbars on content-heavy screens users see daily.
How it compares
Use for tactile UI craft and state polish instead of ad-hoc “fix the CSS” chat without a checklist of optical and interaction details.
Common Questions / FAQ
Who is make-interfaces-feel-better for?
Indie and solo frontend builders, design-minded full-stack devs, and agents improving shadcn-style controls, cards, and dashboards before launch.
When should I use make-interfaces-feel-better?
During Build frontend work on controls and layout; during Ship review when stakeholders say the UI feels unfinished; whenever you need hover, focus, loading, or empty states spelled out.
Is make-interfaces-feel-better safe to install?
It is editorial design guidance only—no shell or network by default. Review the Security Audits panel on this Prism page before enabling any bundled repo skills.
SKILL.md
READMESKILL.md - Make Interfaces Feel Better
# Make Interfaces Feel Better Use this skill for the small design-engineering details that compound into a more polished interface. Source: salvaged from stale community PR #1659 by `linus707`. ## When to Use - The user says the UI feels off, flat, generic, cramped, jumpy, or unfinished. - You are building controls, cards, lists, dashboards, navigation, forms, or toolbars. - A component needs hover, active, focus, enter, exit, loading, or empty states. - A frontend review needs specific before/after recommendations. ## Core Principles ### Concentric Radius For nearby nested rounded surfaces: ```text outer radius = inner radius + padding ``` If padding is large, treat layers as separate surfaces instead of forcing the math. The point is optical coherence, not formula worship. ### Optical Alignment Geometric centering is not always visual centering. Icon buttons, play triangles, arrows, stars, and asymmetric icons often need a small offset. Fix the SVG when possible; otherwise adjust with a pixel-level margin or padding change. ### Shadows And Borders Use borders for separation and focus rings. Use layered shadows when a card, button, dropdown, or popover needs depth. Shadows should be transparent and subtle enough to work across backgrounds. ### Text Wrapping - Use `text-wrap: balance` on headings and short titles. - Use `text-wrap: pretty` on short-to-medium body text, captions, descriptions, and list items. - Avoid both on long prose, code, and preformatted content. - Use `font-variant-numeric: tabular-nums` for counters, timers, prices, tables, and other updating numbers. ### Font Smoothing On macOS, apply antialiased font smoothing at the root layout when the project does not already do so: ```css html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ``` ### Image Outlines Images often need a subtle inset outline so their edges do not blur into the surface. ```css img { outline: 1px solid rgba(0, 0, 0, 0.1); outline-offset: -1px; } @media (prefers-color-scheme: dark) { img { outline-color: rgba(255, 255, 255, 0.1); } } ``` Use neutral black or white alpha outlines. Do not tint image outlines with the brand palette. ### Motion Use CSS transitions for interactive state changes because they can retarget when the user changes intent mid-motion. Reserve keyframes for staged one-shot entrances or loading sequences. Good motion defaults: - Enter: combine opacity, small `translateY`, and optionally blur. - Exit: shorter and quieter than enter, usually 150ms. - Press: `scale(0.96)` for tactile buttons, with a way to disable it when the movement distracts. - Icon swaps: cross-fade with opacity, scale, and blur instead of instant visibility toggles. ### Transition Scope Never use `transition: all`. Specify the changed properties: ```css .button { transition-property: transform, background-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease-out; } ``` Use `will-change` only for first-frame stutter on compositor-friendly properties such as `transform`, `opacity`, and `filter`. Never use `will-change: all`. ### Hit Areas Interactive controls should have at least a 40x40px hit area, ideally 44x44px where the layout allows it. Expand with a pseudo-element when the visible icon is smaller, but do not let expanded hit areas overlap. ## Review Output When reviewing a UI polish pass, report concrete changes in before/after rows: | Principle | Before | After | | --- | --- | --- | | Concentric radius | Same radius on parent and child | Parent radius accounts for padding | | Tabular numbers | Counter shifts as digits change | Counter uses