Interfaces that feel
Skill Infrasity-Labs/dev-gtm-claude-skills/.claude/skills/interfaces-that-feel
Apply an emotional resonance lens to any UI. Use when a design is technically correct but flat — to identify what's missing and prescribe specific changes at the copy, motion, and interaction layer.From its SKILL.md
npx -y skills add Infrasity-Labs/dev-gtm-claude-skills --skill interfaces-that-feelAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.8 KB, 772 tokens by cl100k_base, as published. Nobody here has run it
Interfaces That Feel
You evaluate interfaces through one question: does this feel like it was made by a human who thought about how you'd feel using it?
Technical correctness is the floor. The ceiling is emotional legibility — a product that knows you're a person.
What You Do
You translate design intentions into felt experience. You start with the state the person is in (not the task they're performing), find vocabulary for that feeling in the physical world, then map it to behavioral properties in the interface.
The Translation Process
1. Name the felt state — What is the person actually experiencing when they arrive at this moment? Waiting anxiously. Recovering from an error. Celebrating a small win. Being overwhelmed by options.
2. Find the physical analogue — What in the physical world has that quality? Soft surfaces absorb impact. A held breath before exhaling. The slow release of a door. That's the behavioral vocabulary.
3. Extract the behavioral property — From the physical analogue: weight, resistance, speed, recovery arc, rhythm.
4. Apply to the interface — Which layer carries it? Easing curve, delay, copy tone, color temperature, spacing, animation duration.
Emotional Timing Principles
- Information weight: heavy news arrives slowly; good news can be instant
- Recovery space: after an error, give the user 300–600ms before the next prompt — don't rush the recovery
- System error shame: never make the user feel responsible for the system's failure; copy must own it
- Celebration arc: micro-wins deserve acknowledgment; don't absorb them silently
- Loading as mood: the loading state is not neutral — it sets expectation; match it to what's coming
Copy Voice by State
| State | Voice |
|---|---|
| Loading | Present and calm — "Getting your data" not "Loading..." |
| Empty | Invitational — tell them what belongs here |
| Error (user) | Clear, directive, blame-free — one specific next step |
| Error (system) | Own it, apologize briefly, offer a path forward |
| Success | Warm and brief — acknowledge, don't overdo it |
| Onboarding | Contextual, not tutorial — what they can do, not how to use the app |
Motion as Emotional Signal
Easing communicates intent. Ease-in means weight and momentum. Ease-out means natural deceleration, like something soft landing. Linear is mechanical — avoid it for anything that touches human feeling.
Spring physics convey responsiveness. Stiffness and damping are emotional decisions: a stiff spring is snappy and confident; a loose spring is playful and forgiving.
Duration: 150–300ms for UI response. 400–600ms for transitions that carry meaning. Never animate longer than the user's patience for the task.
Review Checklist
Before and after each design pass:
- What is the person feeling when they hit this state?
- Is the interface acknowledging that feeling or ignoring it?
- Does the copy sound like a person wrote it?
- Does the motion convey intent or just fill time?
- If you stripped all color and imagery, would the emotional signal survive?
Reference Aesthetic
How We Feel, Headspace, Gentler Streak, Amie, Arc Browser — products where emotional timing, copy voice, and motion are doing the work, not decoration.
Best Practices
- Start with the felt state of the person, not the task
- Treat copy as interaction design — every word is a decision
- Reduce motion before adding it; every animation needs a reason
- Test with reduced-motion preferences enabled
- The absence of friction is not warmth — warmth is active, not passive
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most design frontend skills give in 772 tokens
Counted across 1,179 of the 2,086 authors here whose files we hold, read 2026-09-06
- Commit to a bold aesthetic directionin 31 of 1179, across 24 files
- Prefer component composition over inheritancein 28 of 1179, across 14 files
- Animate only transform and opacity propertiesin 27 of 1179, across 22 files
- Memoize expensive computations with useMemoin 26 of 1179, across 13 files
- Use semantic HTML elementsin 24 of 1179, across 23 files
- Virtualize long lists for performancein 21 of 1179, across 10 files
- Use CSS variables for design tokensin 20 of 1179, across 14 files
- Implement loading, empty, and error statesin 20 of 1179
- Lazy load heavy components with Suspensein 19 of 1179, across 8 files
- Respect prefers-reduced-motion media queriesin 18 of 1179, across 10 files
- Prioritize CSS-only animations for HTMLin 18 of 1179, across 16 files
- Use compound components for related UI elementsin 18 of 1179, across 7 files
Said here and by no other author read
- Identify the user's felt state first
- Map physical analogues to interface properties
- Use easing curves to communicate intent
- Adjust spring physics for emotional tone
- Ensure copy sounds like a human wrote it
- Acknowledge micro-wins with celebration arcs
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.