From f02fc7ef4d7c0c12bc7cce8e152868f794b46d24 Mon Sep 17 00:00:00 2001 From: Thomas Way Date: Tue, 10 Mar 2026 19:39:00 +0000 Subject: [PATCH 1/2] feat(mobile): use material design 3 slider The new slider is easier to use, and looks more modern. --- mobile/lib/theme/theme_data.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/mobile/lib/theme/theme_data.dart b/mobile/lib/theme/theme_data.dart index 3837d6337c7fa..69b8596490a26 100644 --- a/mobile/lib/theme/theme_data.dart +++ b/mobile/lib/theme/theme_data.dart @@ -62,8 +62,6 @@ ThemeData getThemeData({required ColorScheme colorScheme, required Locale locale ), chipTheme: const ChipThemeData(side: BorderSide.none), sliderTheme: const SliderThemeData( - thumbShape: RoundSliderThumbShape(enabledThumbRadius: 7), - trackHeight: 2.0, // ignore: deprecated_member_use year2023: false, ), From 0e307d94c651a0b3bbc81b64fd71ed68fb51f621 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 10 Mar 2026 20:52:12 -0500 Subject: [PATCH 2/2] chore: add shadow to button and text for better visibility --- .../widgets/asset_viewer/video_controls.dart | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/mobile/lib/widgets/asset_viewer/video_controls.dart b/mobile/lib/widgets/asset_viewer/video_controls.dart index 29e877b3dc69d..4eed3903c9edb 100644 --- a/mobile/lib/widgets/asset_viewer/video_controls.dart +++ b/mobile/lib/widgets/asset_viewer/video_controls.dart @@ -14,6 +14,8 @@ import 'package:immich_mobile/widgets/asset_viewer/animated_play_pause.dart'; class VideoControls extends HookConsumerWidget { final String videoPlayerName; + static const List _controlShadows = [Shadow(color: Colors.black87, blurRadius: 6, offset: Offset(0, 1))]; + const VideoControls({super.key, required this.videoPlayerName}); void _toggle(WidgetRef ref, bool isCasting) { @@ -70,14 +72,17 @@ class VideoControls extends HookConsumerWidget { children: [ Row( children: [ - IconButton( - iconSize: 32, - padding: const EdgeInsets.all(12), - constraints: const BoxConstraints(), - icon: isFinished - ? const Icon(Icons.replay, color: Colors.white, size: 32) - : AnimatedPlayPause(color: Colors.white, size: 32, playing: isPlaying), - onPressed: () => _toggle(ref, isCasting), + IconTheme( + data: const IconThemeData(shadows: _controlShadows), + child: IconButton( + iconSize: 32, + padding: const EdgeInsets.all(12), + constraints: const BoxConstraints(), + icon: isFinished + ? const Icon(Icons.replay, color: Colors.white, size: 32) + : AnimatedPlayPause(color: Colors.white, size: 32, playing: isPlaying), + onPressed: () => _toggle(ref, isCasting), + ), ), const Spacer(), Text( @@ -86,6 +91,7 @@ class VideoControls extends HookConsumerWidget { color: Colors.white, fontWeight: FontWeight.w500, fontFeatures: [FontFeature.tabularFigures()], + shadows: _controlShadows, ), ), const SizedBox(width: 16),