diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/AppBottomBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/AppBottomBar.kt index e9f4985c4..561ff3bde 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/AppBottomBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/AppBottomBar.kt @@ -51,8 +51,8 @@ import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.DividerThickness import com.vitorpamplona.amethyst.ui.theme.Size0dp import com.vitorpamplona.amethyst.ui.theme.Size10Modifier -import com.vitorpamplona.amethyst.ui.theme.Size20dp -import com.vitorpamplona.amethyst.ui.theme.Size23dp +import com.vitorpamplona.amethyst.ui.theme.Size24dp +import com.vitorpamplona.amethyst.ui.theme.Size27dp @Composable fun AppBottomBar( @@ -141,8 +141,8 @@ private fun NotifiableIcon( destination: Route, accountViewModel: AccountViewModel, ) { - Box(Modifier.size(Size23dp)) { - val iconSizeModifier = Modifier.size(Size20dp) + Box(Modifier.size(Size27dp)) { + val iconSizeModifier = Modifier.size(Size24dp) val description = stringRes(def.labelRes) Icon( symbol = def.icon, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt index 940990b44..e1c01e032 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -119,6 +119,7 @@ val Size22dp = 22.dp val Size23dp = 23.dp val Size24dp = 24.dp val Size25dp = 25.dp +val Size27dp = 27.dp val Size30dp = 30.dp val Size34dp = 34.dp val Size35dp = 35.dp diff --git a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/icons/symbols/MaterialSymbolPainter.kt b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/icons/symbols/MaterialSymbolPainter.kt index 8854c6d26..64f7cfa29 100644 --- a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/icons/symbols/MaterialSymbolPainter.kt +++ b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/icons/symbols/MaterialSymbolPainter.kt @@ -66,20 +66,22 @@ private class MaterialSymbolPainter( override fun DrawScope.onDraw() { val sizePx = size.minDimension val fontSize = with(density) { sizePx.toSp() } - // TextStyle omits color; we override at draw time so TextMeasurer's cache hits across tints. + // Bake the tint into the measured style. drawText(color = ...) override is unreliable + // across Compose versions when the measured style has Color.Unspecified — falls back to + // Color.Black and produces black-on-black icons. val layout = textMeasurer.measure( text = symbol.glyph, - style = TextStyle(fontFamily = fontFamily, fontSize = fontSize), + style = TextStyle(fontFamily = fontFamily, fontSize = fontSize, color = tint), ) val tx = (size.width - layout.size.width) / 2f val ty = (size.height - layout.size.height) / 2f if (symbol.autoMirror && rtl) { scale(scaleX = -1f, scaleY = 1f, pivot = Offset(size.width / 2f, size.height / 2f)) { - translate(tx, ty) { drawText(layout, color = tint) } + translate(tx, ty) { drawText(layout) } } } else { - translate(tx, ty) { drawText(layout, color = tint) } + translate(tx, ty) { drawText(layout) } } } }