`pointerdown`마다 현재 시각을 이전 탭 시각과 비교해서, 그 차이가 350ms 안쪽이면 더블탭으로 인정한다. 이 시간 창(window)이 너무 짧으면 반응이 잘 안 되고, 너무 길면 두 번의 별개 탭이 실수로 좋아요로 처리된다.
인식되면 화면 중앙에 하트를 `scale(0.3) → scale(1.15) → scale(1)`로 튕기듯 키우며 `opacity`를 0으로 서서히 낮춰 사라지게 한다(`@keyframes` 한 번으로 처리). 이미 좋아요 상태라면 취소하지 않고 하트 애니메이션만 다시 재생하는 게 SNS 앱들의 공통된 동작이다.
싱글탭(사진 확대 등 다른 동작)과 공존해야 하면, 첫 탭에서 바로 반응하지 말고 350ms를 기다렸다가 "그 안에 두 번째 탭이 없었다"면 싱글탭으로 처리하는 지연 판정이 필요하다.
언제 쓰나
SNS 피드처럼 사진 위 오버레이 형태의 빠른 반응 액션에 씁니다. 발견하기 어려운 제스처이므로 명시적인 좋아요 버튼과 함께 두세요.