interfaces-that-feel
Interfaces That Feel evaluates UI design for emotional resonance by mapping the user's felt state to specific behavioral changes in copy, motion, and interaction timing. Use this skill when a design functions correctly but feels cold or disconnected, to identify missing human-centered moments like recovery delays after errors, appropriate easing curves for different information types, or copy that acknowledges user emotions rather than just completing tasks.
git clone --depth 1 https://github.com/Owl-Listener/designer-skills /tmp/interfaces-that-feel && cp -r /tmp/interfaces-that-feel/interaction-design/skills/interfaces-that-feel ~/.claude/skills/interfaces-that-feelSKILL.md
# 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
Design an A/B experiment — hypothesis, variants, primary metric, and sample size. Use when a change can be measured quantitatively at scale. For observing behaviour qualitatively, use `test-scenario`.
Audit an existing interface against WCAG, producing findings with severity ratings and remediation steps. Use when you have a design or build to assess now. Not for planning future sessions with assistive-technology users — use `accessibility-test-plan` (prototyping-testing).
Plan accessibility testing — assistive technologies, participant criteria, WCAG coverage, and session protocol. Use when scheduling testing with real AT users. Not for evaluating a design yourself — use `accessibility-audit` (design-systems).
Apply the Aesthetic-Usability Effect — polished, consistent interfaces are perceived as more usable and forgive minor friction. Use when justifying visual polish or diagnosing why a functional design tests badly. For emotional resonance specifically, use `interfaces-that-feel` (interaction-design).
Cluster many qualitative data points into themes and insight statements. Use when synthesising across multiple sessions or sources. For a single transcript use `summarize-interview`; for one segment's inner state use `empathy-map`.
Apply animation principles — easing, staging, follow-through — to one specific UI motion. Use when tuning how an animation feels. For product-wide duration and easing tokens use `motion-system` (design-systems); for a full interaction spec use `micro-interaction-spec`.
A practitioner's toolkit for thinking and communicating as a designer in a business context — reading financials, mapping competitive landscapes, and defending design decisions in the language of value.
Analyse open or closed card sort results into a proposed grouping and label set. Use after running a sort study. For turning that evidence into a full structure, use `information-architecture` (ux-strategy).