Skip to content

[FE] 코나미 코드 이스터에그 '펫 습격' - #409

Draft
sumi-0011 wants to merge 1 commit into
devfrom
feat/pet-rampage-easter-egg
Draft

sumi-0011 wants to merge 1 commit into
devfrom
feat/pet-rampage-easter-egg

Conversation

@sumi-0011

Copy link
Copy Markdown
Member

💻 작업 내용

어느 페이지에서든 ↑↑↓↓←→←→BA 를 입력하면 펫이 화면 아래에서 튀어나오고, 펫을 누를 때마다 화면 속 블록 하나가 조각나 펫에게 빨려들어갑니다. × 또는 Esc 를 누르면 먹힌 영역이 전부 되돌아옵니다.

주요 변경

  • 모든 페이지에 뜨도록 GlobalComponent 에 오버레이 마운트 (기존 dialog/toast 와 같은 포털)
  • 먹힌 블록은 삭제가 아니라 visibility 만 숨기고 닫을 때 복구 — 파편은 원본 clone + clip-path + WAAPI 라 캔버스 캡처가 필요 없습니다
  • 화면 높이 50% 이하 블록을 만날 때까지 DOM 을 내려가며 대상을 고릅니다. 안 그러면 첫 클릭에 main 전체가 한 번에 사라집니다
  • 애니메이션은 framer-motion 이 아니라 CSS 키프레임입니다. framer 는 rAF 구동이라 탭이 백그라운드일 때 진입 상태(opacity 0)에서 멈춥니다
  • 트리거는 키보드 전용입니다. 모바일 트리거(로고 연속 탭 등)는 오탭 위험 때문에 의도적으로 넣지 않았습니다

📸 스크린샷

펫이 "Git Animals" 로고를 먹는 순간 — 로고가 14조각으로 쪼개져 회전하며 펫 입쪽으로 빨려들어갑니다.

↑↑↓↓←→←→BA 를 입력하면 펫이 화면 아래에서 튀어나오고, 펫을 누를 때마다
화면 안의 블록을 한 입씩 먹는다. 먹힌 블록은 14조각으로 쪼개져 펫 입쪽으로
빨려들어가고, 원본 DOM 은 지우지 않고 visibility 만 숨겨서 X 로 전부 복구한다.

- 파편은 원본 clone + clip-path 삼각형 팬 + WAAPI. 캔버스 텍스처 캡처 불필요
- framer-motion 대신 CSS 키프레임 사용: rAF 구동이라 백그라운드 탭에서
  진입 상태(opacity 0)에 얼어붙는 문제가 있었음
- 한 입 크기(화면 높이 50% 이하) 블록을 찾을 때까지 DOM 을 BFS 로 내려간다.
  안 그러면 첫 클릭에 페이지 전체가 사라짐
- prefers-reduced-motion 이면 애니메이션 없이 숨기기만 한다

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BMdPChPLYGeqjok2W3kbCA
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant