diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 9f2e796..c3cd377 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -1111,7 +1111,7 @@ $ flutter test ## 2026-10-22 首页布局对齐修正 -- 一级分类未选 18/w400、选中 20/w700;二级 chips 间距 24、15/w600,并以稳定 AnimatedContainer 切换。 +- 一级分类未选 18/w400、选中 20/w700;二级 chips 间距 10、左右 8、15/w600,并以稳定 AnimatedContainer 切换。 - 四类卡片去底板/描边,封面统一 3:4、8 圆角、行距 10、封底标题间距 6;状态角标为右上角紧凑异形丝带。 - 标题下方恢复左对齐题材文字,使用 `|` 分隔、灰色小字,与封面状态角标保持独立。 - 首页搜索栏到一级、一级到二级、二级到网格间距为 8/8/10;非精选 tab 直接以 10 衔接网格。 diff --git a/lib/core/theme/app_dimens.dart b/lib/core/theme/app_dimens.dart index c7cfd1d..c7ce9c2 100644 --- a/lib/core/theme/app_dimens.dart +++ b/lib/core/theme/app_dimens.dart @@ -109,7 +109,7 @@ abstract final class AppDimens { ); static const double homeSecondaryTagFont = 15; static const double homeSecondaryTagHeight = 26; - static const double homeSecondaryTagHorizontalPadding = 10; + static const double homeSecondaryTagHorizontalPadding = 8; static const double homeSecondaryTagRadius = 13; static const Duration homeSecondaryTagAnimationDuration = Duration( milliseconds: 150, @@ -119,7 +119,7 @@ abstract final class AppDimens { static const double homeSecondaryFilterIcon = 16; static const double homeSecondaryFilterStroke = 1.7; static const double homePrimaryCategoryGap = 24; - static const double homeSecondaryTagGap = 24; + static const double homeSecondaryTagGap = 10; static const double homeSearchTopGap = 0; static const double homeSearchPrimaryGap = 8; static const double homePrimarySecondaryGap = 8; diff --git a/test/home/home_preview_layout_test.dart b/test/home/home_preview_layout_test.dart index f68d3b0..7b5d1cd 100644 --- a/test/home/home_preview_layout_test.dart +++ b/test/home/home_preview_layout_test.dart @@ -176,6 +176,12 @@ void main() { (unselectedTagChip.decoration! as BoxDecoration).color, AppColors.transparent, ); + expect( + unselectedTagChip.padding, + const EdgeInsets.symmetric( + horizontal: AppDimens.homeSecondaryTagHorizontalPadding, + ), + ); final primaryStart = tester.getTopLeft(find.text('Featured')); final pageStart = tester.getTopLeft(searchBox); expect(primaryStart.dx, pageStart.dx);