[FEAT] UI 피드백 사항 반영 - #12
Conversation
docs/koslink-cover-3d.html의 Three.js 인트로를 React로 포팅해 "/"의 첫 화면으로 연결하고, 기존 뉴스맵/예측검증 화면은 "/app"으로 분리했다. CTA 클릭 시 motion 크로스페이드와 함께 실제 라우팅으로 전환된다. - three r128(CDN) 대비 최신 three의 물리 기반 조명/색 관리 차이로 노드 색상이 탁하게 렌더링되던 문제를 조명 세기 보정 및 색 공간 설정으로 수정 - GNB는 "/app" 라우트 전용으로 이동, "/"는 풀블리드 스플래시로 유지
티어 등장 간격, 성장 시간, 타이틀 등장 시점, 카메라 접근, 파티클 페이드인까지 INTRO_SPEED(0.65) 배율 하나로 함께 압축해 도입부가 상대적 타이밍은 유지한 채 더 빠르게 진행되도록 했다.
관계 그래프(뉴스맵)는 파급 경로만 보여주도록 단순화하고, 내부 토글로 있던 전체 관계망을 뉴스맵 옆 GNB 탭으로 옮겨 3분할 레이아웃이 아닌 화면 전체를 채우는 패널로 보여준다. - GraphCanvas의 mode를 전역 graphModeAtom 대신 화면별 prop으로 전달 (뉴스맵=focus 고정, 신규 NetworkView=all 고정) - 노드 클릭 시 제자리 강조(highlightedNodeAtom)와 뒤로가기 백칩은 NetworkView에서 그대로 유지 - .network 레이아웃은 기존 .map/.verify 컨벤션(카드 패널, 반응형 브레이크포인트)을 그대로 따름
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (13)
📝 WalkthroughWalkthrough3D 관계망 커버 화면을 추가하고, 진입 시 Changes커버 및 앱 관계망 진입
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Visitor
participant CoverScreen
participant Three.js
participant Router
participant AppRoute
Visitor->>CoverScreen: 관계망 탐색하기 클릭
CoverScreen->>Three.js: 진입 애니메이션과 화이트아웃 실행
Three.js-->>CoverScreen: 진입 완료
CoverScreen->>Router: /app 이동 요청
Router->>AppRoute: 앱 화면 렌더링
Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install timed out. The project may have too many dependencies for the sandbox. Comment |
👥 작업 배경 및 목적
🛠️ 주요 변경 사항
커버 화면 도입 + 라우트 분리
src/components/cover/CoverScreen.tsx(신규): docs/koslink-cover-3d.html의 Three.js 인트로(노드 그래프 성장 애니메이션 + 타이틀 리빌 + CTA)를 React로 포팅. 최신 three.js의 색 관리/물리 기반 조명 차이로 원본과 색상이 달라지던 문제를 보정(ColorManagement 비활성화, outputColorSpace 조정, 조명 세기 π 보정), 언마운트 시 WebGL 리소스 정리 추가. 노드 성장~타이틀 등장 타이밍을 INTRO_SPEED 배율로 단축src/components/cover/cover.css(신규): 포팅한 인트로 스타일src/routes/index.tsx: 기존 뉴스맵 화면 → 커버 화면 라우트("/")로 교체. CTA 클릭 시 "/app"으로 라우팅src/routes/app.tsx(신규): 기존 "/"에 있던 뉴스맵/예측검증/GNB 로직 이전src/routes/__root.tsx: 루트 레이아웃 단순화(Outlet만 유지, GNB는 "/app"에서만 렌더링)src/routeTree.gen.ts:pnpm generate-routes재생성 결과package.json,pnpm-lock.yaml:three,motion의존성 추가관계 그래프 구조 개편
src/components/graph/GraphPanel.tsx: 뉴스맵 내 그래프 패널은 파급 경로(focus)만 표시하도록 단순화, 기존 "파급 경로/전체 관계망" 토글 제거.GraphCanvas가 전역 atom 대신modeprop을 받도록 리팩터링src/components/graph/NetworkView.tsx(신규): 전체 관계망을 3분할 레이아웃이 아닌 화면 전체를 채우는 큰 패널로 표시. 노드 클릭 시 제자리 강조 및 "← 전체 보기" 상호작용 유지src/components/Header.tsx: GNB에 "전체 관계망" 탭 추가(뉴스맵/전체 관계망/예측 검증)src/lib/atoms.ts: 더 이상 쓰이지 않는graphModeAtom제거,viewAtom에'network'추가src/styles.css: 기존.map/.verify레이아웃 컨벤션을 따르는.network큰 화면 레이아웃 추가코드 리뷰어가 집중해서 봐야 할 부분:
CoverScreen.tsx의 Three.js 리소스 정리(dispose) 로직,GraphPanel.tsx/NetworkView.tsx의modeprop 분리가 기존 파급 경로 동작에 회귀를 일으키지 않는지🧪 테스트 결과 (선택)
pnpm exec tsc --noEmit,pnpm lint,pnpm build통과CTA 클릭/app 전환, 스킵 버튼, GNB 탭 전환(뉴스맵/전체 관계망/예측검증), 전체 관계망 노드 클릭 강조, 콘솔 에러 없음Summary by CodeRabbit
새로운 기능
/app경로에서 제공하며, 지도·검증·전체 관계망 뷰를 지원합니다.개선 사항