시각적 메타포 슬라이드

Visual Metaphor Slide

추상적인 개념을 문장으로 설명하는 대신, 청중이 이미 아는 형태에 빗대어 한 번에 보여줍니다.

다른 이름: Concept visualizationMetaphor diagram
···
html
<div class="slide" id="slide">
  <span class="badge" id="badge"></span>
  <ul class="bl"><li id="b1"></li><li id="b2"></li><li id="b3"></li></ul>
  <div class="funnel">
    <svg viewBox="0 0 100 70" preserveAspectRatio="none">
      <polygon points="5,5 95,5 70,35 30,35" class="seg s1"></polygon>
      <polygon points="30,35 70,35 58,55 42,55" class="seg s2"></polygon>
      <polygon points="42,55 58,55 53,68 47,68" class="seg s3"></polygon>
    </svg>
    <div class="flabels"><span id="f1"></span><span id="f2"></span><span id="f3"></span></div>
  </div>
</div>
css
.slide{position:absolute;inset:6%;border-radius:clamp(6px,1.6vmin,14px);background:var(--surface);border:1px solid var(--line);padding:7vmin 8vmin}
.badge{position:absolute;top:4%;right:4%;z-index:2;font:800 clamp(10px,2.4vmin,14px)/1 system-ui;padding:.3em .7em;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--accent-2)}
.slide.good .badge{color:var(--accent-3)}
.bl{margin:0;padding-left:1.2em;height:100%;display:flex;flex-direction:column;justify-content:center;gap:6%}
.bl li{font:600 clamp(9px,2.4vmin,13px)/1.4 -apple-system,sans-serif;color:var(--fg)}
.funnel{display:none;height:100%;align-items:center;justify-content:center;gap:8%}
.slide.good .bl{display:none}
.slide.good .funnel{display:flex}
.funnel svg{width:44%;height:82%}
.s1{fill:var(--accent)}
.s2{fill:var(--accent-3)}
.s3{fill:var(--accent-2)}
.flabels{display:flex;flex-direction:column;justify-content:space-between;height:70%}
.flabels span{font:700 clamp(8px,2vmin,11px)/1.2 -apple-system,sans-serif;color:var(--muted)}
js
const el = (id) => document.getElementById(id);
const slide = el('slide');
const L = {
  ko: { badge: ['✕ 문장 설명', '✓ 도형 하나'], b: ['리드 1,000명이 들어온다', '그중 200명만 검증된다', '최종 40명이 고객이 된다'], f: ['리드 1,000', '검증 200', '고객 40'] },
  en: { badge: ['✕ Sentences', '✓ One shape'], b: ['1,000 leads come in', 'Only 200 get qualified', '40 finally become customers'], f: ['1,000 leads', '200 qualified', '40 customers'] },
};
let n = 0;
function render() {
  const good = n % 2 === 1;
  const lang = n % 4 < 2 ? 'ko' : 'en';
  const t = L[lang];
  slide.classList.toggle('good', good);
  el('badge').textContent = good ? t.badge[1] : t.badge[0];
  el('b1').textContent = t.b[0]; el('b2').textContent = t.b[1]; el('b3').textContent = t.b[2];
  el('f1').textContent = t.f[0]; el('f2').textContent = t.f[1]; el('f3').textContent = t.f[2];
}
render();
setInterval(() => { n++; render(); }, 2200);

"리드가 들어와서 그중 일부만 검증되고, 더 적은 수만 고객이 된다"는 문장은 두세 번 읽어야 그림이 그려진다. 같은 내용을 깔때기 모양 하나로 그리면 위에서 아래로 좁아지는 형태 자체가 설명을 대신한다.

데모의 ✕는 이 과정을 세 개의 불릿 문장으로 나열한다. ✓는 실제 깔때기 도형에 세 단계를 얹어서, 형태가 좁아진다는 것 자체가 숫자가 줄어든다는 뜻임을 즉시 전달한다.

체크리스트: 이 메타포가 문화·언어와 무관하게 통하는 보편적 형태인가, 메타포 도형에 라벨을 최소한으로만 얹었는가, 실제 내용과 안 맞는 억지 비유를 쓰고 있지는 않은가.

언제 쓰나

프로세스·깔때기·성장 곡선처럼 형태 자체가 뜻을 담을 수 있는 개념을 설명할 때 씁니다.