리딩 (행간)

Leading

줄과 줄 사이의 세로 간격. 이름은 활자 인쇄 시대에 줄 사이에 납(lead) 조각을 끼워 넣던 데서 왔습니다.

다른 이름: 행간Line-height
···
html
<div class="stage">
  <p id="p" lang="ko">타이포그래피에서 행간(leading)은 줄과 줄 사이의 세로 간격입니다. Line-height controls how airy or dense a paragraph feels.</p>
  <div class="readout">line-height <span id="val">1.15</span></div>
</div>
css
.stage{width:min(90%,560px)}
p{font-size:15px;line-height:1.15;color:var(--fg);margin:0;font-family:-apple-system,system-ui,"Apple SD Gothic Neo",sans-serif;
  background-image:repeating-linear-gradient(to bottom,transparent,transparent calc(var(--lh-px,17px) - 1px),var(--line) calc(var(--lh-px,17px) - 1px),var(--line) var(--lh-px,17px));
  background-position:0 2px}
.readout{margin-top:14px;font:12px ui-monospace,Menlo,monospace;color:var(--muted)}
#val{color:var(--accent);font-weight:700}
js
const p = document.getElementById('p');
const v = document.getElementById('val');
const fontSize = 15;
const start = performance.now();
function loop(now){
  const t = (now - start) / 2200;
  const lh = 1.15 + (Math.sin(t) * 0.5 + 0.5) * 1.15;
  p.style.lineHeight = lh.toFixed(2);
  p.style.setProperty('--lh-px', (lh * fontSize).toFixed(1) + 'px');
  v.textContent = lh.toFixed(2);
  requestAnimationFrame(loop);
}
requestAnimationFrame(loop);

CSS의 `line-height`가 리딩을 결정합니다. 숫자만 쓰면(예: `1.5`) 현재 글자 크기에 비례하는 배수로 계산되어 반응형에 안전합니다. 리딩이 너무 좁으면(1.0~1.2) 줄들이 서로 엉켜 보이고, 너무 넓으면(2.0 이상) 한 문단인데도 시선이 다음 줄을 찾다 흐름을 잃습니다.

본문 영문은 보통 `1.4~1.6`, 한글은 자모가 조합돼 글자 자체가 라틴 알파벳보다 촘촘해서 같은 리딩 값이어도 더 빽빽해 보입니다. 그래서 한글 본문은 보통 `1.5~1.7`(150~170%)로 라틴보다 살짝 더 여유 있게 잡는 게 실무 관행입니다.

글자 크기가 커질수록(제목) 상대적으로 좁은 리딩(1.1~1.3)이 자연스럽습니다 — 줄이 짧고 한 화면에 들어오는 글자 수가 적기 때문입니다.

언제 쓰나

본문은 1.5 안팎, 한글이 섞이면 1.6 쪽으로. 제목류는 1.1~1.3으로 좁혀 덩어리감을 주세요.