Good–better–best pricing

3단계 가격표

Package features into three tiers so customers can compare clear choices.

···
html
<div class="tiers"><div class="cards"><div data-tier="0"><small>GOOD</small><strong>$19</strong><span>10 projects</span></div><div data-tier="1"><small>BETTER</small><strong>$49</strong><span>50 projects</span></div><div data-tier="2"><small>BEST</small><strong>$99</strong><span>Unlimited</span></div></div><label>PROJECTS NEEDED <b id="need">35</b><input id="work" type="range" min="1" max="90" value="35"></label><p id="recommend">BETTER FITS THIS NEED</p></div>
css
.tiers{width:min(94%,600px);font:800 clamp(10px,max(2vmin,1vw),14px)/1.2 sans-serif}.cards{display:flex;gap:clamp(4px,1.5vmin,10px)}.cards>div{flex:1;min-width:0;padding:clamp(8px,2vmin,15px) 3px;border:2px solid var(--line);text-align:center;background:var(--surface);transition:.3s}.cards>div.on{border-color:var(--accent);box-shadow:0 5px 0 var(--accent);transform:translateY(-5px)}.cards small,.cards span{display:block;color:var(--muted)}.cards strong{display:block;font-size:clamp(20px,5vmin,39px);margin:8px 0;letter-spacing:-.05em}.tiers label{display:block;margin-top:clamp(14px,4vmin,27px)}.tiers label b{float:right;color:var(--accent)}input{display:block;width:100%;accent-color:var(--accent)}p{text-align:center;color:var(--accent);margin:6px 0 0}small{font-size:max(.833em,10px,1vw)}@media(min-width:700px){body>:first-child{transform:scale(1.25);transform-origin:center}}
js
const r=document.querySelector('#work');function draw(){const n=+r.value,t=n<=10?0:n<=50?1:2;document.querySelector('#need').textContent=n;document.querySelectorAll('[data-tier]').forEach((e,i)=>e.classList.toggle('on',i===t));document.querySelector('#recommend').textContent=['GOOD','BETTER','BEST'][t]+' FITS THIS NEED'}r.oninput=draw;draw();setTimeout(()=>{r.value=72;draw()},600);setTimeout(()=>{r.value=35;draw()},2600);

Good–better–best pricing offers basic, standard and advanced packages for different needs. Give each tier a real job instead of assuming the middle one will win.

As usage rises in the demo, the recommended tier moves. Limits and needed features matter alongside the price gap.

Artificially blocking essential functions may create frustration. Check who each tier serves and what it costs to deliver.

When to use

Use when feature needs clearly differ by customer size or usage.

Open as page ↗