WebberUI

Orbiting Circles

沿圓形軌道環繞的圖示/頭像圈,可疊多層軌道、反向與不同轉速。

沿一條圓形軌道等距環繞的圖示或頭像圈。多個實例可疊成內外多層軌道,各自設定半徑、轉速與方向,常用來表現「以核心為中心的技術生態」或整合關係。

載入預覽⋯
npx shadcn@latest add https://webberui.com/r/orbiting-circles.json

Playground

即時調整 props、程式碼片段同步更新——直接試出你要的樣子再複製。

100
20
40
0
<OrbitingCircles />

安裝

npx shadcn@latest add https://webberui.com/r/orbiting-circles.json

或在 components.json 設定 registries 後,改用 @webberui/orbiting-circles 安裝。

使用

children 會沿圓周等距分佈。疊兩個實例即可做出內外雙軌,用 reverse 讓外圈反向、startAngle 錯開節點。

import { OrbitingCircles } from "@/components/ui/orbiting-circles";

<div className="relative flex h-[360px] items-center justify-center">
  <OrbitingCircles radius={62} duration={16} iconSize={34} className="absolute">
    <Github />
    <Twitter />
    <Figma />
  </OrbitingCircles>

  <OrbitingCircles
    radius={122}
    duration={28}
    iconSize={42}
    reverse
    startAngle={20}
    className="absolute"
  >
    <Chrome />
    <Slack />
    <Cloud />
    <Database />
  </OrbitingCircles>
</div>

Props

Prop型別預設值說明
childrenReact.ReactNode沿軌道環繞的元素,會沿圓周等距分佈
radiusnumber100軌道半徑(px)
durationnumber20繞行一圈的時長(秒),越大越慢
reversebooleanfalse反向(逆時針)環繞
iconSizenumber40單一元素的邊長(px)
startAnglenumber0第一個元素的起始角度(度)
pathbooleantrue顯示淡淡的圓形軌道
classNamestring透傳到最外層容器

可及性

  • 使用者系統開啟「減少動態效果」時,元素直接落在軌道上的靜態位置,不做環繞動畫
  • 軌道路徑以 aria-hidden 標記,僅作裝飾

本頁目錄