背景

Lightning

程序生成分支閃電並發光,以 canvas 2D 分形演算法即時繪製暴風雷電背景。

以「線段中點位移」分形演算法程序生成分支閃電,主通道帶白色核心與外層發光暈,週期性擊發並淡出,全程用 2D canvas 繪製、無任何外部相依。

把這個效果裝進你的專案

在專案資料夾執行指令,CLI 會加入原始碼與依賴套件,再依下方使用範例引用元件。

npx webberui@latest add lightning

還沒有專案,或安裝遇到問題?看快速開始 →

Playground

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

2200
6
0.35
編輯中的呼叫預設屬性
<Lightning/>

完整範例包含預覽的排版與資料。先安裝元件,再把範例檔貼入你的專案。

安裝

npx webberui@latest add https://webberui.com/r/lightning.json

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

使用

import { Lightning } from "@/components/ui/lightning";

<Lightning className="flex h-[320px] w-full items-center justify-center rounded-xl">
  <h3 className="text-4xl font-bold text-white">Electrify.</h3>
</Lightning>

容器需要自行給定高度(例如 h-[320px]),閃電會填滿整個容器並把 children 疊在其上。

Props

Prop型別預設值說明
colorstring"#7dd3fc"閃電主色
glowColorstring同 color發光暈色
intervalnumber2200平均擊發間隔(毫秒),實際在 0.6~1.4 倍間隨機
detailnumber6分形細分次數,越大鋸齒越細碎(建議 4~7)
branchDensitynumber0.35分支生成機率 0~1,越大分岔越多
glowbooleantrue是否疊加發光暈
flashbooleantrue擊發瞬間是否讓整個容器閃一下
childrenReactNode—疊在閃電之上的前景內容
classNamestring—透傳到根容器,用來設定高度與佈局

可及性

  • 使用者系統開啟「減少動態效果」時,只繪製一道靜態閃電,不啟動動畫迴圈
  • Canvas 帶 aria-hidden 且 pointer-events-none,純裝飾、不干擾互動與輔助科技
  • 元件離開畫面時會 cancelAnimationFrame 並斷開 ResizeObserver,不留下背景運算