Make theme colors constant

add-romaji-feature
Oystein Kristoffer Tveit 2022-01-17 14:50:01 +01:00
parent f0c6aaa69a
commit 1c766d9ad1
5 changed files with 93 additions and 64 deletions

View File

@ -11,12 +11,12 @@ class LightThemeState extends ThemeState {
const LightThemeState(); const LightThemeState();
@override @override
AppTheme get theme => LightTheme(); AppTheme get theme => const LightTheme();
} }
class DarkThemeState extends ThemeState { class DarkThemeState extends ThemeState {
const DarkThemeState(); const DarkThemeState();
@override @override
AppTheme get theme => DarkTheme(); AppTheme get theme => const DarkTheme();
} }

View File

@ -1,46 +1,61 @@
part of './theme.dart'; part of './theme.dart';
class DarkTheme extends AppTheme { class DarkTheme extends AppTheme {
@override const DarkTheme() : super();
ColorSet get kanjiResultColor => const ColorSet(
foreground: Colors.white, static const ColorSet defaultKanjiResultColor = ColorSet(
background: Colors.green, foreground: Colors.white,
); background: Colors.green,
);
static const ColorSet defaultOnyomiColor = ColorSet(
foreground: Colors.white,
background: Colors.orange,
);
static const ColorSet defaultKunyomiColor = ColorSet(
foreground: Colors.white,
background: Colors.lightBlue,
);
static const Color defaultForeground = Colors.white;
static const Color defaultBackground = Colors.black;
static final defaultMenuGreyLight = ColorSet(
foreground: Colors.white,
background: Colors.grey.shade700,
);
static const defaultMenuGreyNormal = ColorSet(
foreground: Colors.white,
background: Colors.grey,
);
static final defaultMenuGreyDark = ColorSet(
foreground: Colors.black,
background: Colors.grey.shade300,
);
@override @override
ColorSet get onyomiColor => const ColorSet( ColorSet get kanjiResultColor => defaultKanjiResultColor;
foreground: Colors.white,
background: Colors.orange,
);
@override @override
ColorSet get kunyomiColor => const ColorSet( ColorSet get onyomiColor => defaultOnyomiColor;
foreground: Colors.white,
background: Colors.lightBlue,
);
@override @override
Color get foreground => Colors.black; ColorSet get kunyomiColor => defaultKunyomiColor;
@override
Color get background => Colors.white;
@override @override
ColorSet get menuGreyLight => ColorSet( Color get foreground => defaultForeground;
foreground: Colors.white, @override
background: Colors.grey.shade700, Color get background => defaultBackground;
);
@override @override
ColorSet get menuGreyNormal => const ColorSet( ColorSet get menuGreyLight => defaultMenuGreyLight;
foreground: Colors.white, @override
background: Colors.grey, ColorSet get menuGreyNormal => defaultMenuGreyNormal;
);
@override @override
ColorSet get menuGreyDark => ColorSet( ColorSet get menuGreyDark => defaultMenuGreyDark;
foreground: Colors.black,
background: Colors.grey.shade300,
);
@override @override
ThemeData getMaterialTheme() { ThemeData getMaterialTheme() {

View File

@ -1,45 +1,60 @@
part of './theme.dart'; part of './theme.dart';
class LightTheme extends AppTheme { class LightTheme extends AppTheme {
@override const LightTheme() : super();
ColorSet get kanjiResultColor => const ColorSet(
foreground: Colors.white, static const ColorSet defaultKanjiResultColor = ColorSet(
background: Colors.blue, foreground: Colors.white,
); background: Colors.blue,
);
static const ColorSet defaultOnyomiColor = ColorSet(
foreground: Colors.white,
background: Colors.orange,
);
static const ColorSet defaultKunyomiColor = ColorSet(
foreground: Colors.white,
background: Colors.lightBlue,
);
static const Color defaultForeground = Colors.black;
static const Color defaultBackground = Colors.white;
static final defaultMenuGreyLight = ColorSet(
foreground: Colors.black,
background: Colors.grey.shade300,
);
static const defaultMenuGreyNormal = ColorSet(
foreground: Colors.white,
background: Colors.grey,
);
static final defaultMenuGreyDark = ColorSet(
foreground: Colors.white,
background: Colors.grey.shade700,
);
@override @override
ColorSet get onyomiColor => const ColorSet( ColorSet get kanjiResultColor => defaultKanjiResultColor;
foreground: Colors.white,
background: Colors.orange,
);
@override @override
ColorSet get kunyomiColor => const ColorSet( ColorSet get onyomiColor => defaultOnyomiColor;
foreground: Colors.white,
background: Colors.lightBlue,
);
@override @override
Color get foreground => Colors.black; ColorSet get kunyomiColor => defaultKunyomiColor;
@override
Color get background => Colors.white;
@override @override
ColorSet get menuGreyLight => ColorSet( Color get foreground => defaultForeground;
foreground: Colors.black,
background: Colors.grey.shade300,
);
@override @override
ColorSet get menuGreyNormal => const ColorSet( Color get background => defaultBackground;
foreground: Colors.white,
background: Colors.grey,
);
@override @override
ColorSet get menuGreyDark => ColorSet( ColorSet get menuGreyLight => defaultMenuGreyLight;
foreground: Colors.white, @override
background: Colors.grey.shade700, ColorSet get menuGreyNormal => defaultMenuGreyNormal;
);
@override
ColorSet get menuGreyDark => defaultMenuGreyDark;
@override @override
ThemeData getMaterialTheme() { ThemeData getMaterialTheme() {

View File

@ -4,6 +4,8 @@ part 'light.dart';
part 'dark.dart'; part 'dark.dart';
abstract class AppTheme { abstract class AppTheme {
const AppTheme();
static const ColorSet jishoGreen = ColorSet( static const ColorSet jishoGreen = ColorSet(
foreground: Colors.white, foreground: Colors.white,
background: Color(0xFF3EDD00), background: Color(0xFF3EDD00),

View File

@ -59,14 +59,11 @@ class _KanjiRadicalSearchState extends State<KanjiRadicalSearch> {
} }
Widget radicalGridElement(String radical, {bool isNumber = false}) { Widget radicalGridElement(String radical, {bool isNumber = false}) {
// final theme = BlocProvider.of<ThemeBloc>(context).state.theme;
final theme = LightTheme();
final color = isNumber final color = isNumber
? theme.menuGreyDark ? LightTheme.defaultMenuGreyDark
: radicalToggles[radical]! : radicalToggles[radical]!
? AppTheme.jishoGreen ? AppTheme.jishoGreen
: theme.menuGreyNormal; : LightTheme.defaultMenuGreyNormal;
return InkWell( return InkWell(
onTap: isNumber onTap: isNumber
@ -123,7 +120,7 @@ class _KanjiRadicalSearchState extends State<KanjiRadicalSearch> {
.toList(); .toList();
Widget kanjiGridElement(String kanji) { Widget kanjiGridElement(String kanji) {
final color = LightTheme().menuGreyNormal; const color = LightTheme.defaultMenuGreyNormal;
return InkWell( return InkWell(
onTap: () => Navigator.popAndPushNamed( onTap: () => Navigator.popAndPushNamed(
context, context,