Technote

테마 · 플러그인 입문

연재 한글 웹 타이포그래피 8부 중 1부

한글 본문의 행간, 1.5로는 왜 부족한가

웹의 기본 행간은 라틴 알파벳을 기준으로 정해진 값입니다. 한글은 같은 크기에서 글자 안의 획이 더 촘촘하고 받침 때문에 실제 글자 높이도 커서, 같은 1.5가 훨씬 답답하게 읽힙니다.

디자인 시안에서는 멀쩡하던 본문이 실제 화면에서 유난히 답답해 보이는 경험이 있으실 겁니다. 폰트를 바꿔도, 색을 연하게 해도 잘 나아지지 않습니다. 원인이 대체로 한 곳에 있습니다 — 행간입니다.

대부분의 CSS 프레임워크와 테마가 본문 행간으로 1.5 안팎을 씁니다. 이 값이 틀린 값은 아닙니다. 다만 라틴 알파벳을 기준으로 정해진 값이고, 한글은 그 기준에서 두 가지가 다릅니다.

한글 글자 하나에 들어 있는 것

첫째, 획 밀도입니다. 라틴 알파벳은 글자 하나가 획 몇 개로 이루어집니다. 반면 한글은 초성 · 중성 · 종성이라는 자모 두세 개가 글자 한 칸 안에 조립됩니다. 같은 폰트 크기라면 같은 넓이 안에 훨씬 많은 선이 들어간다는 뜻이고, 글자 안쪽의 흰 공간이 그만큼 줄어듭니다. 눈이 글자를 구분하는 데 쓰는 여백이 줄었으니, 바깥 여백인 행간이 그만큼 더 필요합니다.

둘째, 받침입니다. 라틴 소문자는 대부분 x-height 안에서 끝나고 g · p · y 정도만 아래로 내려갑니다. 한글은 받침이 있는 글자와 없는 글자가 섞여 한 줄 안에서 글자의 실제 높이가 계속 달라집니다. 결과적으로 한 줄이 차지하는 세로 폭이 라틴보다 크고, 같은 행간에서 윗줄의 받침과 아랫줄의 글자가 더 가까워 보입니다.

같은 폰트 · 같은 크기라도 행간 한 값이 읽는 경험을 가른다

어디에 어떤 값을 주나

출발점으로 삼을 만한 값은 이렇습니다. 장문 본문은 1.7 이상, 아티클처럼 오래 읽는 화면이면 1.8~1.9까지 올려도 좋습니다. 제목은 1.35 안팎입니다 — 흔한 기본값 1.2는 라틴 대문자 기준이라 두 줄짜리 한글 제목에서 행이 붙어 보입니다. 반대로 버튼 · 배지 · 표의 짧은 라벨은 한 줄이므로 1.2~1.3으로 낮춰야 요소 높이가 불필요하게 커지지 않습니다.

:root {
  --leading-tight:   1.35;  /* 제목 */
  --leading-normal:  1.7;   /* 본문 */
  --leading-relaxed: 1.9;   /* 장문 아티클 */
}

body                { line-height: var(--leading-normal); }
h1, h2, h3, h4      { line-height: var(--leading-tight); }
.button, .badge     { line-height: 1.25; }
article p           { line-height: var(--leading-relaxed); }

값에 단위를 붙이지 않는 것이 중요합니다. line-height: 1.7은 각 요소가 자기 글자 크기에 곱해서 쓰는 비율로 상속되지만, line-height: 27px처럼 단위를 붙이면 계산된 픽셀값이 그대로 상속됩니다. 그러면 본문 안의 작은 캡션이나 큰 인용문에서 행간이 어긋나고, 그 원인을 찾기가 대단히 번거롭습니다.

용도별 행간 — 위로 갈수록 오래 읽는 텍스트다

행간만 올린다고 끝나지 않습니다

행간은 혼자 작동하지 않습니다. 함께 봐야 할 것이 셋 있습니다.

한 줄의 길이가 첫 번째입니다. 줄이 길수록 눈이 다음 줄의 시작을 찾기 어려워지므로 더 큰 행간이 필요합니다. 거꾸로 줄이 짧으면 1.7도 과해 보입니다. 이 관계는 연재 마지막 회차에서 측정폭과 함께 다룹니다.

자간이 두 번째입니다. 한글 본문에 letter-spacing을 음수로 주는 습관이 꽤 퍼져 있는데, 이미 획이 촘촘한 글자를 더 붙이는 일이라 본문에서는 대체로 손해입니다. 자간을 조이는 것은 큰 제목처럼 글자가 커서 사이가 벌어져 보이는 곳에만 쓰는 편이 좋습니다.

본문 색이 세 번째입니다. 연한 회색 본문은 시안에서 세련돼 보이지만, 대비가 낮아지면 같은 행간에서도 글줄이 뭉개져 보입니다. 대비를 충분히 확보한 뒤에 행간을 판단하세요.

테마 기본값을 어디까지 덮어써야 하는지는 테마 · 플러그인 아카이브에 더 정리돼 있고, 운영 중인 사이트의 타이포그래피 · 성능 · 접근성 점수를 한 번에 손보고 싶다면 최적화 지원 사업에 그 작업이 포함됩니다.

다음 회차

행간을 정했으면 그 행간이 곱해질 글자 크기가 남습니다. 다음 회차는 본문 16px이 왜 기준선인지, 그리고 한글에서 그 기준선을 언제 올려야 하는지를 다룹니다.

이 주제의 다른 글

노하우 목록으로

테마 · 플러그인 실무

편집 가능한 영역을 디자인 전에 정합니다

CMS 가 표현할 수 없는 디자인은 배포된 뒤에도 계속 협상 대상으로 남습니다. 어디까지 편집자가 바꿀 수 있는지를 먼저 정하면 그 협상 자체가 사라집니다.

디자이너 3분 읽기

테마 · 플러그인 입문

업데이트가 멈춘 플러그인을 판별하는 기준

마지막 업데이트 날짜 하나로는 방치를 판정할 수 없습니다. 판별 신호 다섯 개를 함께 보고, 대체 불가라면 격리 조건이라도 걸어야 합니다.

기획자 · 운영 · 관리자 2분 읽기

테마 · 플러그인 심화

JS 없이 만드는 상호작용과 그것을 안전하게 하는 규칙

details · :target · :focus-within · :has() · 스크롤 타임라인으로 상당수의 상호작용이 스타일시트 안에서 끝납니다. 안전하게 만드는 규칙은 하나입니다 — 기본값이 완성된 상태여야 합니다.

디자이너 6분 읽기

₩270,000 · 신청하기