vanshg
04/12/2023, 4:45 AMTypography
where the only change I want to make different from default is a different Font Family. I'm currently achieving this by copying each text style within MaterialTheme.typopography -- is this the best way to do it? Is there something more concise instead?
val MyCustomFontTypography: Typography
@Composable get() = Typography(
displayLarge = MaterialTheme.typography.displayLarge.copy(fontFamily = epilogue),
displayMedium = MaterialTheme.typography.displayMedium.copy(fontFamily = epilogue),
displaySmall = MaterialTheme.typography.displaySmall.copy(fontFamily = epilogue),
headlineLarge = MaterialTheme.typography.headlineLarge.copy(fontFamily = epilogue),
headlineMedium = MaterialTheme.typography.headlineMedium.copy(fontFamily = epilogue),
headlineSmall = MaterialTheme.typography.headlineSmall.copy(fontFamily = epilogue),
titleLarge = MaterialTheme.typography.titleLarge.copy(fontFamily = epilogue),
titleMedium = MaterialTheme.typography.titleMedium.copy(fontFamily = epilogue),
titleSmall = MaterialTheme.typography.titleSmall.copy(fontFamily = epilogue),
bodyLarge = MaterialTheme.typography.bodyLarge.copy(fontFamily = epilogue),
bodyMedium = MaterialTheme.typography.bodyMedium.copy(fontFamily = epilogue),
bodySmall = MaterialTheme.typography.bodySmall.copy(fontFamily = epilogue),
labelLarge = MaterialTheme.typography.labelLarge.copy(fontFamily = epilogue),
labelMedium = MaterialTheme.typography.labelMedium.copy(fontFamily = epilogue),
labelSmall = MaterialTheme.typography.labelSmall.copy(fontFamily = epilogue),
)
yschimke
04/12/2023, 5:37 AMTypography.copy(TextStyle.() -> TextStyle)
extension method that applies to all styles in one place so you only need to write it once.Albert Chang
04/12/2023, 5:52 AMTypography().run {
Typography(
displayLarge = displayLarge.copy(fontFamily = epilogue),
...
)
}
Simon Hardt
04/12/2023, 7:20 AMwithDefaultFontFamily()
in androidx.compose.material.Typography.kt
- they do the same thingmaiatoday
04/12/2023, 7:46 AMvanshg
04/12/2023, 4:25 PM