Overview
Idle wiggle is a timing pattern, not a mascot or empty-state domain. A short transform burst is followed by a long rest so the object asks for attention without constant motion. The rest period is as important as the wiggle itself: without it, the pattern becomes noise instead of a soft nudge.
When to use it
Use it for non-critical reminders, empty states, onboarding affordances, retry hints, and small affordances that may otherwise be missed. It is strongest when the user is idle or scanning, not actively typing or reading. Avoid it near text input, reading flows, high-frequency dashboards, or anything that might be mistaken for an error shake.
How it works
A single keyframe holds the neutral state for most of its duration, then runs a small rotate or translate burst around a tuned transform-origin. The transform origin should match the object: a hanging tag pivots from the top, a card might lift from center, and a small icon can use a scale pulse.
Production gotchas
Low amplitude matters. Large wiggles feel like errors or shake feedback, and constant loops become irritating quickly. Keep controls in the inspector tied to amplitude, rest length, and origin only if they visibly affect the loop; otherwise the UI implies configurability that the animation does not actually have.
Accessibility
The wiggle is decorative feedback. The same message or action needs visible text, a reachable control, or a clear state outside the motion. Reduced motion should freeze the object while preserving any call to action, and the loop should stop once the user has acted or dismissed the nudge.
References