adds theming class. supports light/dark mode styles
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user