디자인 시안이 나오면 다시 추가한다. Tailwind 제거 이후 퇴장 애니메이션(animate-fade-out)
클래스가 죽어 onAnimationEnd가 영영 발화하지 않았고, 그 결과 markSplashShown()도
setIsVisible(false)도 호출되지 않아 모든 화면 상단에 스플래시가 영구히 남아 있었다.
삭제: app/_components/splash-gate.tsx · components/ui/splash-screen.tsx ·
lib/constants/splash.ts. app/layout.tsx의 inline style/script와 도
함께 걷어냈다.
lib/constants/theme.ts의 주석이 삭제될 splash 상수 파일을 가리키고 있어 그 상호참조만
제거했다. public/images/logo-foxpay-white.svg는 재추가 시 다시 쓰므로 남겨둔다.
(public)/layout.tsx는 AuthCard를 더 이상 감싸지 않으므로 그 설명 주석을 제거한다.
Co-Authored-By: Claude Opus 5
플랫 링크만 지원하던 사이드바에 그룹 헤딩+펼침/접힘 컨테이너(SidebarGroup)를
추가한다. 펼침 상태는 소비처가 소유하는 비제어 프레젠테이션 컴포넌트이며,
IconButton/SidebarLink와 동일하게 'use client' 없이 이벤트 핸들러 prop만 받는다.
Co-Authored-By: Claude Opus 5
display: contents는 CSS 스펙상 대체 요소(svg 루트 포함)에는 적용되지
않고 none으로 계산된다(CSS Display §unbox-generating). svg 자체에
hidden theme-*:contents를 걸면 실제로는 항상 숨겨져 CSS 구동 아이콘
전환이 동작하지 않는다 — 헤드리스 Chrome으로 실측 확인. svg를 감싸는
span에 표시 제어 클래스를 옮겨 해결.
Co-Authored-By: Claude Opus 5