Micro-interactions guide

Input feedback

Button & Form Micro-Interactions

Controls should acknowledge input immediately, make the new state unmistakable, and stay usable with a keyboard or reduced motion. The animation supports the state change; it never becomes the only evidence that anything happened.

Respond quickly
Use roughly 150ms for hover and press feedback.
Preserve state
The control remains understandable after motion ends.
Keep semantics
Start with a real button, input, or checkbox.

Pattern examples

5 ways to communicate the state change

Hover, focus, press, or toggle the specimens. Each recipe keeps the durable state in semantic markup and uses animation as a supporting layer.

01

Toggle switch

Slide a thumb between two resting positions while the track changes color.

Use a real checkbox and keep the checked state available to assistive technology.

transition: transform 200ms ease-out, background-color 200ms ease-out;
03

Animated checkbox

Reveal the check after the box changes state, keeping the confirmation compact.

Pair the visual mark with the native checked property; never animate a decorative box alone.

transition: background-color 150ms ease-out, transform 150ms ease-out;
04

Counter increment

Nudge a value upward after an add action to connect the click with its result.

Announce meaningful total changes in a polite live region when they are not otherwise obvious.

animation: counter-rise 200ms ease-out;
05

Press feedback

Compress a button slightly while it is pressed so pointer input feels tactile.

Keep the scale change subtle and preserve an obvious focus-visible ring.

transition: transform 120ms ease-out;
&:active { transform: scale(.97); }

Implementation check

Ship the fallback with the effect.

Test keyboard focus, touch, reduced motion, slow work, failure, repeated activation, and the final resting state. A robust interaction remains understandable when every transition is removed.

@media (prefers-reduced-motion: reduce) {
  .motion {
    animation: none;
    transform: none;
    transition-duration: 0.01ms;
  }
}

Plan the complete React experience.

Map the components and states around these interactions, then generate the project structure from one visual workspace.

Start planning free

We'd like to use Google cookies to understand how Nodlume is used and to measure our advertising. Nothing loads until you choose, and declining does not affect anything in the app.