Luca Perullo
Components

Component

LiveNew

Orbiting Circles

Pure CSS. Outer rotate + inner counter-rotate per tenere il child verticale. Reverse opzionale.

LayoutAnimation
Open in ClaudeSorgente

Esempio01

orbiting-circles.tsx
001Default · single orbit
002Multi-orbit · 2 rings
003Path off · invisible track

Note Il container parent deve essere relative + dimensionato. SVG path opzionale (default true) renderizza un cerchio dasharray come riferimento visivo.

Prompt LLM02

Incolla in Claude o ChatGPT per generare la tua variante. Include il contesto del brand, i token e i vincoli del progetto.

Prompt · orbiting-circles
Open in Claude
Sei un senior frontend engineer. Stai lavorando su un sito Next.js 16 + React 19 + Tailwind v4 in italiano, look chanhdai-inspired: colonna stretta 672px, Geist Sans + Geist Mono, hairline 1px, divisori a stripe diagonale, palette zinc.

Token CSS disponibili: --bg, --bg-alt, --fg, --fg-muted, --fg-soft, --border, --border-strong, --accent. Usa SEMPRE queste variabili tramite le utility tailwind generate (bg-bg, text-fg-muted, border-border, ecc.). Helper "cn" da "@/lib/utils". Niente librerie UI extra: solo lucide-react e tailwind-merge.

Genera <OrbitingCircles> per orbitare children attorno al centro.
Props:
- children: ReactNode.
- className?, iconClassName?.
- radius?: number (default 80).
- duration?: number (sec, default 20).
- delay?: number (sec).
- reverse?: boolean.
- path?: boolean (default true).

Implementazione:
- Server component. CSS vars --orbit-radius/duration/delay.
- Wrapper absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 inline-flex items-center justify-center.
- Animation orbit-rotate (or reverse) duration linear delay infinite.
- @keyframes orbit-rotate: from rotate(0) translateY(-radius) rotate(0), to rotate(360) translateY(-radius) rotate(-360) (reverse rotate(-360)/rotate(360)).
- Optional SVG circle dasharray come orbit ring.

Output: file completo src/components/orbiting-circles.tsx.

Uso tipico03

tsx
<div className="relative h-44 w-44">
  <OrbitingCircles radius={70} duration={20}><Icon/></OrbitingCircles>
</div>

Dipendenze04

npm
  • tailwind-merge
  • clsx
Interno
  • @/lib/utils#cn

Ti è servito? Dimmelo, oppure proponi il prossimo componente.