WebberUI

故障文字

RGB 分離與抖動的故障(glitch)文字效果,支援持續播放與滑入觸發。

以 RGB 通道分離、掃描線切片與抖動模擬經典賽博龐克故障文字,純 CSS 動畫、無需字型或外部資源。

載入預覽⋯

Playground

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

2.2
3
<GlitchText />

安裝

npx shadcn@latest add https://webberui.com/r/glitch-text.json

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

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

npm install motion clsx tailwind-merge

使用

import { GlitchText } from "@/components/ui/glitch-text";

<GlitchText text="SYSTEM FAILURE" className="text-5xl font-bold" />

滑入才故障:

<GlitchText text="hover to glitch" trigger="hover" intensity={2} />

Props

Prop型別預設值說明
textstring要顯示的文字
trigger"always" | "hover""always"持續故障或僅滑入時故障
speednumber2.2主故障週期(秒),越小越急促
intensitynumber3RGB 通道水平分離幅度(px)
colorBeforestring"#ff2d75"紅色通道殘影顏色
colorAfterstring"#00e5ff"青色通道殘影顏色
as"span" | "p" | "h1""h6""span"渲染的 HTML 標籤
classNamestring透傳至外層元素

可及性

  • 使用者系統開啟「減少動態效果」時,直接渲染靜態文字,不套用任何抖動或殘影
  • RGB 殘影疊層以 ::before / ::after 產生並標記 pointer-events: none,不影響選取與朗讀
  • 每個實例以 useId() 產生獨立的 keyframes 與類名,多個並存不互相干擾

On this page