WebberUI

Split Flap Board

Vestaboard 式機械分裂翻牌字元切換,逐格滾動落定,支援多則訊息輪播。

機場/車站看板的機械翻牌效果。每格從當前字元沿字元表一格一格向前翻,翻牌數不同讓各格錯落停定,形成經典的機械揭示波紋。

載入預覽⋯

Playground

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

46
70
45
<SplitFlapBoard />

安裝

npx shadcn@latest add https://webberui.com/r/split-flap-board.json

或在 components.json 設定 registries 後,改用 @webberui/split-flap-board 安裝。

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

npm install motion clsx tailwind-merge

使用

import { SplitFlapBoard } from "@/components/ui/split-flap-board";

<SplitFlapBoard text="ON TIME" />

多則訊息會依 interval 自動輪播:

<SplitFlapBoard
  messages={["DEPARTURES", "NOW BOARDING", "GATE A12"]}
  interval={2600}
  cols={12}
/>

\n 換行可排出多列看板,並用 backgroundcolor 換配色。

Props

Prop型別預設值說明
textstring""顯示文字,支援以 \n 換行;提供 messages 時忽略
messagesstring[]依序循環輪播的多則訊息
intervalnumber2800輪播間隔(毫秒),僅在 messages 多於一則時生效
colsnumber最長行固定欄數;未提供時取所有訊息中最長一行
align"left" | "center""center"每行在欄內的對齊方式
flipDurationnumber70單次翻牌時長(毫秒),越小翻得越快
staggernumber45每往右一欄追加的起翻延遲(毫秒)
sizenumber46單格高度(像素),寬度與字級依此推算
charsetstring字母數字符號可翻到的字元表,首格須為空白
backgroundstring"#161616"翻牌底色
colorstring"#f5f5f4"字元顏色

可及性

  • 使用者系統開啟「減少動態效果」時,翻牌動畫關閉,直接顯示最終字元
  • 看板帶 role="img"aria-label(完整訊息文字),個別翻牌格對輔助科技隱藏(aria-hidden
  • 字元表以偽隨機起翻延遲驅動波紋,取值由座標決定,避免 SSR 與客端 hydration 不一致

On this page