delight-skill
Skill1 starsChanged 11 days agoMITView on GitHub
Add micro-interactions, transitions, hover states, and feedback animations. Use when UX feels stiff or lifeless. Do NOT use for functional or utility UIs.
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
No feedback on hover, tap, or action completion
- Distinctive: line 31
After functionality is complete, before polish
- Distinctive: line 49
Every user interaction is a delight opportunity:
- Distinctive: line 104
Keep durations between 150ms-400ms (below 150ms is instant, above 400ms is slow)
- Very specific: line 105
Use will-change: transform on animated elements
- Distinctive: line 107
Avoid animating 10+ elements simultaneously
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Delight Skill
Add micro-interactions so interfaces respond like physical things.
→ See guides/ANIMATIONS-GUIDE.md for animation principles and types.
→ See guides/IMPLEMENTATION-GUIDE.md for code examples and patterns.
Micro-interactions are the difference between a UI that feels alive and one that feels like a PDF. Every interaction should leave a trace.
When to Use
- Interface feels stiff or lifeless
- No feedback on hover, tap, or action completion
- User says "make it feel more responsive"
- Transitions feel jarring or instant (no duration)
- Loading states are blank or flicker
- After functionality is complete, before polish
When NOT to Use
- Performance optimization (use
optimize— thendelighton top) - Structural changes (use
buildskills) - Replacing missing states (use
hardenfirst)
Output Contract
| Artifact | Format | Location | Quality Criteria |
| Micro-interaction CSS | CSS/animations | Component source files | 150-400ms, only transform/opacity, reduced-motion fallback |
Process
1. Identify Touchpoints
Every user interaction is a delight opportunity:
| Interaction | Current state | Delight opportunity |
| Hover | Static | Scale, glow, shadow lift |
| Tap/click | Instant | Ripple, micro-bounce, color shift |
| State change | Abrupt | Smooth transition, morph |
| Loading | Spinner or blank | Skeleton, progress bar, shimmer |
| Success | Nothing | Checkmark, confetti, subtle pulse |
| Error | Red flash | Shake, gentle wiggle |
| Empty | Blank | Animated illustration, subtle float |
| Page enter | Instant | Fade in, slide, stagger children |
2. Fix by Category
Hover & Focus
| Before | After | Duration |
| No hover effect | transform: scale(1.03) + shadow lift | 150-200ms |
| Instant color swap | background-color transition | 200-300ms on button |
| No focus ring | outline with transition | 150ms |
| Card hover none | translateY(-2px) + subtle shadow | 200ms ease |
Tap & Click
| Before | After | Notes |
| Instant jump | transform: scale(0.97) on active | Returns on release |
| No feedback | Button darkens 10% on press | Apply to all interactive |
| Toggle instant | Swipe + morph animation | 250ms spring |
State Transitions
| Before | After | Duration |
| Content appears (pop in) | Fade + slide up 8px | 200-300ms |
| Content disappears | Fade + scale down | 150-200ms |
| Page enters instantly | Stagger children, fade up | 300ms total |
| Modal opens instantly | Scale from 0.95 + backdrop fade | 200ms |
| Tab switch instant | Slide content directionally | 200ms |
Loading & Feedback
| Before | After | Notes |
| Blank while loading | Skeleton screen (pulse animation) | Match shape |
| Spinner only | Progress bar with known duration | Or shimmer for unknown |
| Success no feedback | Checkmark draw animation | 300ms |
| Error no feedback | Shake input + highlight border | 300ms shake |
| Toast appears instantly | Slide in from top/right + fade | 250ms + 3s auto-dismiss |
3. Performance Rules
- Animate ONLY
transformandopacity— neverwidth,height,top,left - Keep durations between 150ms-400ms (below 150ms is instant, above 400ms is slow)
- Use
will-change: transformon animated elements - Respect
prefers-reduced-motion(usehardento add it) - Avoid animating 10+ elements simultaneously
4. Output Format
/delight the product card
Fix 1: Hover state
- Before: no hover effect
- After: transform: scale(1.02), box-shadow: 0 4px 12px, transition: 200ms
Fix 2: Add to cart button
- Before: text changes instantly
- After: icon morphs from "+" to checkmark (200ms), button pulses green
Fix 3: Card enter animation
- Before: all cards appear at once
- After: stagger in by index, translateY(20px) → translateY(0), 250ms each
Fix 4: Loading skeleton
- Before: loading text
- After: card-shaped skeleton with shimmer animation5. Escalation Rules
| Finding | Escalate to |
| Animation causes jank | optimize first, then reapply |
| Need complex gesture | Interaction design review |
| Animation contradicts brand | Design decision |
Pitfalls
- Over-delighting — Not every pixel needs to animate. Animate interactions, not eye candy.
- Accessibility first — Always test with
prefers-reduced-motion. Delight must degrade gracefully. - Duration drift — Keep all micro-interactions within 150-400ms. Faster than conscious thought.
- Animation without purpose — Every animation should communicate: this changed, this is interactive, this is happening.
QA Gates
- All interactive elements have hover/focus feedback
- All state changes have transitions (not instant)
- All durations within 150-400ms
- Only
transformandopacityanimated prefers-reduced-motionrespected- Loading states have animation (not blank)
- Success/error feedback is animated
- Page enters have subtle transition
- No animation for animation's sake
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/CLAUDE.mdCLAUDE.md
- adapt-skillSkill
- api-and-interface-designSkill
- architecture-analysisSkill
- audit-skillSkill
- backend-api-masterySkill
- browser-testing-with-devtoolsSkill
- ci-cd-and-automationSkill
- clarify-skillSkill
- cli-toolsSkill
- code-review-and-qualitySkill
- code-simplificationSkill
- context-engineeringSkill
- critique-skillSkill
- customize-opencodeSkill
- debugging-and-error-recoverySkill
- debugging-three-strikesSkill
- deprecation-and-migrationSkill
- dev-environment-auditSkill
- documentation-and-adrsSkill
- doubt-driven-developmentSkill
- engineering-fundamentalsSkill
- frontend-desktopSkill
- frontend-mobileSkill
- frontend-pwaSkill
- frontend-ui-engineeringSkill
- frontend-webSkill
- fullstack-shippingSkill
- gateSkill
- git-init-and-versioningSkill
- git-workflow-and-versioningSkill
- hard-skillSkill
- idea-refineSkill
- incremental-implementationSkill
- industrial-brutalist-uiSkill
- interview-meSkill
- minimalist-uiSkill
- multi-agent-orchestrationSkill
- observability-and-instrumentationSkill
- optimize-skillSkill
- output-skillSkill
- performance-optimizationSkill
- planning-and-task-breakdownSkill
- polish-skillSkill
- project-health-checkSkill
- project-metricsSkill
- redesign-skillSkill
- security-and-hardeningSkill
- self-improvementSkill
- shipping-and-launchSkill
- skill-creatorSkill
- skill-improverSkill
- soft-premium-uiSkill
- source-driven-developmentSkill
- spec-driven-developmentSkill
- test-driven-developmentSkill
- typeset-skillSkill
- user-onboardingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

