From ff8bba03ae6d5b6a155c6435f6e40b867471b2d1 Mon Sep 17 00:00:00 2001 From: Krille Fear Date: Sun, 14 Nov 2021 20:44:38 +0100 Subject: [PATCH] fix: Contrast in dark mode --- lib/config/themes.dart | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/config/themes.dart b/lib/config/themes.dart index d1a0cb95..202b3734 100644 --- a/lib/config/themes.dart +++ b/lib/config/themes.dart @@ -129,10 +129,10 @@ abstract class FluffyThemes { backgroundColor: Colors.black, scaffoldBackgroundColor: Colors.black, colorScheme: ThemeData.dark().colorScheme.copyWith( - primary: AppConfig.chatColor, - secondary: AppConfig.chatColor, + primary: FluffyThemes.lighten(AppConfig.chatColor, 0.33), + secondary: FluffyThemes.lighten(AppConfig.chatColor, 0.33), secondaryVariant: AppConfig.secondaryColor, - surface: FluffyThemes.darken(AppConfig.chatColor, 0.4), + surface: FluffyThemes.darken(AppConfig.chatColor, 0.25, 0.2), ), secondaryHeaderColor: Colors.blueGrey.shade900, textTheme: Typography.material2018().white.merge(fallbackTextTheme), @@ -212,21 +212,28 @@ abstract class FluffyThemes { ? Colors.white : Colors.black; - static Color darken(Color color, [double amount = .1]) { + static Color darken(Color color, [double amount = .1, double saturation]) { assert(amount >= 0 && amount <= 1); final hsl = HSLColor.fromColor(color); - final hslDark = hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0)); + var hslDark = hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0)); + if (saturation != null) { + hslDark = + hslDark.withSaturation((hsl.saturation - saturation).clamp(0.0, 1.0)); + } return hslDark.toColor(); } - static Color lighten(Color color, [double amount = .1]) { + static Color lighten(Color color, [double amount = .1, double saturation]) { assert(amount >= 0 && amount <= 1); final hsl = HSLColor.fromColor(color); - final hslLight = - hsl.withLightness((hsl.lightness + amount).clamp(0.0, 1.0)); + var hslLight = hsl.withLightness((hsl.lightness + amount).clamp(0.0, 1.0)); + if (saturation != null) { + hslLight = hslLight + .withSaturation((hsl.saturation - saturation).clamp(0.0, 1.0)); + } return hslLight.toColor(); }