Charcoal UI

Orbit Images

Images orbit a centre on concentric rings, each ring at its own speed and direction. Hovering a ring pauses it and lifts the image under the pointer.

  • Category: Image
  • Licence: Charcoal UI Pro
  • Built with: React 19, Tailwind CSS 4, Motion
  • Dependencies: motion, clsx, tailwind-merge

Examples

Orbit Images

API reference

PropTypeDefaultDescription
imagesstring[]—
ringsnumber2
speednumber20Seconds per revolution of the inner ring.
radiusnumber90Inner ring radius in px; each ring adds the same again.
sizenumber48
childrenReactNode—Sits at the centre.
classNamestring—

About Orbit Images

Orbit Images circles images around a centre on concentric rings, each at its own speed and direction. Hovering a ring pauses it and lifts the image under the pointer.

Orbit Images is an image effect for React 19, styled with Tailwind CSS 4 and animated with Motion. It drops into Next.js, Vite, Remix or Astro through the shadcn CLI as a single file you own.

When to use Orbit Images

  • Community and customer showcases.
  • Team pages.
  • Integration ecosystems.
  • Hero visuals.

How it works

Rings are CSS rotations and images counter-rotate to stay upright.

Images keep their alt text, controls are keyboard operable, and the effect never hides the content it decorates. With prefers-reduced-motion on, it holds still or settles instantly instead of animating.

Customizing Orbit Images

Every prop is documented in the API reference above with its type and default. The ones you will reach for first are listed here.

The Customize panel next to the preview lets you change rings, speed, radius, size live, and the Code tab updates to match, so the snippet you copy already carries your values.

  • images (string[]).
  • rings (number, default 2).
  • speed (number, default 20): Seconds per revolution of the inner ring.
  • radius (number, default 90): Inner ring radius in px; each ring adds the same again.
  • size (number, default 48).

Goes well with Orbit Images

These image pieces share its tokens and motion language, so they sit together on one page without clashing.

  • Parallax Image: A React parallax image that drifts slower than the page as you scroll
  • Pixelate Reveal: A React pixelate reveal: images resolve from chunky pixels to full detail
  • Image Reveal: A React image reveal: a clip-path wipe uncovers the image as it settles
  • Zoom Lens: A React zoom lens: a magnifier follows the pointer over product images
  • Ken Burns: A React Ken Burns slideshow: slow pan and zoom crossfading through images

Install Orbit Images

npx shadcn@latest add @charcoal/orbit-images

Orbit Images is part of Charcoal UI Pro. One seat unlocks all 300 Pro components, 107 landing-page sections and 100 full templates, for every personal and client project, with updates included. Add the @charcoal registry once with your access token, then the command above copies orbit-images.tsx into components/ui and installs clsx, tailwind-merge.

You own the file you install: no runtime package, no lock-in, nothing to keep in sync. Change it however your product needs.

See Charcoal UI Pro pricing · Pro setup

Frequently asked questions

Do the images stay upright as they orbit?
Yes. Each image counter-rotates at the same speed as its ring, so faces and logos never tip over, and hovering a ring pauses it.
How do I install Orbit Images?
Orbit Images is part of Charcoal UI Pro. Add the @charcoal registry to components.json with your access token, then run npx shadcn@latest add @charcoal/orbit-images. It copies orbit-images.tsx into components/ui and installs motion, clsx, tailwind-merge.
Is Orbit Images free for commercial use?
Orbit Images needs a Charcoal UI Pro seat, monthly or a one-time lifetime price. A seat covers unlimited personal and commercial projects, including client work, and every future Pro component.
Does Orbit Images work with Next.js?
Yes. It is a client component for React 19 styled with Tailwind CSS 4, so it works in the Next.js App Router and Pages Router, Vite, Remix and Astro.
Can an AI coding agent install Orbit Images?
Yes. Connect the Charcoal UI MCP server (https://charcoalui.com/mcp) to Claude Code, Cursor or any MCP client; get_component returns Orbit Images's props and get_install_command returns the exact command.

Orbit Images as Markdown · llms.txt