WebberUI

Gradient Shine Text

流動漸層文字疊加週期掃光,純 CSS keyframes,深淺色自適應。

載入預覽⋯

Playground

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

6
<GradientShineText />

安裝

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

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

純 CSS 實作,無執行期動畫依賴,只需 cn 工具的兩個套件。安裝後,從 registry JSON(/r/gradient-shine-text.jsonfiles[0].content)複製 gradient-shine-text.tsx 原始碼到你的 components/ui/ 目錄:

npm install clsx tailwind-merge

使用

import { GradientShineText } from "@/components/ui/gradient-shine-text";

<GradientShineText
  text="Beautiful by default."
  className="text-4xl font-bold"
/>

// 自訂漸層色與週期,或關閉掃光
<GradientShineText colors={["#0ea5e9", "#34d399"]} duration={8} shine={false}>
  漸層流動,也支援中文。
</GradientShineText>

Props

Prop型別預設值說明
textstring要呈現的文字(與 children 擇一)
childrenReactNode自訂內容,優先於 text
colorsstring[]內建三色漸層漸層色依序排列,會自動首尾相接以無縫循環
durationnumber6一輪流動週期(秒),掃光在每輪前段掃過一次
shinebooleantrue是否疊加週期性掃過的高光帶
asReact.ElementType"span"渲染的元素標籤
classNamestring附加樣式(字級、字重等在此設定)

細節

  • 純 CSS 動畫@keyframes 由元件內嵌 <style> 注入,安裝到任何專案都不需修改 Tailwind 設定或全域 CSS,也沒有 hydration 閃爍問題
  • 無縫循環:流動漸層自動首尾同色,每輪位移正好一個圖寬,background-repeat 下循環無接縫
  • 掃光層:第二層 no-repeat 的窄幅高光帶疊在漸層上,每輪前 45% 掃過一次,其餘時間停在畫面外
  • 深淺色模式:預設配色以 --wb-gst-* CSS 變數定義(以 :where 壓低特異度),.dark 下自動換成亮色系,也可直接用 colors 完全自訂

可及性

  • 文字是真實 DOM 文字(background-clip: text 只影響上色),螢幕閱讀器照常朗讀、可搜尋可選取
  • 使用者系統開啟「減少動態效果」時停止動畫,顯示靜態漸層(掃光停留在畫面外不可見)

On this page