diff --git a/lib/widgets/common/grid/theme.dart b/lib/widgets/common/grid/theme.dart index e096011b2..4ab591721 100644 --- a/lib/widgets/common/grid/theme.dart +++ b/lib/widgets/common/grid/theme.dart @@ -1,6 +1,7 @@ import 'dart:math'; import 'package:aves/model/settings/settings.dart'; +import 'package:aves/widgets/common/identity/aves_icons.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -21,7 +22,8 @@ class GridTheme extends StatelessWidget { Widget build(BuildContext context) { return ProxyProvider2( update: (context, settings, mq, previous) { - var iconSize = min(24.0, (extent / 5)).roundToDouble(); + final margin = OverlayIcon.defaultMargin.vertical; + var iconSize = min(24.0, ((extent - margin) / 5).floorToDouble() - margin); final fontSize = (iconSize * .7).floorToDouble(); iconSize *= mq.textScaleFactor; final highlightBorderWidth = extent * .1; diff --git a/lib/widgets/common/identity/aves_icons.dart b/lib/widgets/common/identity/aves_icons.dart index e5742d597..a32ec6d71 100644 --- a/lib/widgets/common/identity/aves_icons.dart +++ b/lib/widgets/common/identity/aves_icons.dart @@ -222,13 +222,15 @@ class OverlayIcon extends StatelessWidget { final EdgeInsetsGeometry margin; final Offset? relativeOffset; + static const defaultMargin = EdgeInsets.only(left: 1, right: 1, bottom: 1); + const OverlayIcon({ super.key, required this.icon, this.iconScale = 1, this.text, // default margin for multiple icons in a `Column` - this.margin = const EdgeInsets.only(left: 1, right: 1, bottom: 1), + this.margin = defaultMargin, this.relativeOffset, });