From feb8393a425bba15d2eb69d4c38305812185e071 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Fri, 2 Jan 2026 16:52:35 +0100 Subject: [PATCH] smooth animations --- .../browser/presentation/screens/browser.dart | 39 +++++++++++-------- .../widgets/browser_modules/browser_fab.dart | 1 + 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart index 7e83f381..ccbb234e 100644 --- a/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart +++ b/app/lib/features/geckoview/features/browser/presentation/screens/browser.dart @@ -186,23 +186,28 @@ class _TabBar extends HookConsumerWidget { }, ); - return Visibility( - visible: - sheetController.value != null || (!tabInFullScreen && appBarVisible), - maintainState: true, - child: switch (tabBarPosition) { - TabBarPosition.top => BrowserTopAppBar( - showMainToolbar: showMainToolbar, - showContextualToolbar: showContextualToolbar, - showQuickTabSwitcherBar: showQuickTabSwitcherBar, - ), - TabBarPosition.bottom => BrowserBottomAppBar( - showMainToolbar: showMainToolbar, - displayedSheet: displayedSheet, - showContextualToolbar: showContextualToolbar, - showQuickTabSwitcherBar: showQuickTabSwitcherBar, - ), - }, + return AnimatedSize( + duration: const Duration(milliseconds: 125), + curve: Curves.easeInOut, + child: Visibility( + visible: + sheetController.value != null || + (!tabInFullScreen && appBarVisible), + maintainState: true, + child: switch (tabBarPosition) { + TabBarPosition.top => BrowserTopAppBar( + showMainToolbar: showMainToolbar, + showContextualToolbar: showContextualToolbar, + showQuickTabSwitcherBar: showQuickTabSwitcherBar, + ), + TabBarPosition.bottom => BrowserBottomAppBar( + showMainToolbar: showMainToolbar, + displayedSheet: displayedSheet, + showContextualToolbar: showContextualToolbar, + showQuickTabSwitcherBar: showQuickTabSwitcherBar, + ), + }, + ), ); } } diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_fab.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_fab.dart index 0eee12d5..a07e6fc2 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_fab.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_modules/browser_fab.dart @@ -68,6 +68,7 @@ class BrowserFab extends HookConsumerWidget { } return AnimatedSwitcher( + key: child.key, duration: const Duration(milliseconds: 200), transitionBuilder: (child, animation) { return ScaleTransition(scale: animation, child: child);