From f27668e038c42eb6d14f40cfbc65fdf7304c914e Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 30 Jun 2026 02:40:31 +0900 Subject: [PATCH] =?UTF-8?q?docs(content):=20=EC=BD=98=ED=85=90=EC=B8=A0=20?= =?UTF-8?q?=EB=9E=AD=ED=82=B9=20PRD=EB=A5=BC=20=EB=B3=B4=EC=99=84=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/prd/20260520_콘텐츠랭킹위젯컴포넌트_prd.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/prd/20260520_콘텐츠랭킹위젯컴포넌트_prd.md b/docs/prd/20260520_콘텐츠랭킹위젯컴포넌트_prd.md index 0bca2d30..31523efa 100644 --- a/docs/prd/20260520_콘텐츠랭킹위젯컴포넌트_prd.md +++ b/docs/prd/20260520_콘텐츠랭킹위젯컴포넌트_prd.md @@ -77,6 +77,7 @@ Figma `20:3715`, `20:3718`, `20:3721`, `20:3724` 디자인을 기준으로 콘 - `MediumGrid`: 2위~7위 전용 정사각형 카드다. 2열 배치를 기준으로 콘텐츠명은 `22sp` bold 스타일을 사용한다. - `SmallGrid`: 8위~10위 전용 정사각형 카드다. 3열 배치를 기준으로 콘텐츠명은 `14sp` bold 스타일을 사용한다. - `Horizontal`: 11위 이후 전용 가로형 카드다. 좌측 순위/변동, 중앙 이미지, 우측 콘텐츠명/크리에이터명 영역을 가진다. +- `Horizontal`의 순위 숫자와 rank group은 두 자리 순위(`20` 등)가 잘리지 않도록 고정 폭이 아닌 `wrap_content`를 유지한다. - Figma metadata size는 참고용 비율 확인에만 사용하고, 구현에서 고정 dp 크기로 사용하지 않는다. #### Text Requirements @@ -154,6 +155,7 @@ Figma `20:3715`, `20:3718`, `20:3721`, `20:3724` 디자인을 기준으로 콘 - 1위 카드는 배경 영역과 중앙 콘텐츠 이미지가 분리된 형태를 유지한다. - 2위~7위와 8위~10위는 각각 2열/3열 배치에 맞춰 같은 데이터 계약을 다른 variant로 표시한다. - 11위 이후 카드는 좌측 순위, 중앙 이미지, 우측 텍스트 영역을 가진다. +- 11위 이후 카드의 순위 숫자와 이를 감싸는 rank group은 `wrap_content` 폭을 유지해 `20` 같은 두 자리 순위가 잘리지 않아야 한다. - 이미지 크기는 고정 dp로 박지 않고 row container 폭에서 계산한다. - 정사각형 variant는 계산된 카드 폭과 동일한 높이로 표시한다. - 가로형 variant는 부모 폭을 채우고 Figma 가로형 비율에 맞는 높이를 유지한다. @@ -183,11 +185,16 @@ Figma `20:3715`, `20:3718`, `20:3721`, `20:3724` 디자인을 기준으로 콘 - 차단 관계 상태에서 이미지 블러, 이름 비노출/대체문구, 터치 불가가 모두 적용된다. - 차단 관계 상태에서 1위~10위 카드의 gradient overlay가 유지된다. - 이미지 크기가 고정 dp가 아닌 부모 폭과 row count 기반으로 계산된다. +- 11위 이후 Horizontal variant에서 `rank=20`도 전체 숫자가 표시된다. - 관련 unit test와 Android resource merge/build가 성공한다. +## 11. Verification Log +- 2026-06-29: 후속 요구사항으로 `ContentRankingHorizontalCardView`에서 `20` 순위가 잘리는 문제를 확인했다. 원인은 XML `ll_content_ranking_rank_group` 49dp와 Kotlin의 rank group `49 * scale`, rank `TextView` `48 * scale x 52 * scale` 고정 크기 설정으로 정리했고, Horizontal rank group/rank `TextView`를 `wrap_content`로 유지하는 요구사항을 반영했다. +- 2026-06-29: Horizontal 보정으로 `ll_content_ranking_rank_group`과 `tv_content_ranking_rank`가 모두 `WRAP_CONTENT` 폭/높이를 유지하도록 변경했다. `ContentRankingCardViewTest`에서 `rank=20` 회귀 테스트를 추가했고, `ContentRankingCardViewTest`, `mergeDebugResources`, `compileDebugKotlin`, `ktlintCheck`, `git diff --check`가 통과했다. + --- -## 11. Open Questions +## 12. Open Questions - 서버 응답에 이전 순위, 신규 진입 여부, 차단 관계 여부가 이미 포함되는지 확인이 필요하다. 없으면 API/DTO 확장이 별도 백엔드 협의 항목이다. - Figma `get_design_context` 확인 결과 typography/color/radius 토큰은 본 문서의 `Figma Token Requirements`에 반영했다. - 콘텐츠명 글자 수 제한은 사용자 요구사항에 따라 1위 16자, 2위~10위 8자, 11위 이후 12자로 확정한다.