StealThis .dev

Paywall — Blur-locked premium content

A Northwind Analytics weekly report where premium sections sit behind a CSS-blurred frosted veil and a centered lock card. Traffic stays visible while revenue, retention, and funnel cards render as legible-but-unreadable SVG bar charts and tables underneath the blur. An Unlock with Pro button smoothly removes the blur, swaps masked digits for the real figures, and confirms with a toast, while a Compare plans modal offers Starter, Pro, and Scale tiers with a monthly/annual billing toggle.

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

Code

Blur-locked premium content

A fictional Northwind Analytics weekly report that previews the upsell pattern used by dashboards and reporting tools: the free Visitors metric stays sharp, while Revenue and Conversion tiles show masked digits and the three premium cards — a revenue-by-channel bar chart, a retention cohort chart, and a top-funnels table, all drawn as inline SVG and HTML — sit behind a filter: blur() frosted layer. A centered lock card explains exactly what is hidden and floats above the blur with a soft shadow.

Clicking Unlock with Pro flips an is-unlocked class that animates the blur to zero, fades the overlay out, and swaps every masked value ($••,•••, •.••%) for its real figure via data-real attributes. A toast confirms the reveal, the top-bar plan pill turns Pro, and the unlock button settles into a disabled Unlocked state. The whole transition is a single CSS class flip, so it stays smooth and respects prefers-reduced-motion.

Compare plans opens an accessible dialog (role="dialog", aria-modal, focus trap, Esc-to-close, backdrop click) with Starter, Pro, and Scale tiers, a highlighted Most popular plan, and a monthly/annual segmented toggle that rewrites the prices in place. Choosing Pro or Scale closes the modal and unlocks the report too. Everything is vanilla JS with a small toast() helper, and the layout collapses to a single column down to 360px.

Illustrative UI only — fictional brand, plans, and analytics data. Unlocking is a front-end demo and does not process payments.