WebberUI

定價試算器

用量滑桿即時試算月費的互動定價區塊,方案自動推薦。

拖動用量滑桿即時試算各方案月費:價格數字以 spring 滾動更新,用量超過門檻時「推薦」徽章自動跳到合適的方案卡並高亮,切換年繳套用折扣,底部費用明細逐項浮現,適合 SaaS 定價頁。

載入預覽⋯

Playground

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

50
8
0.8
<PricingCalculator />

安裝

npx shadcn@latest add https://webberui.com/r/pricing-calculator.json

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

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

npm install motion lucide-react clsx tailwind-merge

使用

import { PricingCalculator } from "@/components/ui/pricing-calculator";

<PricingCalculator
  min={1}
  max={50}
  defaultValue={8}
  yearlyDiscount={0.8}
  tiers={[
    {
      name: "入門",
      description: "小型團隊起步",
      basePrice: 0,
      perUnit: 150,
      upTo: 5,
      features: ["3 個專案", "基本數據分析"],
    },
    {
      name: "專業",
      description: "成長中的團隊",
      basePrice: 600,
      perUnit: 120,
      upTo: null,
      features: ["無限專案", "進階數據分析"],
    },
  ]}
/>

Props

Prop型別預設值說明
tiersPricingTier[]方案設定,依用量門檻由低至高排序
minnumber1滑桿最小用量
maxnumber50滑桿最大用量
stepnumber1滑桿步進值
defaultValuenumber8預設用量
unitLabelstring"席次"用量單位標籤
currencystring"NT$"貨幣符號前綴
yearlyDiscountnumber0.8年繳折扣倍率(0.8 = 8 折)
classNamestring透傳到最外層容器

PricingTier 欄位:

欄位型別說明
namestring方案名稱
descriptionstring一句話方案說明
basePricenumber每月基礎費用
perUnitnumber每單位每月加收費用
upTonumber | null建議用量上限,超過即推薦下一個方案;null 表示無上限
featuresstring[]方案特色清單

可及性

  • 滑桿為原生 input[type="range"],支援鍵盤方向鍵調整,並帶 aria-labelaria-valuetext(含單位)
  • 月繳/年繳切換為 role="group" 內的按鈕,以 aria-pressed 表達目前狀態
  • 每月總計包在 aria-live="polite" 區域,用量或週期變動時輔助科技會播報新價格
  • 使用者系統開啟「減少動態效果」時,價格數字直接跳至最終值,卡片縮放、徽章移動與明細浮現動畫全部停用
  • 裝飾性圖示(Users、Check、Sparkles)皆標記 aria-hidden

On this page