53 lines
1.9 KiB
Dart
53 lines
1.9 KiB
Dart
import 'package:wonders/common_libs.dart';
|
|
import 'package:wonders/logic/common/color_utils.dart';
|
|
|
|
export 'wonders_color_extensions.dart';
|
|
|
|
class AppColors {
|
|
/// Common
|
|
final Color accent1 = Color(0xFFE4935D);
|
|
final Color accent2 = Color(0xFFBEABA1);
|
|
final Color offWhite = Color(0xFFF8ECE5);
|
|
final Color caption = const Color(0xFF7D7873);
|
|
final Color body = const Color(0xFF514F4D);
|
|
final Color greyStrong = const Color(0xFF272625);
|
|
final Color greyMedium = const Color(0xFF9D9995);
|
|
final Color white = Colors.white;
|
|
final Color black = const Color(0xFF1E1B18);
|
|
|
|
final bool isDark = false;
|
|
|
|
Color shift(Color c, double d) => ColorUtils.shiftHsl(c, d * (isDark ? -1 : 1));
|
|
|
|
ThemeData toThemeData() {
|
|
/// Create a TextTheme and ColorScheme, that we can use to generate ThemeData
|
|
TextTheme txtTheme = (isDark ? ThemeData.dark() : ThemeData.light()).textTheme;
|
|
Color txtColor = white;
|
|
ColorScheme colorScheme = ColorScheme(
|
|
// Map our custom theme to the Material ColorScheme
|
|
brightness: isDark ? Brightness.dark : Brightness.light,
|
|
primary: accent1,
|
|
primaryContainer: accent1,
|
|
secondary: accent1,
|
|
secondaryContainer: accent1,
|
|
background: offWhite,
|
|
surface: offWhite,
|
|
onBackground: txtColor,
|
|
onSurface: txtColor,
|
|
onError: Colors.white,
|
|
onPrimary: Colors.white,
|
|
onSecondary: Colors.white,
|
|
error: Colors.red.shade400);
|
|
|
|
/// Now that we have ColorScheme and TextTheme, we can create the ThemeData
|
|
/// Also add on some extra properties that ColorScheme seems to miss
|
|
var t = ThemeData.from(textTheme: txtTheme, colorScheme: colorScheme).copyWith(
|
|
textSelectionTheme: TextSelectionThemeData(cursorColor: accent1),
|
|
highlightColor: accent1,
|
|
);
|
|
|
|
/// Return the themeData which MaterialApp can now use
|
|
return t;
|
|
}
|
|
}
|