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 import androidx.compose.ui.unit.sp
/** /**
* Premium Typography System * One UI 9 & Material 3 Expressive Typography System
* Material You 스타일의 세련된 타이포그래피 * 선명한 시각적 위계와 고가독성을 제공하는 타이포그래피
*/ */
val AppTypography = Typography( val AppTypography = Typography(
// ============================================
// Display - 대형 헤더 (사용 빈도 낮음)
// ============================================
displayLarge = TextStyle( displayLarge = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Light, fontWeight = FontWeight.Bold,
fontSize = 57.sp, fontSize = 40.sp,
lineHeight = 64.sp, lineHeight = 48.sp,
letterSpacing = (-0.25).sp letterSpacing = (-0.5).sp
), ),
displayMedium = TextStyle( displayMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Light, fontWeight = FontWeight.Bold,
fontSize = 45.sp, fontSize = 32.sp,
lineHeight = 52.sp, lineHeight = 40.sp,
letterSpacing = 0.sp letterSpacing = (-0.4).sp
), ),
displaySmall = TextStyle( displaySmall = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal, fontWeight = FontWeight.SemiBold,
fontSize = 36.sp, fontSize = 26.sp,
lineHeight = 44.sp, lineHeight = 34.sp,
letterSpacing = 0.sp letterSpacing = (-0.3).sp
), ),
// ============================================
// Headline - 중형 헤더
// ============================================
headlineLarge = TextStyle( headlineLarge = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.Bold,
fontSize = 32.sp, fontSize = 28.sp,
lineHeight = 40.sp, lineHeight = 36.sp,
letterSpacing = 0.sp letterSpacing = (-0.3).sp
), ),
headlineMedium = TextStyle( headlineMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.Bold,
fontSize = 28.sp, fontSize = 24.sp,
lineHeight = 36.sp, lineHeight = 32.sp,
letterSpacing = 0.sp letterSpacing = (-0.25).sp
), ),
headlineSmall = TextStyle( headlineSmall = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
fontSize = 24.sp, fontSize = 20.sp,
lineHeight = 32.sp, lineHeight = 28.sp,
letterSpacing = 0.sp letterSpacing = (-0.2).sp
), ),
// ============================================
// Title - 화면/섹션 타이틀
// ============================================
titleLarge = TextStyle( titleLarge = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.Bold,
fontSize = 22.sp, fontSize = 20.sp,
lineHeight = 28.sp, lineHeight = 26.sp,
letterSpacing = 0.sp letterSpacing = (-0.2).sp
), ),
titleMedium = TextStyle( titleMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
fontSize = 16.sp, fontSize = 16.sp,
lineHeight = 24.sp, lineHeight = 22.sp,
letterSpacing = 0.15.sp letterSpacing = (-0.15).sp
), ),
titleSmall = TextStyle( titleSmall = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium, fontWeight = FontWeight.SemiBold,
fontSize = 14.sp, fontSize = 14.sp,
lineHeight = 20.sp, lineHeight = 20.sp,
letterSpacing = 0.1.sp letterSpacing = (-0.1).sp
), ),
// ============================================
// Body - 본문 텍스트
// ============================================
bodyLarge = TextStyle( bodyLarge = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 16.sp, fontSize = 15.sp,
lineHeight = 24.sp, lineHeight = 22.sp,
letterSpacing = 0.5.sp letterSpacing = (-0.1).sp
), ),
bodyMedium = TextStyle( bodyMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 14.sp, fontSize = 13.sp,
lineHeight = 20.sp, lineHeight = 18.sp,
letterSpacing = 0.25.sp letterSpacing = (-0.05).sp
), ),
bodySmall = TextStyle( bodySmall = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 12.sp, fontSize = 12.sp,
lineHeight = 16.sp, lineHeight = 16.sp,
letterSpacing = 0.4.sp letterSpacing = 0.sp
), ),
// ============================================
// Label - 버튼, 칩, 뱃지 등
// ============================================
labelLarge = TextStyle( labelLarge = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium, fontWeight = FontWeight.SemiBold,
fontSize = 14.sp, fontSize = 13.sp,
lineHeight = 20.sp, lineHeight = 18.sp,
letterSpacing = 0.1.sp letterSpacing = (-0.1).sp
), ),
labelMedium = TextStyle( labelMedium = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium, fontWeight = FontWeight.Medium,
fontSize = 12.sp, fontSize = 12.sp,
lineHeight = 16.sp, lineHeight = 16.sp,
letterSpacing = 0.5.sp letterSpacing = 0.sp
), ),
labelSmall = TextStyle( labelSmall = TextStyle(
fontFamily = FontFamily.Default, fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium, fontWeight = FontWeight.Medium,
fontSize = 11.sp, fontSize = 11.sp,
lineHeight = 16.sp, lineHeight = 14.sp,
letterSpacing = 0.5.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
)
}