와이어프레임

Wireframe

레이아웃과 정보 구조만 회색 상자로 표현한 저충실도 초안. 색·타이포·이미지는 아직 정하지 않습니다.

다른 이름: 로파이 와이어프레임Lo-fi wireframe
···
html
<div class="stage">
  <div class="frame" id="frame">
    <div class="badge" id="badge">WIREFRAME</div>
    <div class="nav"><span class="dot"></span></div>
    <div class="hero"><div class="x"></div></div>
    <div class="lines">
      <div class="ln w1"></div>
      <div class="ln w2"></div>
      <div class="ln w3"></div>
    </div>
    <button class="cta" id="cta">Continue</button>
  </div>
</div>
css
.stage{width:76%;height:92%;max-width:320px}
.frame{position:relative;width:100%;height:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);
  padding:7% 7%;box-sizing:border-box;display:flex;flex-direction:column;gap:5%;overflow:hidden}
.badge{position:absolute;top:8px;right:10px;font:700 9px/1 monospace;color:var(--muted);letter-spacing:.04em}
.nav{height:9%;border-radius:4px;background:var(--line);display:flex;align-items:center;padding:0 8px;transition:background .5s}
.dot{width:10px;height:10px;border-radius:50%;background:var(--muted);opacity:.4;transition:.5s}
.hero{position:relative;flex:1;border-radius:6px;background:var(--line);overflow:hidden;transition:background .6s}
.x{position:absolute;inset:0;transition:opacity .5s}
.x::before,.x::after{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--muted)}
.x::before{transform:rotate(21deg)}
.x::after{transform:rotate(-21deg)}
.lines{display:flex;flex-direction:column;gap:8%}
.ln{height:11%;border-radius:3px;background:var(--line);transition:background .5s,opacity .5s}
.ln.w1{width:100%}.ln.w2{width:82%}.ln.w3{width:56%}
.cta{height:14%;border-radius:4px;background:var(--line);border:none;color:transparent;font:700 12px/1 sans-serif;transition:all .5s;display:grid;place-items:center}
.frame.hi .nav{background:var(--surface);box-shadow:inset 0 -1px 0 var(--line)}
.frame.hi .dot{background:var(--accent);opacity:1}
.frame.hi .hero{background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.frame.hi .x{opacity:0}
.frame.hi .ln{background:var(--fg);opacity:.65}
.frame.hi .cta{background:var(--accent);color:#fff;border-radius:20px}
js
const frame = document.getElementById('frame');
const badge = document.getElementById('badge');
let hi = false;
function toggle() {
  hi = !hi;
  frame.classList.toggle('hi', hi);
  badge.textContent = hi ? 'MOCKUP' : 'WIREFRAME';
}
setInterval(toggle, 2200);

와이어프레임은 화면에 무엇이 어디에 있는지만 정하는 도면입니다. 버튼처럼 생긴 회색 상자, 텍스트 자리를 나타내는 선, 이미지 자리를 나타내는 대각선 X — 디자인 결정을 미루고 구조와 우선순위에만 집중하기 위한 장치입니다.

목업(비주얼이 완성된 정지 화면)이나 프로토타입(클릭이 되는 흐름)과 헷갈리기 쉽지만 셋은 목적이 다릅니다. 와이어프레임은 "무엇이 어디에", 목업은 "어떻게 보이는가", 프로토타입은 "어떻게 동작하는가"를 검증합니다. 이 순서를 건너뛰고 바로 고해상도 화면부터 그리면 색상·폰트 같은 지엽적인 논의에 발목이 잡혀 정작 정보 구조에 대한 피드백을 놓치기 쉽습니다.

종이에 손으로 그리는 로파이 와이어프레임부터 정렬까지 맞춘 하이파이 와이어프레임까지 충실도는 선택입니다. 이해관계자와 빠르게 구조를 합의해야 할 때는 손그림이, 개발팀에 넘길 레이아웃 근거로 쓸 때는 정렬된 하이파이 와이어프레임이 유리합니다.

언제 쓰나

화면을 그리기 전, 무엇을 어디에 배치할지 합의가 안 됐을 때 가장 먼저 씁니다. 색상·폰트 피드백이 자꾸 끼어들면 아직 이 단계로 돌아갈 신호입니다.