문단의 왼쪽·오른쪽 끝을 모든 글자가 정확히 같은 수직선에 닿도록 정렬해도, 그 줄이 큰따옴표나 하이픈으로 시작·끝나면 눈에는 오히려 안쪽으로 들어간 것처럼 "울퉁불퉁"해 보입니다. 따옴표는 실제 획(잉크)이 글자 폭의 일부만 차지하고 나머지는 여백이기 때문에, 다른 글자들과 같은 좌표에 정렬해도 시각적 무게 중심은 안쪽에 있는 것처럼 느껴집니다.
광학 여백 정렬은 이 문장부호들을 실제 텍스트 상자 경계보다 살짝 바깥으로 밀어내서, 눈이 인식하는 "가장자리"를 다시 가지런하게 맞춥니다. 인쇄 조판에서는 식자공이 손으로 조정해온 오랜 관행이고, 고급 북 디자인·신문 조판에서 흔히 보입니다.
CSS `hanging-punctuation` 속성이 이를 표준화하려 했지만(`first`는 문단 시작의 따옴표를, `last`는 줄 끝의 문장부호를 내보냄) 브라우저 지원이 극히 제한적입니다(주로 Safari). 데모는 `CSS.supports`로 이 속성이 실제로 지원되는지 그 자리에서 확인하고, 지원 여부와 무관하게 `text-indent`를 음수로 주는 수동 트릭으로 효과를 보여줍니다 — 이 수동 방식은 모든 브라우저에서 동작합니다.
언제 쓰나
큰따옴표로 시작하는 인용구, 불릿 목록처럼 문장부호의 시각적 무게가 눈에 띄는 곳에. 일반 UI 텍스트에는 체감 효과가 미미해 생략해도 됩니다.