feat(ui): 캐러셀 인디케이터 규칙 정리와 이미지 확대뷰 개선 - #110
Merged
Merged
Conversation
한 화면에 이미지가 여러 장 걸쳐 보이는 캐러셀(peek)은 점 하나가 어느 이미지를 가리키는지 알 수 없어 규칙상 인디케이터를 두지 않는다. 같은 모양인 저장된 게시물· 장소 검색 결과는 이미 꺼져 있었고 여기만 켜져 있었다. 점을 감싸던 py-3 가 이미지 아래 여백 노릇을 하고 있었으므로 pb-3 로 대신 채운다.
점이 이미지 수만큼 무한정 늘어나던 것을 최대 6개로 묶는다. 현재 페이지를 7칸짜리 크기 틀 안에 놓고 존재하는 페이지만큼만 좌우로 잘라내며, 작아진 끝 점이 곧 "그쪽에 아직 안 보이는 페이지가 남았다" 는 표시가 된다. 인스타그램 인디케이터처럼 풀사이즈 세 칸 안에서는 점 묶음이 멈춰 있고 세 칸을 벗어날 때만 밀린다. 6칸에 7칸을 다 담을 수 없어 한 칸을 버려야 하는데, 넘어온 쪽 끝을 버려 가려는 방향에 점을 더 남긴다 — 그래서 같은 장이라도 어느 쪽에서 왔는지에 따라 배치가 갈린다. sm(4px)/md(6px) 두 갈래이던 size prop 을 없애고 Default 5 / Small 4 / XSmall 3 한 체계로 합친다. 온보딩도 같은 크기와 색을 쓰며 클릭·좌우 키·터치 영역은 그대로다.
헤더 아래 남은 공간을 기준으로 가운데를 잡고 있어서 사진이 헤더+상태바 높이의 절반만큼 아래로 치우쳐 있었다(실기기 기준 30~36px). 시안은 화면 전체를 기준으로 잡는다. 헤더를 자리 차지하지 않게 띄우고, 사진 래퍼 높이를 이미지 비율로 묶었다. 래퍼 안에서 캐러셀을 띄워 얹어 아래에 붙는 점이 래퍼 높이를 늘리지 못하게 했다 — 점까지 가운데 계산에 들어가면 이번엔 사진이 위로 뜬다.
전체화면 확대뷰라 헤더의 뒤로·닫기 버튼까지 손이 가기 멀다. 끄는 동안 사진이 손가락을 따라 내려가고 배경이 옅어져 뒤 화면이 비치며, 충분히 내리고 놓으면 닫고 못 미치면 제자리로 돌아간다. 포인터가 아니라 터치 이벤트로 판정한다. 확대뷰 안의 캐러셀이 가로 스크롤 컨테이너라, 실기기 에서 손가락을 움직이면 브라우저가 그 제스처를 스크롤로 가져가며 pointercancel 을 보내고 pointerup 을 주지 않는다 — pointerup 에서 판정하면 실기기에서만 닫히지 않는다. 첫 움직임에서 축을 한 번 정하고 바꾸지 않아, 사진을 옆으로 넘기다 손이 내려가도 캐러셀이 제 몫을 갖는다. 손가락이 둘 이상이면 아예 보지 않는다.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
coldbrow
added a commit
that referenced
this pull request
Aug 19, 2026
#110 에서 쓸어내려 닫기를 붙이며 인라인 `translate` 로 끌어내린 거리를 얹었는데, Tailwind 의 `-translate-y-1/2` 도 같은 CSS `translate` 프로퍼티를 쓴다. 인라인이 클래스를 통째로 덮어 세로 가운데 보정이 사라졌고, 사진이 이미지 높이의 절반(375x812 기준 248px)만큼 내려가 아래쪽 89px 이 화면 밖으로 나갔다. 가운데 보정과 끌어내린 거리를 `calc(-50% + Npx)` 한 값으로 합쳐 클래스와 다투지 않게 했다. 같은 화면의 장소 사진 확대뷰는 flex 로 가운데를 잡아 영향이 없었다.
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.
0. 링크
1. 요약
PostImages하단 여백이 28px → 12px 로 16px 줄어듭니다. 티켓이 지정한 값인데 기존 점 블록(py-312 + 점 4 + 12)과 높이가 다릅니다. 의도한 값이 맞는지만 봐주세요.2. 작업 내용
인디케이터 (NOOK-209)
PostImages를indicator={false}로 바꿨습니다.SavedPostCard·PlaceSearchResultDetail은 이미 꺼져 있었고, 풀폭 캐러셀(PlacePhotos·PostImageViewer·PlacePhotoViewer확대뷰·OnboardingCarousel)은 그대로 켜져 있습니다.4/20프레임 기준 4번째 장부터 6개로 늘어납니다.#1f1f1f(gray-100), 비활성#e4e6e9(gray-20) 로 확정했습니다. 점은 기존 구현대로 원이 아니라 사각형이며 시안도 그렇습니다. 온보딩의size="md"를 걷어냈고 클릭·좌우 키·터치 영역은 그대로입니다.CarouselIndicator가 더 이상 순수 함수가 아닙니다. 렌더 중setState(React 파생상태 패턴)를 씁니다. 여기가 리뷰 포인트입니다.이미지 확대뷰 (NOOK-211)
flex-1 items-center가 헤더 아래 남은 공간만 기준으로 삼고 있었습니다. 헤더를 자리 차지하지 않게 띄우고 사진 래퍼 높이를 이미지 비율로 묶었습니다. 캐러셀을 띄워 얹어 아래 점이 래퍼 높이를 늘리지 못하게 했습니다 — 점까지 계산에 들어가면 이번엔 사진이 위로 14px 뜹니다.pointercancel을 보내고pointerup을 주지 않습니다. 처음엔 포인터로 만들었다가 실기기에서만 안 닫히는 걸 확인하고 바꿨습니다.maximum-scale=1.0으로 핀치도 막혀 있어 충돌 지점이 없습니다. 멀티터치는 위와 같이 무시합니다.aspect-[375/495] object-cover고정 박스로 렌더돼 원본 비율과 무관하게 같은 자리에 옵니다. 목업(343×212 SVG)과 실데이터 사진 양쪽에서 확인했습니다.검증
[5] 5 5 4 3→4 5 5 [5] 4 3→3 4 5 5 [5] 4→3 4 5 5 [5]), 뒤로 넘길 때 거울 대칭도 확인.Carousel노출/비노출 2건.pnpm check성공(웹 317개)./dev/ui캐러셀 섹션에 20장짜리 예시를 붙여 동적 동작을 눈으로 볼 수 있게 했습니다.확인하지 못한 것
PostImages하단 12px — 게시물 상세를 실데이터로 띄워 재보지는 못했습니다. 위 요약의 28→12px 판단과 함께 봐주세요.남은 것
onIndexChange를 쓰는 캐러셀이 6장을 넘으면 화면 밖 페이지는 클릭으로 갈 수 없습니다. 지금 쓰는 곳은 온보딩(3장)뿐입니다.