WebberUI

Lanyard Badge

3D 慣性擺盪的識別證吊牌,可拖曳、放開後如單擺自然收斂。

一張掛在吊帶上的識別證,抓住卡片拖曳、放開時會帶著慣性擺盪並逐漸靜止,卡片同時在 Y 軸輕轉呈現 3D 面向感。純 CSS 3D transform 與單擺物理模擬,不依賴 WebGL。

載入預覽⋯

Playground

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

0.24
0.7
<LanyardBadge />

安裝

npx shadcn@latest add https://webberui.com/r/lanyard-badge.json

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

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

npm install motion clsx tailwind-merge

使用

import { LanyardBadge } from "@/components/ui/lanyard-badge";

<LanyardBadge
  name="Ada Lovelace"
  role="Principal Engineer"
  company="WEBBER LABS"
  accent="#6366f1"
/>;

元件會自足撐開一塊有界區域(min-h-[420px]),把它放進你自己的框裡即可;不要用滿版高度包住它。

Props

Prop型別預設值說明
namestring"Ada Lovelace"持證人姓名,同時作為無障礙標籤
rolestring"Principal Engineer"職稱/副標
companystring"WEBBER LABS"卡片頂部機構名稱
accentstring"#6366f1"主題色,套用於吊帶、色帶、頭像與光澤
strapLabelstring"WEBBER · UI ·"吊帶上重複印刷的標語
initialSwingnumber0.24進場初始擺角(弧度),會自然擺盪後靜止
dampingnumber0.7阻尼係數,越小擺盪越久(建議 0.4 ~ 1.2
classNamestring透傳至最外層容器

可及性

  • 使用者系統開啟「減少動態效果」時,吊牌直接垂直靜止,不啟動物理迴圈與拖曳
  • 卡片帶 role="img"aria-label,朗讀時回報姓名與職稱
  • 掛載後才切換 reduced-motion 靜態版,避免 SSR hydration mismatch

On this page