WebberUI

環形軌道時間軸

事件沿同心軌道環繞排列,選中事件展開詳情卡。

以年份為同心軌道(由內而外遞增),事件節點沿弧分佈並緩慢公轉,外圈轉速依距離放慢;點擊節點時全體停轉、中央彈出詳情卡,適合用行星系的隱喻敘述品牌或產品歷程。

載入預覽⋯

Playground

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

40
<OrbitTimeline />

安裝

npx shadcn@latest add https://webberui.com/r/orbit-timeline.json

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

安裝依賴後,從 registry JSON(/r/orbit-timeline.jsonfiles[0].content)複製 orbit-timeline.tsx 原始碼到你的 components/ui/ 目錄:

npm install motion lucide-react clsx tailwind-merge

使用

import { OrbitTimeline } from "@/components/ui/orbit-timeline";

<OrbitTimeline
  events={[
    { year: 2022, title: "種子輪募資", detail: "完成募資,團隊擴編到八人。" },
    { year: 2023, title: "正式上線", detail: "首週登上技術社群熱門榜首。" },
    { year: 2024, title: "元件庫開源", detail: "核心動態元件庫正式開源。" },
  ]}
/>

Props

Prop型別預設值說明
eventsOrbitTimelineEvent[]事件清單,依 year 分組成同心軌道
periodnumber40最內圈公轉一圈所需秒數,外圈依距離逐圈放慢
autoRotatebooleantrue掛載後是否自動開始公轉
hintstring"點擊節點查看詳情"尚未選取事件時中央顯示的提示文字
classNamestring透傳到外層容器

OrbitTimelineEvent 欄位:

欄位型別說明
yearnumber事件年份,相同年份落在同一條軌道
titlestring事件標題,hover 與詳情卡都會顯示
detailstring詳情卡展開的說明文字
huenumber?節點色相 0–360,未提供時依軌道自動配色

可及性

  • 使用者系統開啟「減少動態效果」時停止公轉並隱藏播放鈕,節點以靜態位置呈現,點擊展開詳情不受影響
  • 每個節點皆為 role="button",可以 Tab 聚焦、Enter 或空白鍵開合詳情,並以 aria-pressed 標示選中狀態
  • 節點的 aria-label 包含年份與標題(如「2023 年:正式上線」),詳情卡關閉鈕有明確的 aria-label
  • 元件離開可視範圍時自動暫停 rAF 動畫迴圈,節省效能

On this page