WebberUI

Dither Shader

復古有序抖動(dithering)噪點美學的動態背景。

以 Bayer 矩陣有序抖動把流動的 plasma 場量化成粗顆粒色階,重現復古螢幕的抖動噪點質感。全程 canvas 2D 繪製,無任何 WebGL 依賴。

載入預覽⋯

Playground

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

3
4
1
1
<DitherShader />

安裝

npx shadcn@latest add https://webberui.com/r/dither-shader.json

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

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

npm install motion clsx tailwind-merge

使用

import { DitherShader } from "@/components/ui/dither-shader";

<DitherShader interactive className="h-[320px] w-full rounded-xl">
  <div className="grid h-full place-items-center text-white">Retro</div>
</DitherShader>

levels 設為 2 可得到純雙色的經典抖動;調高 pixelSize 讓像素更粗獷。

Props

Prop型別預設值說明
colorBackstring"#0b1220"暗部顏色(圖樣低點)
colorFrontstring"#38bdf8"亮部顏色(圖樣高點)
pixelSizenumber3每個抖動像素的螢幕尺寸(px),越大越粗獷
levelsnumber4量化色階數,2 為純雙色抖動
speednumber1動畫速度倍率
scalenumber1圖樣頻率,越大波紋越密
interactivebooleanfalse指標附近浮現亮環(僅滑鼠生效)
classNamestring透傳至容器,用於設定尺寸與佈局

可及性

  • 使用者系統開啟「減少動態效果」時,只繪製單一靜態畫格、不啟動動畫迴圈
  • canvas 為純裝飾層,標記 aria-hidden,前景內容照常朗讀

On this page