Interaction
5/5

Restrained Micro-Interactions

Less fireworks, more quiet confidence. Every animation earns its milliseconds.

Overview

The era of gratuitous animation is over. Restrained micro-interactions use motion as punctuation, not decoration. Each animation serves exactly one purpose: guide attention, confirm an action, or create a moment of delight. The restraint is the point. When everything moves, nothing is special. When a single element shifts 4 pixels on hover with a carefully tuned easing curve, it feels expensive. Durations stay short (150-300ms for feedback, up to 600ms for transitions). Easing curves are custom, never linear or default ease. The goal is motion that feels physical — like objects with mass and friction.

Why It Wins

  • Communicates quality through restraint (less is harder than more)
  • Improves perceived performance by providing instant feedback
  • Creates emotional connection through craft-level attention to detail
  • Does not compete with content for attention

Key Principles

  • 01Every animation must pass the "why does this move?" test
  • 02Durations: 150ms for hover, 300ms for state change, 600ms max for transitions
  • 03Custom cubic-bezier curves only — never use linear or default ease
  • 04Prefer CSS transitions over JS animation libraries for micro-interactions
  • 05Motion should feel physical: deceleration on enter, acceleration on exit

Anti-Patterns

  • Animating everything on hover
  • Long durations that make the interface feel sluggish
  • Bounce/elastic easing on business interfaces
  • Animations that block user interaction

Code Snippet

.cta-button {
  transition: transform 150ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 150ms cubic-bezier(0.22, 1, 0.36, 1);
}
.cta-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.cta-button:active {
  transform: translateY(0);
  transition-duration: 75ms;
}

Libraries

  • CSS Transitions

    Primary tool — no library needed for most micro-interactions

  • Motion

    For React: layout animations and gesture-driven interactions

Performance

low cost

Conversion

positive

Subtle hover feedback on CTAs increases click-through. Loading state animations reduce perceived wait time.

Audience

technicalenterpriseluxurystartup

Accessibility

Respect prefers-reduced-motion. All animations should be CSS-only or use will-change sparingly.

animationmotionrestraintcraftmicro-interaction