WebberUI

影片填色文字

文字字腔內填入播放中的背景影片,未給影片時以內建動態漸層自足呈現。

用一段 SVG 文字遮罩把影片(或內建的流動漸層)裁進字腔裡,字放大越粗、露出的影像面積越大,效果越搶眼。

載入預覽⋯

Playground

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

120
900
<VideoText />

安裝

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

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

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

npm install motion clsx tailwind-merge

使用

把元件放進一個有明確高度的有界容器;不指定 src 時會用內建的動態漸層填色。

import { VideoText } from "@/components/ui/video-text";

<div className="relative h-[220px] w-full overflow-hidden rounded-xl bg-neutral-950">
  <VideoText text="WEBBER" className="h-full w-full" />
</div>

要填入真實影片時,傳入 src(建議 muted、loop 的短片):

<VideoText
  text="OCEAN"
  src="/videos/waves.mp4"
  poster="/videos/waves.jpg"
  className="h-full w-full"
/>

Props

Prop型別預設值說明
textstring要填色的文字,建議短字、粗體
srcstringundefined影片來源;未提供時改用內建動態漸層
posterstringundefined靜態影格圖,reduced-motion 或載入前顯示
fontSizenumber容器高度 0.78文字字級(px),未指定時自動縮放
fontWeightnumber | string900字重
fontFamilystring系統字體遮罩字體,建議用系統字體避免缺字
colorsstring[]桃紅/靛藍/青綠內建漸層填色的顏色(無 src 時生效)

可及性

  • 完整文字以 sr-only 提供給輔助科技朗讀,遮罩內容全數 aria-hidden
  • 使用者開啟「減少動態效果」時,影片暫停在第一影格、內建漸層只繪製靜態單格
  • 遮罩 SVG 依容器實際像素生成,字腔與影像 1:1 對齊、不隨縮放變形

On this page