버튼 중심과 커서 사이 거리를 매 프레임 계산해서, 일정 반경 안에 들어오면 그 방향으로 `transform: translate()` 값을 조금씩 준다. 거리가 가까울수록 더 많이 끌려가고, 반경을 벗어나면 원래 자리로 돌아온다.
내부 텍스트나 아이콘을 버튼보다 살짝 더 크게 움직이면(예: 버튼은 40%, 텍스트는 18%) 층이 나뉘어 보이는 패럴랙스감이 생긴다. transition은 짧게(0.1~0.2초) 줘야 손끝처럼 즉각 반응하는 느낌이 난다.
반경과 최대 이동 거리를 너무 크게 잡으면 버튼이 화면을 이리저리 튀는 것처럼 보여 산만하다. 보통 반경은 버튼 크기의 1.5~2배, 최대 이동은 버튼 크기의 30~40%를 넘지 않는다.
언제 쓰나
CTA 버튼, 히어로 섹션의 핵심 액션처럼 "여기 눌러주세요"를 강조할 한두 곳에만 씁니다. 목록의 모든 버튼에 적용하면 피로감을 줍니다.