designmotionhq

motion

Card Hover Anatomy

Same card. One feels alive, three stay dead. Four rules separate them.

Watch on Instagram

Key insights

  • Lift with weight: raise the card ~8px on hover and stretch its shadow with it over ~200ms ease-out. Faster reads as twitchy, slower feels stuck.
  • Claim the cursor: a pulsing accent border or a gradient sweep around the edge stops the card looking flat and signals it's interactive.
  • Cascade the actions: reveal hidden buttons (favorite, cart, share) staggered ~60ms apart, anchored at the bottom. A reveal adds an affordance, not a new layout.
  • Push against the glass: scale the image to ~1.05 inside an overflow-hidden frame while the container stays fixed — the product presses outward instead of resizing the card.
  • The trap — keep the geometry: never scale the whole card. That shifts neighbors and breaks the grid. Animate the content, hold the footprint.

Do / Don't

  • Do: Lift the card ~8px and grow its shadow together, using ~200ms ease-out for a sense of weight.
  • Do: Stagger revealed actions ~60ms apart and anchor them to the card's bottom edge.
  • Do: Scale the image to ~1.05 inside an overflow-hidden frame while the container holds still.
  • Don't: Scale the entire card — it shifts neighboring cards and breaks the grid layout.
  • Don't: Stack action buttons over the title or let them spill outside the card boundary.
  • Don't: Time the lift too fast (twitchy) or too slow (stuck) — 200ms is the sweet spot.

Want Claude to build this correctly?

UX Engine gives Claude Code the senior-designer reasoning behind every pattern.

The Design System Blueprint

An 11-page visual guide to consistent, scalable UI: colors, typography, spacing, components, motion.

Get the Blueprint — free

The PDF, plus emails about new patterns and my tools. Unsubscribe anytime.

Related patterns