StealThis .dev

SaaS — Upgrade / Plan-compare Modal

A centered upgrade dialog that compares the current plan against higher tiers with feature deltas highlighted as gains, a monthly/annual billing toggle, a seat stepper, and a live order summary with a proration note. Opening from a CTA traps focus and supports Esc to dismiss; billing and seat changes recompute totals in real time, and confirming reveals a polished success state listing exactly what the team just unlocked.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Upgrade / Plan-compare Modal

A persuasive-but-honest upgrade flow for a fictional SaaS workspace. The page shell shows a team that has maxed out its Starter seats and projects, with a single CTA that opens a centered, accessible dialog. Inside, three plan cards sit side by side — the current plan, a recommended Pro tier, and Business — with every newly unlocked feature flagged by a coloured gain badge so customers can see precisely what they pay for.

Controls along the top drive a live order summary. A monthly/annual segmented toggle re-prices every card and the totals (annual shows the 20% saving), while a seat stepper lets buyers dial seats up or down with min/max clamping. The summary breaks down the base charge, a proration credit, and the amount due today, plus a plain-language renewal note — no hidden fees, no dark patterns.

Interaction is fully keyboard-friendly: the dialog traps focus, closes on Esc or backdrop click, and restores focus to the trigger. Choosing a plan and confirming runs a short processing state, then swaps to a success view that names the plan, confirms the seat count, and lists the concrete gains the team just unlocked.

Illustrative SaaS UI only — fictional product, metrics, and billing. No real backend.