Skip to content
GetUrUI

Pricing

5 variantsNewPro
.md

Five pricing sections — AI tiers with usage multipliers, a team calculator, usage-based volume pricing, a two-plan duo with a travelling glow border and a keyboard-driven terminal table — where prices roll digit by digit on every change.

pricingplansbillingcalculatorusage-basedseatssaasaiterminal

AI tiers

ai-tiers.tsx

Free, Pro and Team cards with a billing toggle and usage-multiplier tabs; prices roll and each plan's credit meter grows with the multiplier.

$npx shadcn@latest add @geturui-pro/pricing-blocks-ai-tiers
PropTypeDefaultDescription
plansAiTierPlan[]—{ id, name, tagline, monthly, yearly, credits, fixed?, features, cta?, featured?, badge? }. fixed plans ignore the multiplier.
multipliersUsageMultiplier[]—{ id, label, factor, priceFactor }. Credits scale by factor, price by priceFactor.
defaultBilling"monthly" | "yearly""yearly"Initial billing period.
defaultMultiplierstring—Id of the multiplier selected first.
yearlyNotestring"2 months free"Chip inside the yearly tab.
creditUnitstring"credits / mo"Unit after the credit count.
currencystring"$"Currency prefix.
onSelectPlan(selection: AiTierSelection) => void—Called with plan, billing, multiplier, price and credits.
classNamestring—Classes for the outer section.

Team calculator

team-calculator.tsx

Seat slider, a discount staircase that lights the active tier and add-on switches feeding a receipt whose total rolls digit by digit.

$npx shadcn@latest add @geturui-pro/pricing-blocks-team-calculator
PropTypeDefaultDescription
seatPricenumber18Price per seat per month before discounts.
minSeats / maxSeats / defaultSeatsnumber1 / 150 / 32Slider range and starting value.
tiersCalculatorTier[]—{ from, discount, label? } ascending by from. Drawn as the staircase.
addOnsCalculatorAddOn[]—{ id, label, description?, perSeat, defaultOn? } shown as switches.
yearlyDiscountnumber0.15Extra fraction off when billed yearly.
defaultYearlybooleantrueStart on yearly billing.
ctastring"Start a 14-day trial"Button label under the total.
onQuote(quote: TeamQuote) => void—Called with seats, billing, add-ons and monthly total.
classNamestring—Classes for the outer section.

Usage slider

usage-slider.tsx

Usage-based pricing: drag a volume slider over log-spaced stops while graduated price bands fill and the monthly estimate rolls.

$npx shadcn@latest add @geturui-pro/pricing-blocks-usage-slider
PropTypeDefaultDescription
unitstring"events"Plural unit name.
stopsnumber[]—Snap points for the slider, ascending; spread them roughly logarithmically.
defaultVolumenumber2500000Starting volume; snaps to the nearest stop.
bandsUsageBand[]—{ upTo, per1k } graduated bands. Use Infinity for the last band; per1k 0 shows Included.
baseFeenumber29Flat platform fee per month.
ctastring"Start sending events"Button label.
onQuote(quote: { volume: number; total: number }) => void—Called when the button is pressed.
classNamestring—Classes for the outer section.

Plan duo

plan-duo.tsx

Two plans side by side; a solid volt glow travels around the featured card's border while a yearly switch rolls both prices.

$npx shadcn@latest add @geturui-pro/pricing-blocks-plan-duo
PropTypeDefaultDescription
plans[DuoPlan, DuoPlan]—{ id, name, audience, monthly, yearly, lead?, features, cta?, featured?, note? }.
defaultYearlybooleantrueStart on yearly prices.
glowDurationnumber6Seconds for the glow to travel once around the featured card.
currencystring"$"Currency prefix.
onSelectPlan(planId: string, yearly: boolean) => void—Called from each plan's button.
classNamestring—Classes for the outer section.

Command deck

command-deck.tsx

Monospaced pricing table for developer tools: arrow keys or j/k move a springy row highlight, B flips billing and Enter writes the CLI command.

$npx shadcn@latest add @geturui-pro/pricing-blocks-command-deck
PropTypeDefaultDescription
plansDeckPlan[]—{ id, name, monthly, yearly, specs, recommended? }. specs keys match columns.
columnsDeckColumn[]—{ key, label, wide? }. wide columns hide on narrow containers.
binstring"forge"CLI name used in the prompt line.
titlestring"pricing.toml"Window title.
defaultYearlybooleanfalseStart on yearly billing.
onConfirm(planId: string, yearly: boolean) => void—Called on Enter or a second click on the active row.
classNamestring—Classes for the outer section.

Install the whole set

Installs every pricing variant at once. Each section above has its own command for a single variant.

Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.

$npx shadcn@latest add @geturui-pro/pricing-blocks

Also installs: Animated Badge, Button, Odometer Number, Range Slider, Switch, Tabs

Accessibility

  • Billing and multiplier toggles are tablists with arrow-key navigation; prices keep their full value in an aria-label while digits roll.
  • Sliders expose role="slider" with aria-valuetext that reads the volume and price, and support arrows, Page Up/Down, Home and End.
  • Every motion beyond a fade (meters, glow border, row highlight, caret) is disabled under reduced motion.

Related