From e46c73a3179436d393894fa4b1f55df320a3d076 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Sat, 10 Oct 2026 04:32:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=A8=20=EC=9C=84=20=EC=A4=84:=20=EC=A7=80?= =?UTF-8?q?=EA=B8=88=20=ED=99=94=EB=A9=B4=20=EB=B2=84=ED=8A=BC=20=EC=95=84?= =?UTF-8?q?=EB=9E=98=20=EB=B0=91=EC=A4=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 파란 아이콘 · 옅은 바탕에 더해 3px 밑줄 - 색만으로 알아보기 어려운 사람도 어디인지 알게 (좁은 · 넓은 화면 모두). batch_test. Co-Authored-By: Claude Opus 5.5 --- lib/ui/app_actions.dart | 18 +++++++++++++++++- test/batch_test.dart | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/ui/app_actions.dart b/lib/ui/app_actions.dart index cafc0ac..808cd71 100644 --- a/lib/ui/app_actions.dart +++ b/lib/ui/app_actions.dart @@ -240,7 +240,22 @@ class AppNavButtons extends StatelessWidget { }; // 좁은 화면 (폰): 아이콘 아래에 짧은 이름 - 글자 없는 작은 아이콘만 늘어서 무엇인지 몰랐던 것 final labels = isCompact(context); - Widget btn(Widget icon, String tip, VoidCallback? f, {bool here = false, String label = ''}) => labels + // 지금 화면 버튼 아래 밑줄 (색만으로는 알아보기 어려운 사람도 어디인지 알게) + Widget underline(Widget child, bool here) => !here + ? child + : Stack(clipBehavior: Clip.none, children: [ + child, + Positioned( + left: 10, + right: 10, + bottom: 0, + child: Container( + key: const ValueKey('nav-here-underline'), + height: 3, + decoration: BoxDecoration(color: JjColors.accent, borderRadius: BorderRadius.circular(2))), + ), + ]); + Widget btn0(Widget icon, String tip, VoidCallback? f, {bool here = false, String label = ''}) => labels ? Tooltip( message: tip, child: InkWell( @@ -284,6 +299,7 @@ class AppNavButtons extends StatelessWidget { onPressed: f, ), ); + Widget btn(Widget icon, String tip, VoidCallback? f, {bool here = false, String label = ''}) => underline(btn0(icon, tip, f, here: here, label: label), here); String short(String id) => switch (id) { 'mkv' => 'MKV', 'browser' => tr('브라우저'), diff --git a/test/batch_test.dart b/test/batch_test.dart index 2370f1a..b7b73e6 100644 --- a/test/batch_test.dart +++ b/test/batch_test.dart @@ -393,6 +393,11 @@ void main() { // MKV 화면: 뒤로 · MKV 는 "지금 여기" 라 꺼짐, 다운로드 목록 열기 expect(btn('뒤로').onPressed, isNull); expect(find.byTooltip('MKV 화면 (지금 여기)'), findsOneWidget); + // 지금 화면 버튼 아래 밑줄 하나 (그 버튼 아래에) + final line = find.byKey(const ValueKey('nav-here-underline')); + expect(line, findsOneWidget); + final mkv = tester.getRect(find.byTooltip('MKV 화면 (지금 여기)')); + expect(tester.getCenter(line).dx, closeTo(mkv.center.dx, 2)); await tester.tap(find.byTooltip('다운로드 목록')); await tester.pumpAndSettle(); expect(find.textContaining('다운로드 ('), findsOneWidget);