make-interfaces-feel-better
Helps your agent polish interface elements. Makes visual details like spacing and text look more refined and user-friendly.
What it does
This tool helps improve the look and feel of user interfaces (app or website screens). It suggests adjustments to details like spacing, fonts, shadows, and animations to make everything more polished and pleasing.
When to use it
- ✓When a screen feels 'off', flat, or unfinished.
- ✓When building or reviewing elements like buttons, lists, or forms.
- ✓To add visual states like 'hover' or 'loading'.
Example of what to ask your AI
“How can I make buttons feel more responsive when clicked?”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool analyzes design details such as corner rounding, visual alignment of icons, and the use of shadows. It applies specific rules to ensure these elements work well together and create a cohesive visual experience.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add affaan-m/ECC --skill make-interfaces-feel-betterOr download just the file:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/make-interfaces-feel-better/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
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:
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: balanceon headings and short titles. - Use
text-wrap: prettyon short-to-medium body text, captions, descriptions, and list items. - Avoid both on long prose, code, and preformatted content.
- Use
font-variant-numeric: tabular-numsfor 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:
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.
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:
.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 tabular-nums |
| Transition scope | transition: all |
Explicit transition properties |
Include file paths and properties when they are not obvious from the snippets. Omit principles that you checked but did not change.
Checklist
- Nested rounded elements are optically coherent.
- Icons are visually centered.
- Buttons, cards, and popovers use borders or shadows for the right reason.
- Headings and short text avoid awkward wrapping.
- Dynamic numbers use tabular numerals.
- Images have neutral outlines where needed.
- Enter and exit animations are split, subtle, and interruptible where appropriate.
- Buttons have tactile active states without exaggerated motion.
transition: allandwill-change: allare absent.- Small controls still have usable hit areas.
FAQ
What is 'Concentric Radius'?
It's a rule to ensure that rounded corners on nested elements (one inside another) have a harmonious appearance, considering the space between them.
Why isn't geometric centering always best?
Some icons, like arrows or stars, aren't perfectly symmetrical. Visual alignment might require a slight adjustment so they appear correctly centered.
How should shadows and borders be used?
Borders are good for separating elements or indicating focus. Shadows create depth, useful for cards or dropdown menus, and should be subtle enough to work on various backgrounds.
Details
Original description by the author
Apply concrete design-engineering details that make interfaces feel polished. Use when reviewing or improving UI spacing, typography, borders, shadows, motion, hit areas, icons, text wrapping, and interaction states.
repo: affaan-m/ECC
Popularity
- GitHub stars
- 280k
- Ranking position
- #81
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC
Similar skills
frontend-design
Guides your agent in creating unique and intentional visual interfaces. Helps define aesthetic direction and choose typography.
anthropics/skills
paperclip-capsules
Helps your agent create visuals for 'capsules'. This includes art for agents, status, and visual identification.
paperclipai/paperclip
wireframe
Lets your agent sketch simple screen layouts. Useful for planning app appearances before building them.
paperclipai/paperclip