# multiplatform


03/22/2024, 5:13 AM
Trying to use Font otf file as a FontResource using compose1.6.X Getting error like
@Composable invocations can only happen from the context of a @Composable function
Can anyone please help me or share doc from where i can get idea to fix this ? Reference taken from : Thanks

Ben Abramovitch

03/22/2024, 5:30 AM
I haven't implemented it with the new 1.6 way, but that shows it needing to be called from a composable. You could either create the font in a composable function and access it elsewhere or set it up at the top level as a compositionLocal
Copy code
val LocalFont = compositionLocalOf<FontFamily?> {null}
Copy code
fun MainView() {
    val fontFamily = FontFamily(Font(Res.font.yourfont, weight = FontWeight.Bold))

        LocalFont provides fontFamily
    ) {
        Text("hello", fontFamily = LocalFont.currentOrThrow)
You could also just make a composable function that returns it
Copy code
fun someFont(): FontFamily { 
    return FontFamily(Font(Res.font.yourfont, weight = FontWeight.Bold))
Copy code
Text(text = "hello", fontFamily = someFont())
You could maybe apply it to the material theme typography as well if it's an app wide thing, that's created in a composable as well
Copy code
     typography = Typography(defaultFontFamily = FontFamily(Font(Res.font.yourfont)))
 ) {
     Text(text = "hello", style = MaterialTheme.typography.body1, fontWeight = FontWeight.Bold)