옵티컬 보정

Optical Correction

수치상 같은 크기인데도 원이나 삼각형이 정사각형보다 작아 보이는 착시를 없애려고, 곡선·뾰족 도형을 일부러 살짝 더 크게 그리는 보정.

다른 이름: OvershootOptical sizing
···
html
<div class="wrap">
  <div class="row">
    <svg viewBox="0 0 24 24" width="30%"><rect x="3" y="3" width="18" height="18" rx="2" fill="var(--fg)"/></svg>
    <svg viewBox="0 0 24 24" width="30%"><circle id="ci" cx="12" cy="12" r="9" fill="var(--fg)"/></svg>
  </div>
  <div class="label" id="lbl">same math size — circle looks smaller</div>
</div>
css
.wrap{display:flex;flex-direction:column;align-items:center;gap:12px}
.row{display:flex;gap:clamp(16px,6vmin,40px);align-items:center}
#ci{transform-box:fill-box;transform-origin:center;transition:transform .5s ease}
.label{font-size:11px;color:var(--muted);text-align:center;max-width:85%;line-height:1.5}
js
const ci = document.getElementById('ci');
const lbl = document.getElementById('lbl');
let corrected = false;
function paint() {
  ci.style.transform = corrected ? 'scale(1.09)' : 'scale(1)';
  lbl.textContent = corrected ? 'optically corrected \u2014 circle overshoots ~9%' : 'same math size \u2014 circle looks smaller';
}
paint();
setInterval(() => { corrected = !corrected; paint(); }, 1600);

같은 높이로 그린 정사각형과 원을 나란히 두면, 수치는 똑같은데도 원이 더 작아 보인다. 사람 눈은 꽉 찬 사각형의 네 귀퉁이보다 둥근 윤곽을 "덜 채워진 것"으로 인식하기 때문이다. 삼각형이나 다이아몬드처럼 뾰족한 도형은 이 착시가 더 심해서, 정사각형보다 한참 커야 같은 무게로 보인다.

그래서 원·삼각형·다이아몬드 같은 곡선·뾰족 도형은 정사각형 키라인보다 살짝 오버슈트(overshoot)해서 그린다. 흔히 쓰는 값은 정사각형 기준 4~10% 정도 위아래좌우로 삐져나오게 그리는 것 — 자로 재면 더 크지만 눈으로 보면 나머지 아이콘과 같은 크기로 읽힌다. 애플·구글 아이콘 가이드 모두 이 보정값을 명시해둔다.

수치를 그대로 믿고 오버슈트 없이 그리면, 아이콘 세트에서 원형 아이콘(재생 버튼, 알림, 상태 표시)만 유독 작아 보이는 문제가 생긴다. 반대로 오버슈트를 과하게 주면 이번엔 원이 커 보여서 균형이 깨진다 — 그래서 처음부터 정확한 수치보다 나란히 놓고 눈으로 비교하는 과정이 필요하다.

언제 쓰나

원·삼각형·다이아몬드 같은 곡선/뾰족 도형을 정사각형 베이스 아이콘과 같은 세트에 섞을 때 반드시 확인하세요. 세트 전체를 나열해두고 눈으로 크기를 맞추는 과정이 수치보다 우선입니다.