Skip to content

Pricing Table — Three Plans

Studio / Team / Agency with a monthly-yearly toggle that re-prices all three in place — the popular plan glows but never blocks the other two.

660
MIT licensev1.0.01.4 KB gzipzero dependenciesby Motif Studioadded 2026-09-09review due 2026-12-08
Live playground — drag, click, hoversandboxed previewsample copy

pricing · three plans

monthlyyearly −20%
Studio$0/mofor solo tinkerers
  • 120 original assets
  • MIT licensed
  • community updates
popularTeam$24/mofor shipped products
  • everything in Studio
  • design tokens + Figma
  • priority support
  • team seat: 5
Agency$64/mofor client work
  • everything in Team
  • unlimited seats
  • white-label license

the popular plan glows but never blocks the other two — a billing toggle re-prices all three in place with a single state.

Ambience
vibes

Ambience is a live light wash over the preview. Full palette re-theming of every demo arrives with Theme Studio (Pro).

deps: zeroJSX + TailwindMIT · original
pricing-table-three.tsx
// React — billing state drives every price
const [yearly, setYearly] = useState(false);
{plans.map(pl => (
  <article className={pl.pop ? "card pop" : "card"}>
    <h3>{pl.name}</h3>
    <p className="price">${yearly ? pl.priceY : pl.priceM}<small>/mo</small></p>
    <ul>{pl.feats.map(f => <li>{f}</li>)}</ul>
    <button>{pl.priceM === 0 ? "Start free" : "Choose " + pl.name}</button>
  </article>
))}
// yearly flag is a single state; prices are data, never strings

Snippet provenance

lines 1–11 · v1.0.0
v1.0.0Motif Studio2026-09-09the only version the catalog records for this asset

No changelog entry mentions “Pricing Table — Three Plans”, so the catalog records a single version for it.

Every line above is attributed to the single version this catalog records — we keep no per-line history, so no per-line attribution is invented. See the provenance page for the rule and the gaps.

Review notes · anchored to code lines

Threads attach to a line number in this asset's snippet, so a remark about the focus trap stays next to it.

demo · stored in this browser

Loading notes…

The snippet on this page is 11 lines long, so anchors run 1–11. Notes are per-asset and per-browser; a shared review thread is a server feature, and this panel is the local stand-in that proves the anchoring works.

Design notes from the studio

Why it works — Pricing is the one page where hesitation is expensive; three equal-weight plans plus a clear popular option answer the 'which one' question in one glance.

The idea — A yearly toggle that re-prices everything from one state beats two side-by-side tables — the comparison happens in place.

When to skip it — Don't bury the free plan or fake-urgent the popular one; if the free tier is the real product, give it the glow.

Dependency-aware copy: zero packages to install — paste and run. All markup is original Motif UI content (MIT).

Course rail — understand it before you ship it

Theme Studio preview

Theming example — two token themes

Assets are token-driven (100% design-token driven). Here the same scene runs under two theme presets from the token sheet.

Midnight / violet

pricing · three plans

monthlyyearly −20%
Studio$0/mofor solo tinkerers
  • 120 original assets
  • MIT licensed
  • community updates
popularTeam$24/mofor shipped products
  • everything in Studio
  • design tokens + Figma
  • priority support
  • team seat: 5
Agency$64/mofor client work
  • everything in Team
  • unlimited seats
  • white-label license

the popular plan glows but never blocks the other two — a billing toggle re-prices all three in place with a single state.

--accent 262 · dark surfaces

Bone / amber

pricing · three plans

monthlyyearly −20%
Studio$0/mofor solo tinkerers
  • 120 original assets
  • MIT licensed
  • community updates
popularTeam$24/mofor shipped products
  • everything in Studio
  • design tokens + Figma
  • priority support
  • team seat: 5
Agency$64/mofor client work
  • everything in Team
  • unlimited seats
  • white-label license

the popular plan glows but never blocks the other two — a billing toggle re-prices all three in place with a single state.

--accent 40 · paper surfaces

90-second read

Usage recipe — where this fits

Assemble it between your own header and footer — sections are the middle of the page, where information architecture lives.

Swap the demo copy for real content first, then reduce: cut decorative blocks until the section survives on its information alone.

belongs in sectionsclick behaviour

Cost honesty

Performance note

1.4 KB gzipone-time layouttext and cards paint once; the cost is in image weight and font loading, not the structure.

Cheaper alternative — the minimal variant drops the decorative layers and keeps the content hierarchy.

What it needs

Browser support strip

CSS Gridflexboxcustom propertiescontainer queries (optional)all evergreen browsers

No polyfills ship with the asset — if a listed feature is missing in a target browser, the graceful fallback is the static layout.

prefers-reduced-motion

Reduced-motion fallback

This asset is not motion-first, so reduced-motion mainly affects its decorative extras (reveals, hovers). The content layer never depends on motion to be readable.

Pressable step-through

Keyboard walk demo

Step through what a keyboard user experiences with this asset.

1

Tab into the section via the skip link or heading anchor

Auto-suggested

Composition map — what pairs well

One original micro-case

Inspiration context

The pricing page that stopped lying

A pricing section with three tiers and no indication of which one people actually chose produced analysis paralysis. Adding one honest 'most chosen' chip — not a fake 'popular' badge, but a real count — lifted conversions by 8% and cut support questions about tier differences.

Written in-house — no screenshots, no borrowed imagery. The pattern, not the pixels.

Every version, why

Changelog — this asset

v1.0.02026-09-09

Current release — this page documents the asset as shipped.

v1.0.02026-08-18

Token pass: colours and radii moved to the design-token sheet; a11y score raised to the current bar.

v0.1.02026-07-02

Initial release to the library — original markup, MIT licensed.

30-day sparkline

Copy history

660copies this month

Sample series from this asset's usage fingerprint · last 12 days shown.

Future queue

Community remixes

Queue opens after launch. Remixes arrive as alternate versions of this asset — same job, different voice — submitted by users and audited by the studio before they appear beside the original.

0 remixes yetaudited by studiocredit + link back to the remixer

Star / favourite

Save this asset

Your collection is stored in this browser (localStorage) — no account needed.

Build a page around it

Pairs well with a prompt

This asset belongs inside a bigger build — here is the prompt that would generate a page containing it:

Print-inspired web — a magazine spread that scrolls

Editorial spread · Folio rules · Ink logic

featured

Exact tree

Bundled dependencies — disclosed

pricing-table-three.tsx0.5 KB raw · ~1 KB gzip
(no runtime dependencies)the CSS ships with the snippet

Full snippet ≈ 0.9 KB raw, ~1 KB gzip — before any framework you already load.

Download

Export as single file

Grab the asset as one file, ready to paste into your project.

Files are generated in your browser from the snippets on this page — nothing leaves the tab.

Scale, not clutter

Sizing system — three densities

Density is a token decision, not a per-page override — pick one density per product surface and hold it. Active: Default.

Runnable copy

Open in a sandbox

Opens this asset in a new tab with its stylesheet injected — a real, editable HTML document in your browser. No account, no upload.

If the tab is blocked, use the single-file export instead — same content, saved locally.

Written version first

Tutorial transcript

This asset does not have a video yet — so the written version stands in: the code line walk below narrates the snippet line by line, and the design rationale on this page explains the default decisions. When a video ships, this exact panel hosts its full transcript.

video: not yettranscript: line walk belowformat: markdown, searchable

Annotated snippet

Code line walk

The lines that matter, with the reason they matter. Click one:

Trade-off, visible

Size vs. quality slider

~2 KB~6 KB~12 KB

Standard · CSS + hover states

~6 KB

adds transitions, focus-visible and reduced-motion rules

The slider is honest: the slim tier has no JS, the pro tier pays for behaviour. Start slim, upgrade only the surfaces that need it.

HTML → React, priced

Stack-switch cost note

Taking the HTML/CSS version into a React component costs real work — and the cost is predictable:

Event wiring

Hover, focus and click become handlers — the CSS stays, the state appears.

Props for the knobs

Every inline value that should vary becomes a prop with a default — the defaults must match the CSS exactly.

The estimate

A clean port of this asset is 20–45 minutes for a React developer — the 465-character stylesheet is the easy half.

Find it the way you say it

Tag synonyms

pricingplans · billing · tierstoggleswitch · checkbox · statesearch resolves all of these to this asset

When to pick which

Sibling comparison

Data table — data table
ComparePricing Table — Three PlansAurora Hero SectionBento Studio Grid
KindSectionsSectionsSections
Bundle1.4 KB gzip6.2 KB gzip5.5 KB gzip
a11y96/10097/10096/100
Dependenciesnonenonenone
Copies / mo6604,8603,960
Interactionsclickscroll, hoverhover

The honest verdict — Pricing Table — Three Plans is the lighter default here; reach for Aurora Hero Section when its extra weight buys an interaction this one lacks.

Read next — two guides and a prompt

picked by tag overlap, not by hand

How these three were chosen: essays scored on shared tags (1 and 0 matches), then prompt scored on block/vibe overlap (1 matches). The rule lives in src/lib/spine.ts, so the same asset always links to the same three pages and a second reader can reproduce the choice.

Was this helpful?