fix: Contrast in dark mode

This commit is contained in:
Krille Fear 2021-11-14 20:44:38 +01:00
parent 76d8dbbe09
commit ff8bba03ae

View File

@ -129,10 +129,10 @@ abstract class FluffyThemes {
backgroundColor: Colors.black, backgroundColor: Colors.black,
scaffoldBackgroundColor: Colors.black, scaffoldBackgroundColor: Colors.black,
colorScheme: ThemeData.dark().colorScheme.copyWith( colorScheme: ThemeData.dark().colorScheme.copyWith(
primary: AppConfig.chatColor, primary: FluffyThemes.lighten(AppConfig.chatColor, 0.33),
secondary: AppConfig.chatColor, secondary: FluffyThemes.lighten(AppConfig.chatColor, 0.33),
secondaryVariant: AppConfig.secondaryColor, secondaryVariant: AppConfig.secondaryColor,
surface: FluffyThemes.darken(AppConfig.chatColor, 0.4), surface: FluffyThemes.darken(AppConfig.chatColor, 0.25, 0.2),
), ),
secondaryHeaderColor: Colors.blueGrey.shade900, secondaryHeaderColor: Colors.blueGrey.shade900,
textTheme: Typography.material2018().white.merge(fallbackTextTheme), textTheme: Typography.material2018().white.merge(fallbackTextTheme),
@ -212,21 +212,28 @@ abstract class FluffyThemes {
? Colors.white ? Colors.white
: Colors.black; : 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); assert(amount >= 0 && amount <= 1);
final hsl = HSLColor.fromColor(color); 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(); 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); assert(amount >= 0 && amount <= 1);
final hsl = HSLColor.fromColor(color); final hsl = HSLColor.fromColor(color);
final hslLight = var hslLight = hsl.withLightness((hsl.lightness + amount).clamp(0.0, 1.0));
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(); return hslLight.toColor();
} }