커닝

Kerning

특정 글자 쌍(AV, To, We 등) 사이의 간격을 개별적으로 좁히거나 넓히는 것. 전체 자간(트래킹)과는 다릅니다.

다른 이름: 자간 미세조정Letter-pair spacing
···
html
<div class="stage">
  <div class="row">
    <div class="tag">font-kerning: normal</div>
    <div class="wordwrap"><span class="word kern" id="w1">AVATAR</span><div class="caliper" id="c1"></div></div>
    <div class="px"><span id="px1">0</span>px</div>
  </div>
  <div class="row">
    <div class="tag off">font-kerning: none</div>
    <div class="wordwrap"><span class="word nokern" id="w2">AVATAR</span><div class="caliper" id="c2"></div></div>
    <div class="px"><span id="px2">0</span>px</div>
  </div>
</div>
css
.stage{display:grid;gap:18px;justify-items:center}
.row{display:grid;gap:4px;justify-items:center}
.tag{font:10px ui-monospace,Menlo,monospace;color:var(--accent-2)}
.tag.off{color:var(--muted)}
.wordwrap{position:relative;display:inline-block}
.word{display:block;font-family:'Times New Roman',Georgia,serif;font-size:9vmin;font-weight:700;color:var(--fg);white-space:nowrap}
.kern{font-kerning:normal}
.nokern{font-kerning:none}
.caliper{position:absolute;left:0;bottom:-6px;height:2px;background:var(--accent);width:0;animation:measure 2.4s ease-in-out infinite}
.px{font:11px ui-monospace,Menlo,monospace;color:var(--muted)}
@keyframes measure{0%,15%{width:0}55%,100%{width:var(--w,0px)}}
js
const w1 = document.getElementById('w1');
const w2 = document.getElementById('w2');
const c1 = document.getElementById('c1');
const c2 = document.getElementById('c2');
const px1 = document.getElementById('px1');
const px2 = document.getElementById('px2');
function measure(){
  const r1 = w1.getBoundingClientRect().width;
  const r2 = w2.getBoundingClientRect().width;
  c1.style.setProperty('--w', r1 + 'px');
  c2.style.setProperty('--w', r2 + 'px');
  px1.textContent = Math.round(r1);
  px2.textContent = Math.round(r2);
}
requestAnimationFrame(measure);
addEventListener('resize', measure);

A 옆에 V가 오면 두 사선이 서로 파고들 수 있는 여백이 생겨서, 다른 글자 쌍과 똑같은 간격을 두면 그 자리만 헐렁해 보입니다. 커닝은 이런 특정 쌍마다 폰트 제작자가 미리 정해둔 보정값을 적용하는 작업입니다. 좋은 폰트일수록 커닝 쌍 테이블이 촘촘합니다.

웹에서는 브라우저가 기본으로 폰트의 커닝 테이블을 적용합니다(`font-kerning: normal`이 기본값). `font-kerning: none`으로 끄면 AV, TA 같은 쌍이 보정 없이 벌어져 전체 단어 폭이 늘어납니다. 데모에서 같은 "AVATAR"를 두 설정으로 나란히 두고 측정한 픽셀 폭을 비교해 보세요.

로고나 제목처럼 큰 사이즈로 쓰는 텍스트는 커닝이 어색하면 유독 눈에 띄니, 디자인 툴에서 직접 쌍마다 손으로 조정(optical kerning)하기도 합니다.

언제 쓰나

본문 크기에서는 브라우저 기본값(on)을 그대로 두면 됩니다. 로고·와드마크·큰 제목을 픽셀 단위로 다듬을 때만 개별 쌍을 손으로 조정하세요.