WebberUI

雷達技能圖

多維度雷達圖:進場繪製動畫、hover 頂點數值、雙資料疊比。

以純 SVG 繪製的多維度雷達圖:進場時資料多邊形自中心展開、外框沿邊描繪生長,滑鼠移到頂點會浮出該維度的數值 tooltip,並支援第二組資料半透明疊加對比,適合技能評估、產品比較等敘事場景。

載入預覽⋯

Playground

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

300
100
4
<RadarSkillChart />

安裝

npx shadcn@latest add https://webberui.com/r/radar-skill-chart.json

或在 components.json 設定 registries 後,改用 @webberui/radar-skill-chart 安裝。

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

npm install motion clsx tailwind-merge

使用

import { RadarSkillChart } from "@/components/ui/radar-skill-chart";

<RadarSkillChart
  axes={[
    { label: "React", value: 92 },
    { label: "TypeScript", value: 85 },
    { label: "測試", value: 62 },
    { label: "溝通協作", value: 88 },
  ]}
  series2={[60, 48, 30, 72]}
  seriesLabel="今年"
  series2Label="去年"
/>

Props

Prop型別預設值說明
axesRadarAxisDatum[]各軸資料 { label, value },至少 3 軸,主系列數值內嵌其中
series2number[]第二組數值(半透明疊加對比),順序需與 axes 對齊
seriesLabelstring"系列 A"主系列名稱,雙系列時用於圖例與 tooltip
series2Labelstring"系列 B"第二系列名稱
maxnumber100數值上限,對應最外圈
sizenumber320渲染尺寸(px,寬 = 高)
ringsnumber4同心網格圈數
colorstring"#6366f1"主系列顏色(任何合法 CSS 色值)
color2string"#f59e0b"第二系列顏色
classNamestring透傳到最外層容器

可及性

  • SVG 具描述性 aria-label,完整朗讀每個維度的標籤與各系列數值
  • 每個頂點熱區可鍵盤聚焦(Tab 依序移動),聚焦時同樣顯示 tooltip,並各自帶有朗讀數值的 aria-label
  • 使用者系統開啟「減少動態效果」時,跳過展開與描邊動畫,直接呈現完成圖形
  • hover 對應的軸線與標籤會同步加深,提供額外的視覺對位線索

On this page