피츠의 법칙

Fitts's Law

타깃까지의 거리가 멀고 크기가 작을수록 도달 시간이 길어진다는 법칙. 버튼은 가깝고 크게.

다른 이름: Fitts LawTarget acquisition
···
html
<div class="stage">
  <div class="pane"><div class="tag">A</div>
    <div class="target sm" id="t1"></div>
    <div class="cur" id="c1">➤</div>
    <div class="bar"><div class="fill f1"></div></div>
  </div>
  <div class="pane"><div class="tag">B</div>
    <div class="target lg" id="t2"></div>
    <div class="cur" id="c2">➤</div>
    <div class="bar"><div class="fill f2"></div></div>
  </div>
</div>
css
.stage{width:94%;height:88%;display:flex;gap:4%}
.pane{position:relative;flex:1;border-radius:14px;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.tag{position:absolute;top:8px;left:10px;font:700 11px/1 monospace;color:var(--muted);z-index:3}
.target{position:absolute;border-radius:50%;background:var(--accent-2)}
.sm{width:10%;height:14%;top:10%;right:8%}
.lg{width:34%;height:40%;top:16%;left:20%}
.cur{position:absolute;font-size:16px;color:var(--fg);transform:rotate(-45deg);left:8%;bottom:6%}
.bar{position:absolute;left:8%;right:8%;bottom:8%;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.fill{height:100%;background:var(--accent);width:0}
.f1{animation:grow 2.6s cubic-bezier(.3,0,.6,1) infinite}
.f2{animation:grow 1.1s cubic-bezier(.3,0,.6,1) infinite}
@keyframes grow{0%{width:0}70%{width:100%}100%{width:100%}}
#c1{animation:c1move 2.6s ease-in-out infinite}
#c2{animation:c2move 1.1s ease-out infinite}
@keyframes c1move{0%{left:8%;bottom:6%}30%{left:40%;bottom:60%}45%{left:55%;bottom:30%}70%{left:83%;bottom:74%}100%{left:83%;bottom:74%}}
@keyframes c2move{0%{left:8%;bottom:6%}70%{left:45%;bottom:44%}100%{left:45%;bottom:44%}}

심리학자 폴 피츠(Paul Fitts)가 1954년 인간의 운동 수행을 연구하며 정식화했습니다. 타깃에 도달하는 시간은 거리(D)에 비례하고 타깃 크기(W)에 반비례합니다 — 멀고 작을수록 느리고 실수가 잦아집니다.

UI에서는 "자주 누르는 버튼일수록 크고 가깝게, 화면 모서리는 무한히 큰 타깃(커서가 더 못 가니까 멈춘다)"으로 응용됩니다. macOS의 메뉴바가 화면 맨 위에 붙어있는 것도 이 때문입니다.

데모에서 A는 멀고 작은 타깃, B는 가깝고 큰 타깃입니다. 같은 동작인데 도달 시간(막대)이 다릅니다.

언제 쓰나

모바일 하단 탭바, 자주 쓰는 CTA 버튼 크기를 정할 때 떠올리세요. 위험한 동작(삭제)은 반대로 일부러 작고 멀게 둡니다.