[Feat/#11] 공통 레이아웃(375x812) + Bottom Nav 뼈대 구현 - #12
Merged
Conversation
Figma에서 물품 아이콘 16종, Bottom Nav 선택 상태 아이콘 4종, 스테퍼 아이콘 2종을 내려받아 추가한다
WDS Button(size=small)에 색상만 보정한 대여 신청 버튼 포함 RentalItemCard, Stream 로컬 카테고리 필터 칩, Figma Item Grid 기준 물품 19종 목데이터를 추가한다
WDS BottomNavigation은 iOS 반투명 배경과 body 스크롤 감지 로직이 내부 스크롤 레이아웃과 안 맞아서 대신 Stream 로컬 컴포넌트로 홈/행사/게시판/빌릴게 4탭을 구현한다
Top Navigation·Bottom Nav 고정 + 내부 스크롤 레이아웃(375x812)으로 화면을 조립하고, WDS semantic 변수를 Tailwind 색상 토큰으로 별칭 연결해 하드코딩 hex 없이 쓰도록 한다. 라우팅이 없어 App.tsx가 임시로 이 화면을 직접 렌더링한다
github-actions
Bot
requested review from
jjunh33,
leegain1,
sangrae2325 and
tnals0924
September 8, 2026 03:54
행사 등 다른 화면과 대조해보니 375x812 프레임 비율과 Bottom Nav 외에는 Top Navigation 구성·필터·리스트 등이 화면마다 달라 공통 레이아웃이 아니었다. 빌릴게 전용 컴포넌트(RentalItemCard, RentalCategoryFilter, 목데이터, 물품 아이콘)는 이 브랜치에서 빼고, header/children 슬롯만 받는 ScreenLayout으로 공통 뼈대만 남긴다. 빌릴게 화면 전용 작업은 별도 이슈로 다시 진행한다
BrowserRouter로 감싸 라우팅 기반을 마련한다
RentalListScreen이 자체 375x812/BottomNav 대신 공용 ScreenLayout을 쓰도록 리팩터링하고, HomeScreen을 추가해 '/'와 '/rental' 라우트를 연결한다. Bottom Nav 탭 클릭 시 해당 라우트로 이동하도록 연결한다
jjunh33
approved these changes
Sep 8, 2026
jjunh33
left a comment
Collaborator
There was a problem hiding this comment.
전체적으로 공통 레이아웃의 책임을 375×812 프레임 + Bottom Nav로 한정하고, 화면별 요소는 header / children으로 분리한 것 확인했습니다. WDS BottomNavigation 대신 현재 내부 스크롤 구조에 맞게 로컬 컴포넌트로 구현한 이유도 확인했습니다.
그 외 큰 수정사항은 없어 보입니다!
[Feat/#13] 라우팅 도입 및 빌릴게 화면 라우트 연결
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣연관된 이슈
🎯 해결하려는 문제가 무엇인가요?
화면마다 아이폰 프레임 크기(375×812)와 Bottom Nav를 각자 다시 구현하지 않도록, 모든 화면이 공유하는 레이아웃 뼈대가 필요했다.
❓ 왜 해결해야 하나요?
Figma에서 홈/행사/게시판/빌릴게 화면을 서로 대조해보면, 375×812 프레임 비율과 Bottom Nav 두 가지만 모든 화면에 공통이고 Top Navigation 구성·필터·리스트 등 나머지는 화면마다 다르다. 이 두 가지를 공통 컴포넌트로 미리 빼두면 이후 각 화면을 만들 때 반복 구현을 줄일 수 있다.
⭐ 어떻게 해결했나요?
src/components/ui/ScreenLayout.tsx:header/children슬롯을 받는 고정 크기(375×812) 레이아웃.header(화면마다 다른 Top Navigation 등)와children(화면 본문)은 각 화면이 채우고, 레이아웃 자신은 프레임 비율 고정 + 본문 스크롤 + Bottom Nav 고정만 담당한다.src/components/ui/BottomNav.tsx: 홈/행사/게시판/빌릴게 4탭 Bottom Nav. WDSBottomNavigation은 iOS 반투명 배경과document.body스크롤 감지 로직이 있어 헤더/푸터 고정 + 내부 스크롤 구조와 안 맞아 Stream 로컬로 구현했다.src/index.css: WDS--semantic-*CSS 변수를 Tailwind 색상 토큰으로 별칭 연결(text-label-normal,bg-background-alternative등) — 하드코딩 hex 없이 색을 쓴다.App.tsx는 라우팅 도입 전까지ScreenLayout이 잘 동작하는지 확인하는 임시 데모만 렌더링한다.🧩 이 PR의 한계 & 트레이드오프
ScreenLayout은 아직 실제 화면(빌릴게 등) 하나에도 적용해보지 않은 상태다 — 다음 작업에서 실제로 써보면서 슬롯 설계가 충분한지 검증 필요.⛓️ 기존 기능에 미치는 영향
새 공용 컴포�네트 추가라 기존 코드에 미치는 영향 없음.
🔀 Edge Case & 실패 시나리오
📋 검토한 대안과 선택 이유
ScreenLayout밖에서 각 화면이 직접 조립하는 방식도 검토했으나, 모든 화면에 동일하게 들어가는 요소라 레이아웃 안에 고정해서 실수로 빠뜨리는 일을 방지했다.💬 리뷰 포인트
[c]ScreenLayout의header/children슬롯 설계가 앞으로 나올 화면들(행사, 게시판 등)에도 무리 없이 맞을지