69 lines
1.9 KiB
Dart
69 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class AppThemeColors {
|
|
const AppThemeColors({
|
|
required this.primarySeed,
|
|
required this.webViewBorder,
|
|
required this.webViewBackground,
|
|
required this.controlsGradientStart,
|
|
required this.controlsGradientEnd,
|
|
required this.controlsShadow,
|
|
required this.statusText,
|
|
});
|
|
|
|
final Color primarySeed;
|
|
final Color webViewBorder;
|
|
final Color webViewBackground;
|
|
final Color controlsGradientStart;
|
|
final Color controlsGradientEnd;
|
|
final Color controlsShadow;
|
|
final Color statusText;
|
|
}
|
|
|
|
class AppThemeBusinessObject {
|
|
static const AppThemeColors lightColors = AppThemeColors(
|
|
primarySeed: Color(0xFF607D8B),
|
|
webViewBorder: Color(0x42000000),
|
|
webViewBackground: Color(0xFFFFFFFF),
|
|
controlsGradientStart: Color(0xFFE1F5FE),
|
|
controlsGradientEnd: Color(0xFFB3E5FC),
|
|
controlsShadow: Color(0x22000000),
|
|
statusText: Color(0xDD000000),
|
|
);
|
|
|
|
static const AppThemeColors darkColors = AppThemeColors(
|
|
primarySeed: Color(0xFF37474F),
|
|
webViewBorder: Color(0x66FFFFFF),
|
|
webViewBackground: Color(0xFF0F1417),
|
|
controlsGradientStart: Color(0xFF1B2731),
|
|
controlsGradientEnd: Color(0xFF233744),
|
|
controlsShadow: Color(0x44000000),
|
|
statusText: Color(0xE6FFFFFF),
|
|
);
|
|
|
|
static bool isDarkMode(BuildContext context) {
|
|
return MediaQuery.platformBrightnessOf(context) == Brightness.dark;
|
|
}
|
|
|
|
static AppThemeColors colorsFor(BuildContext context) {
|
|
return isDarkMode(context) ? darkColors : lightColors;
|
|
}
|
|
|
|
static ThemeData lightTheme() {
|
|
return ThemeData(
|
|
colorScheme: ColorScheme.fromSeed(seedColor: lightColors.primarySeed),
|
|
useMaterial3: true,
|
|
);
|
|
}
|
|
|
|
static ThemeData darkTheme() {
|
|
return ThemeData(
|
|
colorScheme: ColorScheme.fromSeed(
|
|
seedColor: darkColors.primarySeed,
|
|
brightness: Brightness.dark,
|
|
),
|
|
useMaterial3: true,
|
|
);
|
|
}
|
|
}
|