From ef55fae424c99e71fa88b8ed21be182d834652f5 Mon Sep 17 00:00:00 2001 From: sanjeok77 <1+sanjeok77@noreply.localhost> Date: Thu, 20 Aug 2026 23:28:51 +0000 Subject: [PATCH] v0.2.4: One UI 9 & Material 3 Expressive UI/UX Redesign --- .../com/hotdeal/alarm/ui/theme/Typography.kt | 159 ++++++++++-------- 1 file changed, 92 insertions(+), 67 deletions(-) diff --git a/app/src/main/java/com/hotdeal/alarm/ui/theme/Typography.kt b/app/src/main/java/com/hotdeal/alarm/ui/theme/Typography.kt index fba9275..061dbca 100644 --- a/app/src/main/java/com/hotdeal/alarm/ui/theme/Typography.kt +++ b/app/src/main/java/com/hotdeal/alarm/ui/theme/Typography.kt @@ -7,133 +7,158 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp /** - * Premium Typography System - * Material You 스타일의 세련된 타이포그래피 + * One UI 9 & Material 3 Expressive Typography System + * 선명한 시각적 위계와 고가독성을 제공하는 타이포그래피 */ val AppTypography = Typography( - // ============================================ - // Display - 대형 헤더 (사용 빈도 낮음) - // ============================================ displayLarge = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.Light, - fontSize = 57.sp, - lineHeight = 64.sp, - letterSpacing = (-0.25).sp + fontWeight = FontWeight.Bold, + fontSize = 40.sp, + lineHeight = 48.sp, + letterSpacing = (-0.5).sp ), displayMedium = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.Light, - fontSize = 45.sp, - lineHeight = 52.sp, - letterSpacing = 0.sp + fontWeight = FontWeight.Bold, + fontSize = 32.sp, + lineHeight = 40.sp, + letterSpacing = (-0.4).sp ), displaySmall = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 36.sp, - lineHeight = 44.sp, - letterSpacing = 0.sp + fontWeight = FontWeight.SemiBold, + fontSize = 26.sp, + lineHeight = 34.sp, + letterSpacing = (-0.3).sp ), - - // ============================================ - // Headline - 중형 헤더 - // ============================================ + headlineLarge = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.SemiBold, - fontSize = 32.sp, - lineHeight = 40.sp, - letterSpacing = 0.sp + fontWeight = FontWeight.Bold, + fontSize = 28.sp, + lineHeight = 36.sp, + letterSpacing = (-0.3).sp ), headlineMedium = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.SemiBold, - fontSize = 28.sp, - lineHeight = 36.sp, - letterSpacing = 0.sp + fontWeight = FontWeight.Bold, + fontSize = 24.sp, + lineHeight = 32.sp, + letterSpacing = (-0.25).sp ), headlineSmall = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.SemiBold, - fontSize = 24.sp, - lineHeight = 32.sp, - letterSpacing = 0.sp + fontSize = 20.sp, + lineHeight = 28.sp, + letterSpacing = (-0.2).sp ), - - // ============================================ - // Title - 화면/섹션 타이틀 - // ============================================ + titleLarge = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.SemiBold, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp + fontWeight = FontWeight.Bold, + fontSize = 20.sp, + lineHeight = 26.sp, + letterSpacing = (-0.2).sp ), titleMedium = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.SemiBold, fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.15.sp + lineHeight = 22.sp, + letterSpacing = (-0.15).sp ), titleSmall = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, + fontWeight = FontWeight.SemiBold, fontSize = 14.sp, lineHeight = 20.sp, - letterSpacing = 0.1.sp + letterSpacing = (-0.1).sp ), - - // ============================================ - // Body - 본문 텍스트 - // ============================================ + bodyLarge = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, - fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp + fontSize = 15.sp, + lineHeight = 22.sp, + letterSpacing = (-0.1).sp ), bodyMedium = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, - fontSize = 14.sp, - lineHeight = 20.sp, - letterSpacing = 0.25.sp + fontSize = 13.sp, + lineHeight = 18.sp, + letterSpacing = (-0.05).sp ), bodySmall = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, fontSize = 12.sp, lineHeight = 16.sp, - letterSpacing = 0.4.sp + letterSpacing = 0.sp ), - - // ============================================ - // Label - 버튼, 칩, 뱃지 등 - // ============================================ + labelLarge = TextStyle( fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 14.sp, - lineHeight = 20.sp, - letterSpacing = 0.1.sp + fontWeight = FontWeight.SemiBold, + fontSize = 13.sp, + lineHeight = 18.sp, + letterSpacing = (-0.1).sp ), labelMedium = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Medium, fontSize = 12.sp, lineHeight = 16.sp, - letterSpacing = 0.5.sp + letterSpacing = 0.sp ), labelSmall = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Medium, fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp + lineHeight = 14.sp, + letterSpacing = 0.sp ) -) \ No newline at end of file +) + +/** + * One UI 9 Text Spotlight 전용 스타일 확장 + */ +object SpotlightTypography { + // 핫딜 가격 초대형 강조 + val priceLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.ExtraBold, + fontSize = 18.sp, + lineHeight = 24.sp, + letterSpacing = (-0.4).sp + ) + + val priceMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 15.sp, + lineHeight = 20.sp, + letterSpacing = (-0.2).sp + ) + + // 사이트 및 카테고리 뱃지 라벨 + val badge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 11.5.sp, + lineHeight = 14.sp, + letterSpacing = (-0.1).sp + ) + + // 상태 요약 캡슐 라벨 + val statusSummary = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.SemiBold, + fontSize = 12.sp, + lineHeight = 16.sp, + letterSpacing = (-0.1).sp + ) +} \ No newline at end of file