WebberUI

Rainbow Button

彩虹漸層流動動畫按鈕,支援實心與外框兩種樣式與同色系柔光暈染。

一顆會讓彩虹漸層持續橫向流動的按鈕,內建 solidoutline 兩種樣式、可調流速與同色系光暈。

載入預覽⋯

Playground

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

3
<RainbowButton />

安裝

npx shadcn@latest add https://webberui.com/r/rainbow-button.json

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

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

npm install motion clsx tailwind-merge lucide-react

使用

import { RainbowButton } from "@/components/ui/rainbow-button";

<RainbowButton>Get Started</RainbowButton>
<RainbowButton variant="outline">Outline</RainbowButton>

自訂色階與流速:

<RainbowButton
  colors={["#ff4d4d", "#4dd2ff", "#c14dff"]}
  speed={1.5}
>
  Custom
</RainbowButton>

RainbowButton 透傳所有原生 <button> 屬性(onClickdisabledtype 等)。

Props

Prop型別預設值說明
colorsstring[]七色彩虹彩虹色階,尾端自動接回首色成環,至少兩色
speednumber3單次流動循環時長(秒),越小越快
variant"solid" | "outline""solid"solid 填滿漸層;outline 只在邊框與光暈呈現彩虹
glowbooleantrue是否在下方疊加同色系柔光暈染
classNamestring透傳至根 button 的樣式

同時支援全部原生 button 屬性。

可及性

  • 使用者系統開啟「減少動態效果」時,漸層流動會暫停於靜止狀態,仍保留彩虹外觀
  • 焦點時提供清楚的 focus-visible 外框環,鍵盤操作可見
  • 掛載前後渲染一致,避免 SSR hydration 不匹配

On this page