Installation
The registry entry pulls in Motion (motion); the CLI step should install it alongside the component.
Usage
import { BobbingDots } from "@/components/loading-ui/bobbing-dots";<BobbingDots />Customization
BobbingDots mirrors Dots layout: percentage gap, grow dots, and bg-current (inherited foreground). Vertical motion is handled by Motion with a staggered delay per index. Use duration (seconds, default 1) to speed up or slow the bounce without touching the keyframes.
Size
Scale the row with width utilities; larger widths give each dot more room to travel visually.
Color
Three vivid hex swatches, same idea as the blinking Dots showcase.
Duration
Pass duration as a number of seconds. Lower values feel snappier; higher values feel floatier.
Dot count
More dots add rhythm; keep widths generous so the bounce does not feel cramped.
Examples
Mix surfaces so the motion never feels copy-pasted: dashed alerts, sheets with breathing room, tabs with soft gradients, and popovers for micro-delights.
Button
Spacing the label with gap-2 keeps the bounce from colliding with button text.
Badge
Gradient-backed badges sell “play mode” energy without extra illustration.
Sheet
Centered motion plus a sentence of context helps mobile-friendly workflows feel guided.
Tabs
Let one tab hold the hero preview while the other stays lightweight; users can switch without losing the playful loop.
Rendering motion study
Tab away; the bounce keeps looping so the panel feels alive.
Popover
Keep copy short; the dots are the star of this transient surface.