대기 명단 히어로

Waitlist hero

아직 출시 전인 제품이 이메일만으로 관심을 등록받고, 이미 모인 인원 수로 얼리어답터의 기대를 끌어올리는 히어로.

다른 이름: Pre-launch heroComing soon hero
···
html
<div class="wl">
  <span class="badge">COMING SOON</span>
  <h1>Be first to try it</h1>
  <p>Join the waitlist — we're onboarding in small batches.</p>
  <div class="row">
    <div class="input">you@example.com</div>
    <button>Join waitlist</button>
  </div>
  <div class="proof"><div class="avatars"><i></i><i></i><i></i><i></i></div><span id="count">1,247 people waiting</span></div>
</div>
css
.wl{width:min(90%,560px);display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:clamp(6px,1.4vmin,10px)}
.badge{font-size:clamp(7px,1.3vmin,10px);font-weight:700;letter-spacing:.08em;padding:.3em .9em;border-radius:999px;
  background:color-mix(in oklab,var(--accent-2) 16%,var(--surface));color:var(--accent-2);
  border:1px solid color-mix(in oklab,var(--accent-2) 35%,var(--line))}
.wl h1{margin:0;font-size:clamp(14px,3.6vmin,26px);font-weight:800;letter-spacing:-.01em}
.wl p{margin:0;font-size:clamp(7px,1.4vmin,11px);color:var(--muted)}
.row{display:flex;gap:clamp(4px,1vmin,8px);width:100%;max-width:360px;margin-top:clamp(4px,1vmin,6px)}
.input{flex:1;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface);
  padding:clamp(6px,1.5vmin,10px) clamp(8px,1.8vmin,12px);font-size:clamp(7px,1.4vmin,11px);color:var(--muted)}
.row button{font-size:clamp(7px,1.4vmin,11px);font-weight:700;padding:0 1.2em;border-radius:8px;border:none;
  background:var(--accent);color:#fff}
.proof{display:flex;align-items:center;gap:8px;margin-top:clamp(2px,.8vmin,4px)}
.avatars{display:flex}
.avatars i{width:clamp(12px,2.4vmin,18px);height:clamp(12px,2.4vmin,18px);border-radius:50%;
  border:2px solid var(--bg);margin-left:-6px;background:var(--accent-3)}
.avatars i:first-child{margin-left:0;background:var(--accent)}
.avatars i:nth-child(3){background:var(--accent-2)}
#count{font-size:clamp(6.5px,1.2vmin,9px);color:var(--muted);font-variant-numeric:tabular-nums}
js
const el = document.getElementById('count');
let n = 1247;
setInterval(function () {
  n += Math.floor(Math.random() * 3) + 1;
  el.textContent = n.toLocaleString() + ' people waiting';
}, 1500);

제품이 아직 없거나 초대제로만 쓸 수 있을 때 쓰는 히어로입니다. 일반 히어로와 달리 CTA가 "시작하기"가 아니라 "대기 명단 등록"이고, 대개 이메일 입력창 하나가 버튼과 함께 바로 히어로 안에 들어갑니다.

핵심은 "이미 이만큼 모였다"는 숫자입니다 — "1,247명 대기 중"처럼 실시간으로 늘어나는 카운터나 아바타 스택(겹쳐진 작은 프로필 원)을 두면, 아직 없는 제품인데도 사회적 증거가 생겨 희소성·기대감을 자극합니다.

등록 후 순번이나 초대 예상 시점을 알려주지 않으면 방문자는 등록만 하고 잊어버립니다. 그리고 "대기 명단"이라고 해놓고 실제로는 등록하자마자 바로 쓸 수 있게 해주면(가짜 희소성) 나중에 들통났을 때 신뢰를 크게 잃습니다.

언제 쓰나

제품이 아직 없거나 용량 제한 때문에 단계적으로 열어야 할 때. 제품이 이미 누구나 쓸 수 있는 상태라면 대기 명단은 불필요한 장벽이고 `hero-section`을 그대로 쓰는 게 맞습니다.