베이스라인

Baseline

대부분의 글자가 "올라서는" 보이지 않는 기준선. g, y, p 같은 디센더만 이 선 아래로 내려갑니다.

다른 이름: 기준선
···
html
<div class="stage">
  <div class="frame" id="frame">
    <div class="guide cap"></div>
    <div class="guide baseline"></div>
    <div class="guide descend"></div>
    <span class="word">Typography</span>
    <div class="dot" id="dot"></div>
  </div>
  <div class="legend"><span><i class="sw cap"></i>cap-height</span><span><i class="sw base"></i>baseline</span><span><i class="sw descend"></i>descender</span></div>
</div>
css
.frame{position:relative;display:inline-block;padding:6px 4px}
.word{font:700 20vmin/1 Georgia,'Times New Roman',serif;color:var(--fg);position:relative;z-index:2}
.guide{position:absolute;left:-6px;right:-6px;height:1px;background:var(--line);z-index:1}
.guide.cap{top:16%}
.guide.baseline{top:78%;background:var(--accent);height:2px}
.guide.descend{top:97%}
.dot{position:absolute;top:78%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--accent-2);z-index:3;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-2) 22%, transparent)}
.legend{margin-top:16px;display:flex;gap:14px;font:11px ui-monospace,Menlo,monospace;color:var(--muted);flex-wrap:wrap;justify-content:center}
.sw{display:inline-block;width:10px;height:2px;margin-right:5px;vertical-align:middle;background:var(--line)}
.sw.base{background:var(--accent)}
js
const frame = document.getElementById('frame');
const dot = document.getElementById('dot');
const start = performance.now();
function loop(now){
  const w = frame.clientWidth;
  const t = ((now - start) / 2600) % 1;
  dot.style.left = (t * w) + 'px';
  requestAnimationFrame(loop);
}
requestAnimationFrame(loop);

베이스라인은 폰트가 정의하는 여러 수평 기준선 중 가장 중요한 것입니다. 대문자·소문자·숫자 대부분이 이 선 위에 올라앉고, 정렬(align-items: baseline)이나 아이콘·텍스트를 나란히 놓을 때도 이 선을 기준으로 맞춥니다.

CSS에서 `vertical-align: baseline`(inline 요소 기본값)이 바로 이 선을 기준으로 정렬합니다. 버튼 안에 아이콘과 텍스트를 나란히 두었는데 살짝 떠 보인다면, 대개 아이콘이 베이스라인이 아니라 박스 중앙에 정렬돼 있어서입니다.

디센더(descender)는 g, j, p, q, y처럼 베이스라인 아래로 내려가는 부분이고, 반대로 어센더(ascender)는 b, d, h, l, k처럼 대문자 높이 이상으로 올라가는 부분입니다.

언제 쓰나

아이콘과 텍스트를 나란히 배치할 때 `vertical-align`이나 flex `align-items: baseline`으로 이 선을 맞추면 "붕 뜬" 느낌이 사라집니다.