feat(widget): 콘텐츠 랭킹 위젯을 추가한다

This commit is contained in:
2026-05-20 12:00:23 +09:00
parent 01fea58e4c
commit 36ffbc6cdb
35 changed files with 2365 additions and 39 deletions

View File

@@ -122,6 +122,7 @@ Figma `20:3702`, `20:3709`, `20:3711`, `20:3713` 디자인을 기준으로 크
- `imageUrl`: 카드 이미지 URL.
- `isBlocked`: 내가 차단했거나 나를 차단한 차단 관계 여부.
- UI는 `isBlocked`만 사용하고 차단 방향은 구분하지 않는다.
- 순위 변동 타입은 크리에이터 랭킹 전용 타입이 아니라 콘텐츠 랭킹과 공유하는 공용 `RankingChangeType`을 사용한다.
#### Edge Cases
- 랭킹 데이터가 0개이면 위젯 영역은 표시하지 않거나 호출부의 empty 정책을 따른다.
@@ -156,6 +157,7 @@ Figma `20:3702`, `20:3709`, `20:3711`, `20:3713` 디자인을 기준으로 크
- 기존 프로젝트의 이미지 로딩 방식이 화면별로 Glide/Coil을 함께 사용하므로, 컴포넌트 내부에 특정 이미지 로더를 강제하지 않는 API를 우선한다.
- 차단 관계 이미지 블러는 기존 `kr.co.vividnext.sodalive.common.image.BlurTransformation` 등 기존 blur 구현의 재사용 가능성을 먼저 검토한다.
- `ic_rank_caret_increase`, `ic_rank_caret_decrease`, `ic_rank_caret_stay`, `ic_rank_new` 리소스가 없으면 구현 단계에서 디자인 에셋 추가가 필요하다.
- 기존 `CreatorRankingChangeType``RankingChangeType`으로 rename/move해 크리에이터 랭킹과 콘텐츠 랭킹이 같은 타입을 참조하도록 한다.
---
@@ -176,3 +178,4 @@ Figma `20:3702`, `20:3709`, `20:3711`, `20:3713` 디자인을 기준으로 크
- Figma `get_design_context` 재확인 결과 typography/color/radius 토큰은 본 문서의 `Figma Token Requirements`에 반영했다.
- `rankChangeAmount`가 순위 동일일 때는 숫자 없이 `ic_rank_caret_stay` 아이콘만 표시하는 것으로 확정했다.
- 차단 관계 상태에서 1위~10위 카드의 이름 영역을 숨길 때 gradient 영역은 유지하는 것으로 확정했다.
- 순위 변동 타입은 콘텐츠 랭킹과 같은 데이터이므로 공용 `RankingChangeType`으로 사용하는 것으로 확정했다.