Install any skill in seconds. Free to start, no credit card required.
Get Started Free →gsd-build/make-interfaces-feel-better
Design engineering principles for making interfaces feel polished.
Passed 23 of 23 test cases with the skill, and 17 of 23 without it.
and 8 more in the full report
6 fixed17 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are building an icon cross-fade in CSS without JavaScript motion libraries, keeping both icons in the DOM. What timing function curve should be used for the transition? Output the CSS `transition` declaration.
| Checked | Without skill | With skill |
|---|---|---|
| The CSS transition specifies cubic-bezier(0.2, 0, 0, 1). | Missed | Passed |
The instructions your model reads when the skill loads.
Great interfaces rarely come from a single thing. It's usually a collection of small details that compound into a great experience. Apply these principles when building or reviewing UI code.
| Category | When to Use |
|---|---|
| Typography | Text wrapping, font smoothing, tabular numbers |
| Surfaces | Border radius, optical alignment, shadows, image outlines, hit areas |
| Animations | Interruptible animations, enter/exit transitions, icon animations, scale on press |
| Performance | Transition specificity, will-change usage |
Outer radius = inner radius + padding. Mismatched radii on nested elements is the most common thing that makes interfaces feel off.
When geometric centering looks off, align optically. Buttons with icons, play triangles, and asymmetric icons all need manual adjustment.
Layer multiple transparent box-shadow values for natural depth. Shadows adapt to any background; solid borders don't.
Use CSS transitions for interactive state changes — they can be interrupted mid-animation. Reserve keyframes for staged sequences that run once.
Don't animate a single container. Break content into semantic chunks and stagger each with ~100ms delay.
Use a small fixed translateY instead of full height. Exits should be softer than enters.
test cases passed, vs 17 / 23 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.