From 1be254a359d45a02a582ee6c53942f1c9a160e9e Mon Sep 17 00:00:00 2001 From: Hamlet Jiang Su Date: Fri, 8 Nov 2024 13:34:30 -0800 Subject: [PATCH 1/2] fix: increase surface colors in dark mode to better match previous versions --- lib/main.dart | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index cb60d0cd5..5f2bb6453 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,7 +27,6 @@ import 'package:thunder/account/bloc/account_bloc.dart'; import 'package:thunder/community/bloc/anonymous_subscriptions_bloc.dart'; import 'package:thunder/community/bloc/community_bloc.dart'; import 'package:thunder/core/auth/bloc/auth_bloc.dart'; -import 'package:thunder/core/database/connection/connection.dart'; import 'package:thunder/core/database/database.dart'; import 'package:thunder/core/database/migrations.dart'; import 'package:thunder/core/enums/local_settings.dart'; @@ -198,20 +197,31 @@ class _ThunderAppState extends State { return DynamicColorBuilder( builder: (lightColorScheme, darkColorScheme) { - ThemeData theme = FlexThemeData.light(useMaterial3: true, scheme: FlexScheme.values.byName(state.selectedTheme.name)); - ThemeData darkTheme = FlexThemeData.dark(useMaterial3: true, scheme: FlexScheme.values.byName(state.selectedTheme.name), darkIsTrueBlack: state.themeType == ThemeType.pureBlack); + FlexScheme scheme = FlexScheme.values.byName(state.selectedTheme.name); + + Color? darkThemeSurfaceColor = state.themeType == ThemeType.pureBlack ? null : Colors.black.lighten(8); + + ThemeData theme = FlexThemeData.light(scheme: scheme); + ThemeData darkTheme = FlexThemeData.dark( + scheme: scheme, + darkIsTrueBlack: state.themeType == ThemeType.pureBlack, + surface: darkThemeSurfaceColor, + scaffoldBackground: darkThemeSurfaceColor, + appBarBackground: darkThemeSurfaceColor, + ); // Enable Material You theme if (state.useMaterialYouTheme == true) { theme = ThemeData( colorScheme: lightColorScheme, - useMaterial3: true, ); darkTheme = FlexThemeData.dark( - useMaterial3: true, colorScheme: darkColorScheme, darkIsTrueBlack: state.themeType == ThemeType.pureBlack, + surface: darkThemeSurfaceColor, + scaffoldBackground: darkThemeSurfaceColor, + appBarBackground: darkThemeSurfaceColor, ); } @@ -221,12 +231,8 @@ class _ThunderAppState extends State { TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), }); - theme = theme.copyWith( - pageTransitionsTheme: pageTransitionsTheme, - ); - darkTheme = darkTheme.copyWith( - pageTransitionsTheme: pageTransitionsTheme, - ); + theme = theme.copyWith(pageTransitionsTheme: pageTransitionsTheme); + darkTheme = darkTheme.copyWith(pageTransitionsTheme: pageTransitionsTheme); // Set navigation bar color on Android to be transparent SystemChrome.setSystemUIOverlayStyle( From 5dc1e2b5e7c23ad959aec8c739a204b8cdb177f8 Mon Sep 17 00:00:00 2001 From: Hamlet Jiang Su Date: Sun, 17 Nov 2024 16:38:19 -0800 Subject: [PATCH 2/2] fix: add primary colour blending for material you theme --- lib/main.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 5f2bb6453..67513e0b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -219,9 +219,9 @@ class _ThunderAppState extends State { darkTheme = FlexThemeData.dark( colorScheme: darkColorScheme, darkIsTrueBlack: state.themeType == ThemeType.pureBlack, - surface: darkThemeSurfaceColor, - scaffoldBackground: darkThemeSurfaceColor, - appBarBackground: darkThemeSurfaceColor, + surface: darkThemeSurfaceColor?.blend(darkColorScheme!.primary, 4), + scaffoldBackground: darkThemeSurfaceColor?.blend(darkColorScheme!.primary, 4), + appBarBackground: darkThemeSurfaceColor?.blend(darkColorScheme!.primary, 4), ); }