I found a resource how to apply then in Material2
https://pnbharat.medium.com/using-custom-fonts-in-kmp-compose-multiplatform-967220873161
But such solution does not work on Material3 KMP.
It throw error
Caused by: java.lang.IllegalStateException: Unable to load font Font(assetManager, path=font/gilroy_semi_bold.ttf, weight=FontWeight(weight=400), style=Normal) at androidx.compose.ui.text.font.FontListFontFamilyTypefaceAdapterKt.firstImmediatelyAvailable(FontListFontFamilyTypefaceAdapter.kt:195) at androidx.compose.ui.text.font.FontListFontFamilyTypefaceAdapterKt.access$firstImmediatelyAvailable(FontListFontFamilyTypefaceAdapter.kt:1) at androidx.compose.ui.text.font.FontListFontFamilyTypefaceAdapter.resolve(FontListFontFamilyTypefaceAdapter.kt:133) at androidx.compose.ui.text.font.FontFamilyResolverImpl$resolve$result$1.invoke(FontFamilyResolver.kt:93) at androidx.compose.ui.text.font.FontFamilyResolverImpl$resolve$result$1.invoke(FontFamilyResolver.kt:92)
My code
`
val myFontFamily = FontFamily(
Font( Res.font.gilroy_semi_bold)
)
val myTypography = Typography(
displayLarge = MaterialTheme.typography.displayLarge.copy(fontFamily = myFontFamily ),
displayMedium = MaterialTheme.typography.displayMedium.copy(fontFamily = myFontFamily ),
displaySmall = MaterialTheme.typography.displaySmall.copy(fontFamily = myFontFamily ),
headlineLarge = MaterialTheme.typography.headlineLarge.copy(fontFamily = myFontFamily ),
headlineMedium = MaterialTheme.typography.headlineMedium.copy(fontFamily = myFontFamily ),
headlineSmall = MaterialTheme.typography.headlineSmall.copy(fontFamily = myFontFamily ),
titleLarge = MaterialTheme.typography.titleLarge.copy(fontFamily = myFontFamily ),
titleMedium = MaterialTheme.typography.titleMedium.copy(fontFamily = myFontFamily ),
titleSmall = MaterialTheme.typography.titleSmall.copy(fontFamily = myFontFamily ),
bodyLarge = MaterialTheme.typography.bodyLarge.copy(fontFamily = myFontFamily ),
bodyMedium = MaterialTheme.typography.bodyMedium.copy(fontFamily = myFontFamily ),
bodySmall = MaterialTheme.typography.bodySmall.copy(fontFamily = myFontFamily ),
labelLarge = MaterialTheme.typography.labelLarge.copy(fontFamily = myFontFamily ),
labelMedium = MaterialTheme.typography.labelMedium.copy(fontFamily = myFontFamily ),
labelSmall = MaterialTheme.typography.labelSmall.copy(fontFamily = myFontFamily ),
)
MaterialTheme(
colorScheme = appColors,
typography = myTypography
) {
Navigator(HomeScreen()) {
SlideTransition(it)
}
}
}
`
The answer, how to add custom fonts to my KMP Material3 project
Aleksandrs Voznarskis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.