PluginBench
Skill
Pass
Audit score 90

make-interfaces-feel-better

affaan-m/everything-claude-code

Apply design-engineering details that make interfaces feel polished and refined.

What is make-interfaces-feel-better?

This skill provides concrete techniques for improving UI polish across spacing, typography, shadows, motion, and interaction states. Use it when reviewing interfaces that feel off, flat, or unfinished, or when building controls, cards, forms, and other components that need refinement.

  • Apply concentric radius rules to nested rounded surfaces for optical coherence
  • Optically center icons and asymmetric elements with pixel-level adjustments
  • Use borders for separation and layered shadows for depth on cards and popovers
  • Apply text-wrap strategies (balance for headings, pretty for body) and tabular numerals for dynamic numbers
  • Implement interruptible enter/exit animations with opacity, translateY, and scale instead of instant changes
  • Ensure interactive controls have 40x40px minimum hit areas, expanded with pseudo-elements when needed

How to install make-interfaces-feel-better

npx skills add https://github.com/affaan-m/everything-claude-code --skill make-interfaces-feel-better
Claude Code
Cursor
Windsurf
Cline

How to use make-interfaces-feel-better

  1. 1.Identify the UI element or interaction that needs polish (spacing, typography, shadows, motion, or hit areas)
  2. 2.Check the relevant principle in the Core Principles section (Concentric Radius, Optical Alignment, Shadows, Text Wrapping, Motion, etc.)
  3. 3.Apply the concrete CSS or structural change described (e.g., adjust border-radius math, add text-wrap: balance, split enter/exit animations)
  4. 4.Use the Checklist to verify nested elements, icons, buttons, text, numbers, images, animations, and hit areas meet the standard
  5. 5.Report changes in before/after format with file paths and specific properties modified

Use cases

Good for
  • Reviewing a UI that feels cramped, flat, or jumpy and needs specific polish recommendations
  • Building a dashboard or form with cards, buttons, and controls that need hover, focus, and active states
  • Refining component animations to be subtle and interruptible rather than jarring
  • Ensuring image edges don't blur into backgrounds with neutral outlines
  • Fixing text wrapping awkwardness in headings and list items
Who it's for
  • Frontend engineers building or reviewing component libraries
  • UI developers working on dashboards, forms, and navigation systems
  • Design engineers implementing pixel-perfect interactions and motion
  • Teams conducting polish passes before shipping interfaces

make-interfaces-feel-better FAQ

When should I use text-wrap: balance vs. text-wrap: pretty?

Use text-wrap: balance on headings and short titles to avoid awkward line breaks. Use text-wrap: pretty on short-to-medium body text, captions, descriptions, and list items. Avoid both on long prose, code, and preformatted content.

What is the concentric radius rule?

For nested rounded surfaces, set outer radius = inner radius + padding. If padding is large, treat layers as separate surfaces instead. The goal is optical coherence, not formula worship.

How should I handle motion and transitions?

Use CSS transitions (not keyframes) for interactive state changes because they can retarget mid-motion. Never use transition: all; specify properties explicitly. Good defaults: enter with opacity + small translateY, exit shorter at 150ms, press with scale(0.96) for tactile feedback.

What is the minimum hit area for interactive controls?

Interactive controls should have at least a 40x40px hit area, ideally 44x44px. Expand with a pseudo-element when the visible icon is smaller, but ensure expanded hit areas do not overlap.

How do I optically center icons that look off-center geometrically?

Icons like play triangles, arrows, and stars often need small pixel-level offsets. Fix the SVG when possible; otherwise adjust with a small margin or padding change to achieve visual centering.

Full instructions (SKILL.md)

Source of truth, from affaan-m/everything-claude-code.


name: make-interfaces-feel-better description: 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. metadata: origin: community

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: 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:

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:

PrincipleBeforeAfter
Concentric radiusSame radius on parent and childParent radius accounts for padding
Tabular numbersCounter shifts as digits changeCounter uses tabular-nums
Transition scopetransition: allExplicit 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: all and will-change: all are absent.
  • Small controls still have usable hit areas.