Skip to main content
skill CX Codex

interfaces-that-feel — Claude Code skill: emotion in UI

A skill for reviewing a UI that works correctly but lands cold. It prescribes changes at the copy, motion and interaction layer.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Owl-Listener/designer-skills --skill interfaces-that-feel -a claude-code
Open on GitHub

What interfaces-that-feel does

The skill runs on 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.

The process has four steps. First, name the felt state — waiting anxiously, recovering from an error, celebrating a small win. Then find the physical analogue for that quality: a soft surface absorbing impact, a held breath before exhaling. From the analogue you extract a behavioural property — weight, resistance, speed, rhythm. Only then does it land on an interface layer: easing curve, delay, copy tone, colour temperature, spacing, animation duration.

A table maps copy voice to state: loading, empty, user error, system error, success, onboarding. For system errors the rule is blunt — the product owns the failure, not the person. Motion gets its own section: linear easing is mechanical and has no place where human feeling is involved, while a stiff spring reads as confident and a loose one as playful. The skill advises starting from the person's state rather than the task, and cutting motion before adding any. Test with reduced-motion preferences on.

What it helps with

  • rewrite an error message so the product takes the blame
  • pick duration and easing for a screen transition
  • give an empty state something to say instead of silence
  • match the loading state to the mood of what arrives next
  • check whether the emotional signal survives without colour or imagery

Example prompts for the agent

  • run this screen through interfaces-that-feel and tell me what feels cold
  • write the loading, empty and error states following the skill's rules
  • audit the animations against the checklist: which ones carry intent and which just fill time

How to install interfaces-that-feel

1Skills CLI (Vercel)

npx skills add Owl-Listener/designer-skills --skill interfaces-that-feel -a claude-code

2Manually: put the files in place

~/.claude/skills/interfaces-that-feel/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/interfaces-that-feel/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about interfaces-that-feel

How do I install interfaces-that-feel in Claude?

Run npx skills add Owl-Listener/designer-skills --skill interfaces-that-feel -a claude-code. The skill file lands at ~/.claude/skills/interfaces-that-feel/SKILL.md.

What does interfaces-that-feel do?

It reads an interface through the states a person passes through and prescribes changes to copy, motion and interaction. Technical correctness is treated as the starting point, not the goal.

How is it different from aesthetic-usability?

aesthetic-usability, from the ui-design set, makes the case for why polish shapes perception. This skill works from what a person feels at a given moment and turns that into interface parameters.

Source text

SKILL.md · MIT
---
name: interfaces-that-feel
description: Apply an emotional resonance lens to a UI that is technically correct but flat, prescribing changes at the copy, motion, and interaction layer. Use when a design tests fine but lands cold. For the polish-perception argument, use `aesthetic-usability` (ui-design).
---
# 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

© Owl-Listener · MIT · Owl-Listener/designer-skills

Similar skills

Everything for Design →

From the same set111

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor