v0.2.4: One UI 9 & Material 3 Expressive UI/UX Redesign

This commit is contained in:
2026-08-20 23:28:51 +00:00
parent 54abc8b535
commit ef55fae424
@@ -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
)
)
/**
* 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
)
}