Conversation
|
""" Walkthrough디자인 시스템의 색상과 타이포그래피 구조가 대폭 리팩토링되었습니다. 기존의 단순 색상 및 폰트 정의 파일이 삭제되고, 피그마 스타일 가이드에 맞춘 다양한 색상 팔레트와 폰트 스타일, 커스텀 테마 시스템이 새롭게 추가되었습니다. Material3 의존성이 제거되고 자체 CompositionLocal 기반 테마가 도입되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant App
participant BitnagilTheme
participant CompositionLocal
participant UIComponent
App->>BitnagilTheme: BitnagilTheme(darkTheme, content)
BitnagilTheme->>CompositionLocal: Provide BitnagilColors, BitnagilTypography
UIComponent->>BitnagilTheme: BitnagilTheme.colors, BitnagilTheme.typography
BitnagilTheme->>UIComponent: Return current colors/typography
Assessment against linked issues
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (3)
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/color/BitnagilColors.kt (1)
65-66: 다크 테마 색상 구현 필요현재
bitnagilColorsLight()와bitnagilColorsDark()가 동일한 색상을 반환하고 있습니다. 다크 테마 지원을 위해서는 별도의 색상 세트가 필요합니다.+// TODO: 다크 테마용 색상 세트 구현 필요 internal fun bitnagilColorsLight(): BitnagilColors = BitnagilColors() internal fun bitnagilColorsDark(): BitnagilColors = BitnagilColors()core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/Type.kt (2)
97-133: 성능 최적화를 위해 속성 캐싱을 고려하세요.각 @composable 속성이 매번 새로운 TextStyle 인스턴스를 생성하므로, 자주 사용되는 스타일들은 캐싱을 통해 성능을 개선할 수 있습니다.
다음과 같이 개선할 수 있습니다:
+@Stable class BitnagilTypography internal constructor( // ... 기존 코드 ) { + private val _headline1BoldCache by lazy { _headline1.copy(fontWeight = FontWeight.Bold) } + private val _headline1MediumCache by lazy { _headline1.copy(fontWeight = FontWeight.Medium) } + private val _headline1RegularCache by lazy { _headline1 } + - val headline1Bold: TextStyle @Composable get() = _headline1.copy(fontWeight = FontWeight.Bold).toDpTextStyle - val headline1Medium: TextStyle @Composable get() = _headline1.copy(fontWeight = FontWeight.Medium).toDpTextStyle - val headline1Regular: TextStyle @Composable get() = _headline1.toDpTextStyle + val headline1Bold: TextStyle @Composable get() = _headline1BoldCache.toDpTextStyle + val headline1Medium: TextStyle @Composable get() = _headline1MediumCache.toDpTextStyle + val headline1Regular: TextStyle @Composable get() = _headline1RegularCache.toDpTextStyle
97-133: 문서화 부족 - KDoc 주석을 추가하세요.타이포그래피 시스템의 각 스타일이 언제 어떻게 사용되어야 하는지에 대한 문서가 부족합니다.
다음과 같이 KDoc을 추가하세요:
+/** + * Bitnagil 디자인 시스템의 타이포그래피 정의 + * + * 이 클래스는 앱 전체에서 사용되는 텍스트 스타일을 정의합니다. + * 각 스타일은 Figma 디자인 시스템에 맞춰 정의되었습니다. + */ @Immutable class BitnagilTypography internal constructor( // ... 기존 코드 ) { + /** 가장 큰 헤드라인 텍스트 스타일 (26dp) */ val headline1Bold: TextStyle @Composable get() = _headline1.copy(fontWeight = FontWeight.Bold).toDpTextStyle + /** 중간 굵기의 헤드라인 텍스트 스타일 (26dp) */ val headline1Medium: TextStyle @Composable get() = _headline1.copy(fontWeight = FontWeight.Medium).toDpTextStyle + /** 일반 굵기의 헤드라인 텍스트 스타일 (26dp) */ val headline1Regular: TextStyle @Composable get() = _headline1.toDpTextStyle
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (9)
core/designsystem/src/main/res/font/pretendard_black.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_extra_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_extra_light.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_light.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_medium.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_regular.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_semi_bold.otfis excluded by!**/*.otfcore/designsystem/src/main/res/font/pretendard_thin.otfis excluded by!**/*.otf
📒 Files selected for processing (8)
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Color.kt(0 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Theme.kt(1 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Type.kt(0 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/color/BitnagilColors.kt(1 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/color/Color.kt(1 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/font/Font.kt(1 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/BitnagilTextStyle.kt(1 hunks)core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/Type.kt(1 hunks)
💤 Files with no reviewable changes (2)
- core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Type.kt
- core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Color.kt
🧰 Additional context used
🧬 Code Graph Analysis (1)
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Theme.kt (1)
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/color/BitnagilColors.kt (2)
bitnagilColorsLight(65-65)bitnagilColorsDark(66-66)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (4)
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/color/Color.kt (1)
29-30: 중복된 색상값 확인 필요
CoolGray7과CoolGray5가 동일한 색상값0xFF0F0F10을 가지고 있습니다. 의도적인 것인지 확인이 필요합니다.디자인 시스템의 색상 스케일에서는 일반적으로 각 단계가 서로 다른 명도를 가져야 합니다. 피그마 스타일 가이드를 다시 확인해 주세요.
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/BitnagilTextStyle.kt (1)
14-43: 우수한 텍스트 스타일 구현밀도 인식 단위 변환과 함께 텍스트 스타일을 잘 캡슐화했습니다. dp와 sp 변환이 적절히 구현되어 있습니다.
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/Type.kt (2)
1-10: 패키지 구조와 임포트가 적절합니다.디자인 시스템의 타이포그래피 패키지 구조가 논리적이고, 필요한 Compose 관련 임포트들이 모두 포함되어 있습니다.
135-135: 컴포지션 로컬이 적절하게 구현되었습니다.BitnagilTypography의 컴포지션 로컬이 올바르게 정의되어 있어 테마 시스템과 통합될 수 있습니다.
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/font/Font.kt
Show resolved
Hide resolved
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/Theme.kt
Show resolved
Hide resolved
core/designsystem/src/main/java/com/threegap/bitnagil/designsystem/typography/Type.kt
Show resolved
Hide resolved
wjdrjs00
left a comment
There was a problem hiding this comment.
토끼가 야무지게 확인해줬네요?!!
textToDp, Sp 둘다 있는게 대응할때 야무진거 같습니다!
바로 머지 고고 👍🏻
[ PR Content ]
피그마에 명시된 스타일 가이드를 구현했습니다.
Related issue
Screenshot 📸
x
Work Description
To Reviewers 📢
Summary by CodeRabbit
New Features
Refactor
Chores