wonders/lib/styles/colors.dart
2023-04-27 12:14:44 -06:00

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;
}
}