
Hover Interactions
- 382 installs
- 68 repo stars
- Updated December 30, 2025
- dylantarre/animation-principles
hover-interactions is a frontend animation skill that applies Disney's 12 animation principles to mouse hover states for developers who need pointer-triggered micro-interactions that clarify affordances without visual no
About
hover-interactions is a UI animation skill from dylantarre/animation-principles focused on mouse hover effects for buttons, cards, links, and images. It maps Disney's 12 principles—squash and stretch, anticipation, staging, and pose-to-pose transitions—to pointer devices with restrained scale ranges like 1.02–1.05 for card lift. Developers reach for hover-interactions when hover states must preview clicks, highlight interactive elements, and avoid distracting motion on marketing sites or dashboards. The skill defines precise rest and hover poses with smooth transitions so affordances read clearly on desktop without breaking touch-first layouts.
- Hover state design
- Affordance clarity
- Pointer-device UX
- Micro-interaction timing
- Subtle feedback loops
Hover Interactions by the numbers
- 382 all-time installs (skills.sh)
- Ranked #700 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/animation-principles --skill hover-interactionsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 382 |
|---|---|
| repo stars | ★ 68 |
| Last updated | December 30, 2025 |
| Repository | dylantarre/animation-principles ↗ |
How do you design hover micro-interactions for web UI?
Design and implement hover states, cursors, and micro-interactions that clarify affordances on pointer devices without visual noise.
Who is it for?
Frontend developers polishing desktop pointer interactions on buttons, cards, links, and images with principled motion design.
Skip if: Touch-only mobile interfaces where hover states are irrelevant or projects banning pointer-specific animation.
When should I use this skill?
A user asks for hover effects, button highlights, card lifts, link underlines, or pointer-triggered micro-interactions.
What you get
Defined rest and hover CSS or motion poses, transition timings, and pointer affordance specs for interactive elements.
- hover state specs
- CSS transition rules
- interaction pose definitions
By the numbers
- Applies Disney's 12 animation principles to hover states
- Recommends card hover scale between 1.02 and 1.05
Files
Hover Interaction Animations
Apply Disney's 12 principles to mouse hover states.
Principle Application
Squash & Stretch: Cards can subtly scale (1.02-1.05) on hover, creating "lift" effect.
Anticipation: Hover IS anticipation for click. The hover state previews the interaction.
Staging: Hover effects should highlight the interactive element, not distract from it.
Straight Ahead vs Pose-to-Pose: Define rest and hover poses precisely. Transition smoothly between them.
Follow Through & Overlapping: Child elements animate after parent. Card lifts, then shadow expands.
Slow In/Slow Out: Hover-in: ease-out (fast response). Hover-out: ease-in-out (graceful return).
Arcs: Underlines can draw from center outward. Highlights sweep in curved paths.
Secondary Action: Combine multiple subtle effects. Scale + shadow + color shift together.
Timing:
- Hover response: 150-200ms (must feel responsive)
- Hover exit: 200-300ms (can be slightly slower)
- Never exceed 300ms for hover-in
Exaggeration: Subtle - hover is preview, not performance. Scale max 1.05, shadow max +8px.
Solid Drawing: Hover states must feel like the same element elevated, not a replacement.
Appeal: Hover should invite clicking. Create anticipation without demanding action.
Timing Recommendations
| Hover Effect | Hover-In | Hover-Out | Easing |
|---|---|---|---|
| Color Change | 150ms | 200ms | ease-out / ease-in-out |
| Scale/Lift | 200ms | 250ms | ease-out / ease-in-out |
| Shadow | 200ms | 250ms | ease-out / ease-in-out |
| Underline Draw | 200ms | 200ms | ease-out |
| Image Zoom | 300ms | 400ms | ease-out |
| Icon Shift | 150ms | 200ms | ease-out |
Implementation Patterns
/* Card lift with shadow */
.card {
transition: transform 200ms ease-out, box-shadow 200ms ease-out;
}
.card:hover {
transform: translateY(-4px) scale(1.02);
box-shadow: 0 12px 24px rgba(0,0,0,0.15);
}
/* Slower return */
.card:not(:hover) {
transition: transform 250ms ease-in-out, box-shadow 250ms ease-in-out;
}
/* Underline draw from center */
.link {
position: relative;
}
.link::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
width: 0;
height: 2px;
background: currentColor;
transition: width 200ms ease-out, left 200ms ease-out;
}
.link:hover::after {
width: 100%;
left: 0;
}Icon Animation Pattern
.button-icon {
transition: transform 150ms ease-out;
}
.button:hover .button-icon {
transform: translateX(4px);
}
/* Arrow grows */
.arrow-icon {
transition: transform 150ms ease-out;
}
.link:hover .arrow-icon {
transform: translateX(4px) scale(1.1);
}Key Rules
1. Touch devices don't have hover - ensure functionality without it 2. Hover-in must be under 200ms to feel responsive 3. Don't move elements enough to cause mis-clicks 4. Test with @media (hover: hover) to scope to pointer devices 5. Combine max 3 properties to avoid overwhelming
@media (hover: hover) {
.card:hover { /* hover effects */ }
}Related skills
FAQ
Which hover patterns does hover-interactions cover?
hover-interactions covers button highlights, card lifts, link underlines, image zooms, and other pointer-triggered animations. Each pattern applies Disney animation principles to clarify interactivity on desktop.
What scale range does hover-interactions recommend for cards?
hover-interactions recommends subtle card scale between 1.02 and 1.05 on hover for a lift effect using squash and stretch, keeping motion restrained so staging highlights the interactive element.