FX · Backgrounds

Planets circling concentric orbits behind centred content.

FX
bash
npx shadcn@latest add https://www.rad-ui.com/r/orbit-system.json
React
import OrbitSystem from "@/components/fx/orbit-system" <OrbitSystem className="px-8 py-24"> <h2>Your content</h2> </OrbitSystem>
  • The effect layer is aria-hidden and ignores pointer events; only children are exposed.
  • Pauses offscreen; `paused` stops it on demand (wire it to a visible control if it runs behind reading content).
  • prefers-reduced-motion: reduce (or data-rad-fx-motion="reduce" on an ancestor) freezes each planet at a different point on its orbit.
PropTypeDefaultDescription
color
string
slate, 25%

Orbit line colour.

planets
string[]
sky, violet, pink, amber

Planet colours, innermost first.

speed
number
8

Seconds for the innermost orbit.

paused
boolean
false

Stop the animation. It also pauses offscreen.

...props
ComponentProps<'div'>
—

Passed to the root div; children render above.