Mark
11/08/2025, 9:24 AMFontStyle.Italic on iOS (default device font) it’s an extreme (looks double) level of italic. This happens regardless when using SpanStyle or setting on Text composable. However, when combined with FontWeight.Bold then it looks normal-level italic (same as on Android) with bold weight, as expected. This looks really bad if you have a line of text all in italics but a mix of bold and normal weights. Here you can see the different weights applied to letter “I”. First, is no weight (normal), followed by W100….W900Mark
11/08/2025, 9:28 AMW300 or W500 on iOS gives a more reasonable level of italics without having a big impact on weight. Note: W400 is normal weight and is shown as the first and fifth “I” in the sequence. You can also see that W600 (aka SemiBold) also needs to be avoided.
My workaround is to use expect/actual like this (on iOS):
actual fun FontWeight.ensureItalicSafe(): FontWeight {
return when (this) {
FontWeight.W400 -> FontWeight.W300
FontWeight.W600 -> FontWeight.W500
else -> this
}
}
BTW, this was all run on an iPhone 16e, so I guess might be different on other devices/simulators.