From aec279cb6ba22a46e74c1255566c8974a6fd40d6 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Wed, 8 Feb 2023 16:59:06 -0700 Subject: [PATCH 01/10] desktop oled name fix --- lib/utilities/theme/color_theme.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utilities/theme/color_theme.dart b/lib/utilities/theme/color_theme.dart index dfd62a6a0..ce8a471f9 100644 --- a/lib/utilities/theme/color_theme.dart +++ b/lib/utilities/theme/color_theme.dart @@ -35,7 +35,7 @@ extension ThemeTypeExt on ThemeType { case ThemeType.oceanBreeze: return "Ocean Breeze"; case ThemeType.oledBlack: - return "Oled Black"; + return "OLED Black"; case ThemeType.fruitSorbet: return "Fruit Sorbet"; } From d1f22cdc06c81a605080287cf9fd6806bbfc99c3 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Thu, 9 Feb 2023 14:37:25 -0700 Subject: [PATCH 02/10] prep for adding in forest theme colors --- assets/svg/forest-theme.svg | 63 +++ assets/svg/fruit-sorbet-theme.png | Bin 0 -> 4202 bytes assets/svg/fruit-sorbet-theme.svg | 29 +- lib/main.dart | 4 + .../appearance_settings_view.dart | 2 + .../settings_menu/appearance_settings.dart | 2 + lib/utilities/assets.dart | 3 + lib/utilities/text_styles.dart | 376 ++++++++++++++++++ lib/utilities/theme/color_theme.dart | 7 +- lib/utilities/theme/forest_colors.dart | 345 ++++++++++++++++ pubspec.yaml | 1 + 11 files changed, 803 insertions(+), 29 deletions(-) create mode 100644 assets/svg/forest-theme.svg create mode 100644 assets/svg/fruit-sorbet-theme.png create mode 100644 lib/utilities/theme/forest_colors.dart diff --git a/assets/svg/forest-theme.svg b/assets/svg/forest-theme.svg new file mode 100644 index 000000000..1472bcbf5 --- /dev/null +++ b/assets/svg/forest-theme.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/fruit-sorbet-theme.png b/assets/svg/fruit-sorbet-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd0c6e975a82d62cccfb35fe247995b66324320 GIT binary patch literal 4202 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 A-~a#s literal 0 HcmV?d00001 diff --git a/assets/svg/fruit-sorbet-theme.svg b/assets/svg/fruit-sorbet-theme.svg index d8680aec9..a9e8a3e2a 100644 --- a/assets/svg/fruit-sorbet-theme.svg +++ b/assets/svg/fruit-sorbet-theme.svg @@ -1,28 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 493347263..6582fd6a8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -58,6 +58,7 @@ import 'package:stackwallet/utilities/logger.dart'; import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/theme/color_theme.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart'; +import 'package:stackwallet/utilities/theme/forest_colors.dart'; import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; @@ -347,6 +348,9 @@ class _MaterialAppWithThemeState extends ConsumerState case "fruitSorbet": colorTheme = FruitSorbetColors(); break; + case "forest": + colorTheme = ForestColors(); + break; case "light": default: colorTheme = LightColors(); diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart index cefde08bb..386190c5b 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart @@ -34,6 +34,8 @@ class AppearanceSettingsView extends ConsumerWidget { return "Oled Black theme"; case ThemeType.fruitSorbet: return "Fruit Sorbet theme"; + case ThemeType.forest: + return "Forest theme"; } } diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart index b754f5c28..de7ae8623 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart @@ -171,6 +171,8 @@ class _ThemeToggle extends ConsumerState { return Assets.svg.themeOledBlack; case ThemeType.fruitSorbet: return Assets.svg.themeFruit; + case ThemeType.forest: + return Assets.svg.themeForest; } } diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index 5a0427782..9f8a0ba7d 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -92,6 +92,7 @@ class _SVG { "assets/svg/${Theme.of(context).extension()!.themeType.name}/tx-exchange-icon-failed.svg"; String get themeFruit => "assets/svg/fruit-sorbet-theme.svg"; + String get themeForest => "assets/svg/forest-theme.svg"; String get themeOledBlack => "assets/svg/oled-black-theme.svg"; String get themeOcean => "assets/svg/ocean-breeze-theme.svg"; String get themeLight => "assets/svg/light-mode.svg"; @@ -261,6 +262,8 @@ class _SVG { class _PNG { const _PNG(); + // String get themeFruit => "assets/svg/fruit-sorbet-theme.png"; + String get stack => "assets/images/stack.png"; String get splash => "assets/images/splash.png"; diff --git a/lib/utilities/text_styles.dart b/lib/utilities/text_styles.dart index 8b756e984..a6979f812 100644 --- a/lib/utilities/text_styles.dart +++ b/lib/utilities/text_styles.dart @@ -39,6 +39,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark3, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -74,6 +80,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 20, + ); } } @@ -109,6 +121,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 18, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 18, + ); } } @@ -144,6 +162,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 16, + ); } } @@ -179,6 +203,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 16, + ); } } @@ -214,6 +244,12 @@ class STextStyles { fontWeight: FontWeight.w400, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 16, + ); } } @@ -249,6 +285,12 @@ class STextStyles { fontWeight: FontWeight.w400, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 16, + ); } } @@ -284,6 +326,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 16, + ); } } @@ -319,6 +367,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 16, + ); } } @@ -354,6 +408,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextPrimary, + fontWeight: FontWeight.w500, + fontSize: 16, + ); } } @@ -389,6 +449,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 16, + ); } } @@ -424,6 +490,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark3, + fontWeight: FontWeight.w500, + fontSize: 16, + ); } } @@ -459,6 +531,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark3, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -494,6 +572,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle1, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -534,6 +618,13 @@ class STextStyles { fontSize: 14, height: 14 / 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textFieldActiveSearchIconRight, + fontWeight: FontWeight.w500, + fontSize: 14, + height: 14 / 14, + ); } } @@ -569,6 +660,12 @@ class STextStyles { fontWeight: FontWeight.w700, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle1, + fontWeight: FontWeight.w700, + fontSize: 12, + ); } } @@ -604,6 +701,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).infoItemLabel, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -639,6 +742,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -674,6 +783,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -714,6 +829,13 @@ class STextStyles { fontSize: 14, height: 1.5, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle2, + fontWeight: FontWeight.w500, + fontSize: 14, + height: 1.5, + ); } } @@ -754,6 +876,13 @@ class STextStyles { fontSize: 14, height: 1.5, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 14, + height: 1.5, + ); } } @@ -789,6 +918,12 @@ class STextStyles { fontWeight: FontWeight.w400, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 14, + ); } } @@ -824,6 +959,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).accentColorRed, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -859,6 +1000,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).infoItemIcons, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -894,6 +1041,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).accentColorBlue, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -929,6 +1082,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 12, + ); } } @@ -964,6 +1123,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -999,6 +1164,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -1034,6 +1205,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 12, + ); } } @@ -1069,6 +1246,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 10, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textError, + fontWeight: FontWeight.w500, + fontSize: 10, + ); } } @@ -1104,6 +1287,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 10, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle1, + fontWeight: FontWeight.w500, + fontSize: 10, + ); } } @@ -1146,6 +1335,13 @@ class STextStyles { fontSize: 40, height: 40 / 40, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 40, + height: 40 / 40, + ); } } @@ -1186,6 +1382,13 @@ class STextStyles { fontSize: 32, height: 32 / 32, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 32, + height: 32 / 32, + ); } } @@ -1226,6 +1429,13 @@ class STextStyles { fontSize: 24, height: 24 / 24, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 24, + height: 24 / 24, + ); } } @@ -1266,6 +1476,13 @@ class STextStyles { fontSize: 24, height: 24 / 24, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 24, + height: 24 / 24, + ); } } @@ -1306,6 +1523,13 @@ class STextStyles { fontSize: 20, height: 30 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 30 / 20, + ); } } @@ -1346,6 +1570,13 @@ class STextStyles { fontSize: 20, height: 30 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 20, + height: 30 / 20, + ); } } @@ -1386,6 +1617,13 @@ class STextStyles { fontSize: 20, height: 28 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 20, + height: 28 / 20, + ); } } @@ -1426,6 +1664,13 @@ class STextStyles { fontSize: 24, height: 33 / 24, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w400, + fontSize: 24, + height: 33 / 24, + ); } } @@ -1466,6 +1711,13 @@ class STextStyles { fontSize: 20, height: 26 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextPrimary, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 26 / 20, + ); } } @@ -1506,6 +1758,13 @@ class STextStyles { fontSize: 20, height: 26 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextPrimaryDisabled, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 26 / 20, + ); } } @@ -1546,6 +1805,13 @@ class STextStyles { fontSize: 20, height: 26 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextSecondary, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 26 / 20, + ); } } @@ -1586,6 +1852,13 @@ class STextStyles { fontSize: 20, height: 26 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextSecondaryDisabled, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 26 / 20, + ); } } @@ -1626,6 +1899,13 @@ class STextStyles { fontSize: 18, height: 27 / 18, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 18, + height: 27 / 18, + ); } } @@ -1666,6 +1946,13 @@ class STextStyles { fontSize: 18, height: 27 / 18, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w700, + fontSize: 18, + height: 27 / 18, + ); } } @@ -1706,6 +1993,13 @@ class STextStyles { fontSize: 16, height: 24 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextPrimaryDisabled, + fontWeight: FontWeight.w500, + fontSize: 16, + height: 24 / 16, + ); } } @@ -1746,6 +2040,13 @@ class STextStyles { fontSize: 14, height: 21 / 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle1, + fontWeight: FontWeight.w500, + fontSize: 14, + height: 21 / 14, + ); } } @@ -1786,6 +2087,13 @@ class STextStyles { fontSize: 14, height: 21 / 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 14, + height: 21 / 14, + ); } } @@ -1826,6 +2134,13 @@ class STextStyles { fontSize: 16, height: 24 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).buttonTextSecondary, + fontWeight: FontWeight.w500, + fontSize: 16, + height: 24 / 16, + ); } } @@ -1866,6 +2181,13 @@ class STextStyles { fontSize: 20, height: 30 / 20, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textSubtitle2, + fontWeight: FontWeight.w500, + fontSize: 20, + height: 30 / 20, + ); } } @@ -1906,6 +2228,13 @@ class STextStyles { fontSize: 16, height: 20.8 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark.withOpacity(0.8), + fontWeight: FontWeight.w500, + fontSize: 16, + height: 20.8 / 16, + ); } } @@ -1946,6 +2275,13 @@ class STextStyles { fontSize: 16, height: 20.8 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 16, + height: 20.8 / 16, + ); } } @@ -1986,6 +2322,13 @@ class STextStyles { fontSize: 16, height: 20.8 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark.withOpacity(0.5), + fontWeight: FontWeight.w500, + fontSize: 16, + height: 20.8 / 16, + ); } } @@ -2026,6 +2369,13 @@ class STextStyles { fontSize: 16, height: 20.8 / 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 16, + height: 20.8 / 16, + ); } } @@ -2061,6 +2411,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 8, ); + case ThemeType.forest: + return GoogleFonts.roboto( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 8, + ); } } @@ -2096,6 +2452,12 @@ class STextStyles { fontWeight: FontWeight.w400, fontSize: 26, ); + case ThemeType.forest: + return GoogleFonts.roboto( + color: _theme(context).numberTextDefault, + fontWeight: FontWeight.w400, + fontSize: 26, + ); } } @@ -2136,6 +2498,13 @@ class STextStyles { fontWeight: FontWeight.w400, fontSize: 12, ); + case ThemeType.forest: + return GoogleFonts.inter( + letterSpacing: 0.5, + color: _theme(context).accentColorDark, + fontWeight: FontWeight.w400, + fontSize: 12, + ); } } @@ -2176,6 +2545,13 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 16, ); + case ThemeType.forest: + return GoogleFonts.inter( + letterSpacing: 0.5, + color: _theme(context).accentColorDark, + fontWeight: FontWeight.w600, + fontSize: 16, + ); } } } diff --git a/lib/utilities/theme/color_theme.dart b/lib/utilities/theme/color_theme.dart index ce8a471f9..1e7b3ab82 100644 --- a/lib/utilities/theme/color_theme.dart +++ b/lib/utilities/theme/color_theme.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart'; +import 'package:stackwallet/utilities/theme/forest_colors.dart'; import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; import 'package:stackwallet/utilities/theme/oled_black_colors.dart'; -enum ThemeType { light, dark, oceanBreeze, oledBlack, fruitSorbet } +enum ThemeType { light, dark, oceanBreeze, oledBlack, fruitSorbet, forest } // adjust this file @@ -23,6 +24,8 @@ extension ThemeTypeExt on ThemeType { return OledBlackColors(); case ThemeType.fruitSorbet: return FruitSorbetColors(); + case ThemeType.forest: + return ForestColors(); } } @@ -38,6 +41,8 @@ extension ThemeTypeExt on ThemeType { return "OLED Black"; case ThemeType.fruitSorbet: return "Fruit Sorbet"; + case ThemeType.forest: + return "Forest"; } } } diff --git a/lib/utilities/theme/forest_colors.dart b/lib/utilities/theme/forest_colors.dart new file mode 100644 index 000000000..835d92e3f --- /dev/null +++ b/lib/utilities/theme/forest_colors.dart @@ -0,0 +1,345 @@ +import 'package:flutter/material.dart'; +import 'package:stackwallet/utilities/theme/color_theme.dart'; + +class ForestColors extends StackColorTheme { + @override + ThemeType get themeType => ThemeType.forest; + + @override + Color get background => const Color(0xFFF7F7F7); + @override + Color get backgroundAppBar => background; + @override + Gradient? get gradientBackground => null; + + @override + Color get overlay => const Color(0xFF111215); + + @override + Color get accentColorBlue => const Color(0xFF0052DF); + @override + Color get accentColorGreen => const Color(0xFF4CC0A0); + @override + Color get accentColorYellow => const Color(0xFFF7D65D); + @override + Color get accentColorRed => const Color(0xFFD34E50); + @override + Color get accentColorOrange => const Color(0xFFFEA68D); + @override + Color get accentColorDark => const Color(0xFF232323); + + @override + Color get shadow => const Color(0x0F2D3132); + + @override + Color get textDark => const Color(0xFF232323); + @override + Color get textDark2 => const Color(0xFF414141); + @override + Color get textDark3 => const Color(0xFF747778); + @override + Color get textSubtitle1 => const Color(0xFF8E9192); + @override + Color get textSubtitle2 => const Color(0xFFA9ACAC); + @override + Color get textSubtitle3 => const Color(0xFFC4C7C7); + @override + Color get textSubtitle4 => const Color(0xFFE0E3E3); + @override + Color get textSubtitle5 => const Color(0xFFEEEFF1); + @override + Color get textSubtitle6 => const Color(0xFFF5F5F5); + @override + Color get textWhite => const Color(0xFFFFFFFF); + @override + Color get textFavoriteCard => const Color(0xFF232323); + @override + Color get textError => const Color(0xFF930006); + @override + Color get textRestore => overlay; + + // button background + @override + Color get buttonBackPrimary => const Color(0xFF232323); + @override + Color get buttonBackSecondary => const Color(0xFFE0E3E3); + @override + Color get buttonBackPrimaryDisabled => const Color(0xFFD7D7D7); + @override + Color get buttonBackSecondaryDisabled => const Color(0xFFF0F1F1); + @override + Color get buttonBackBorder => const Color(0xFF232323); + @override + Color get buttonBackBorderDisabled => const Color(0xFFB6B6B6); + @override + Color get buttonBackBorderSecondary => buttonBackSecondary; + @override + Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled; + + @override + Color get numberBackDefault => const Color(0xFFFFFFFF); + @override + Color get numpadBackDefault => const Color(0xFF232323); + @override + Color get bottomNavBack => const Color(0xFFFFFFFF); + + // button text/element + @override + Color get buttonTextPrimary => const Color(0xFFFFFFFF); + @override + Color get buttonTextSecondary => const Color(0xFF232323); + @override + Color get buttonTextPrimaryDisabled => const Color(0xFFF8F8F8); + @override + Color get buttonTextSecondaryDisabled => const Color(0xFFB7B7B7); + @override + Color get buttonTextBorder => const Color(0xFF232323); + @override + Color get buttonTextDisabled => const Color(0xFFB6B6B6); + @override + Color get buttonTextBorderless => const Color(0xFF0052DF); + @override + Color get buttonTextBorderlessDisabled => const Color(0xFFB6B6B6); + @override + Color get numberTextDefault => const Color(0xFF232323); + @override + Color get numpadTextDefault => const Color(0xFFFFFFFF); + @override + Color get bottomNavText => const Color(0xFF232323); + + // switch + @override + Color get switchBGOn => const Color(0xFF0052DF); + @override + Color get switchBGOff => const Color(0xFFD8E4FB); + @override + Color get switchBGDisabled => const Color(0xFFC5C6C9); + @override + Color get switchCircleOn => const Color(0xFFDAE2FF); + @override + Color get switchCircleOff => const Color(0xFFFBFCFF); + @override + Color get switchCircleDisabled => const Color(0xFFFBFCFF); + + // step indicator background + @override + Color get stepIndicatorBGCheck => const Color(0xFFD9E2FF); + @override + Color get stepIndicatorBGNumber => const Color(0xFFD9E2FF); + @override + Color get stepIndicatorBGInactive => const Color(0xFFCDCDCD); + @override + Color get stepIndicatorBGLines => const Color(0xFF0056D2); + @override + Color get stepIndicatorBGLinesInactive => const Color(0xFFCDCDCD); + @override + Color get stepIndicatorIconText => const Color(0xFF0056D2); + @override + Color get stepIndicatorIconNumber => const Color(0xFF0056D2); + @override + Color get stepIndicatorIconInactive => const Color(0xFFF7F7F7); + + // checkbox + @override + Color get checkboxBGChecked => const Color(0xFF0056D2); + @override + Color get checkboxBorderEmpty => const Color(0xFF8E9192); + @override + Color get checkboxBGDisabled => const Color(0xFFADC7EC); + @override + Color get checkboxIconChecked => const Color(0xFFFFFFFF); + @override + Color get checkboxIconDisabled => const Color(0xFFFFFFFF); + @override + Color get checkboxTextLabel => const Color(0xFF232323); + + // snack bar + @override + Color get snackBarBackSuccess => const Color(0xFFB9E9D4); + @override + Color get snackBarBackError => const Color(0xFFFFDAD4); + @override + Color get snackBarBackInfo => const Color(0xFFDAE2FF); + @override + Color get snackBarTextSuccess => const Color(0xFF006C4D); + @override + Color get snackBarTextError => const Color(0xFF930006); + @override + Color get snackBarTextInfo => const Color(0xFF002A78); + + // icons + @override + Color get bottomNavIconBack => const Color(0xFFA2A2A2); + @override + Color get bottomNavIconIcon => const Color(0xFF232323); + + @override + Color get topNavIconPrimary => const Color(0xFF232323); + @override + Color get topNavIconGreen => const Color(0xFF00A578); + @override + Color get topNavIconYellow => const Color(0xFFF4C517); + @override + Color get topNavIconRed => const Color(0xFFC00205); + + @override + Color get settingsIconBack => const Color(0xFFE0E3E3); + @override + Color get settingsIconIcon => const Color(0xFF232323); + @override + Color get settingsIconBack2 => const Color(0xFF94D6C4); + @override + Color get settingsIconElement => const Color(0xFF00A578); + + // text field + @override + Color get textFieldActiveBG => const Color(0xFFEEEFF1); + @override + Color get textFieldDefaultBG => const Color(0xFFEEEFF1); + @override + Color get textFieldErrorBG => const Color(0xFFFFDAD4); + @override + Color get textFieldSuccessBG => const Color(0xFFB9E9D4); + @override + Color get textFieldErrorBorder => textFieldErrorBG; + @override + Color get textFieldSuccessBorder => textFieldSuccessBG; + + @override + Color get textFieldActiveSearchIconLeft => const Color(0xFFA9ACAC); + @override + Color get textFieldDefaultSearchIconLeft => const Color(0xFFA9ACAC); + @override + Color get textFieldErrorSearchIconLeft => const Color(0xFF930006); + @override + Color get textFieldSuccessSearchIconLeft => const Color(0xFF006C4D); + + @override + Color get textFieldActiveText => const Color(0xFF232323); + @override + Color get textFieldDefaultText => const Color(0xFFA9ACAC); + @override + Color get textFieldErrorText => const Color(0xFF000000); + @override + Color get textFieldSuccessText => const Color(0xFF000000); + + @override + Color get textFieldActiveLabel => const Color(0xFFA9ACAC); + @override + Color get textFieldErrorLabel => const Color(0xFF930006); + @override + Color get textFieldSuccessLabel => const Color(0xFF006C4D); + + @override + Color get textFieldActiveSearchIconRight => const Color(0xFF747778); + @override + Color get textFieldDefaultSearchIconRight => const Color(0xFF747778); + @override + Color get textFieldErrorSearchIconRight => const Color(0xFF930006); + @override + Color get textFieldSuccessSearchIconRight => const Color(0xFF006C4D); + + // settings item level2 + @override + Color get settingsItem2ActiveBG => const Color(0xFFFFFFFF); + @override + Color get settingsItem2ActiveText => const Color(0xFF232323); + @override + Color get settingsItem2ActiveSub => const Color(0xFF8E9192); + + // radio buttons + @override + Color get radioButtonIconBorder => const Color(0xFF0056D2); + @override + Color get radioButtonIconBorderDisabled => const Color(0xFF8F909A); + @override + Color get radioButtonBorderEnabled => const Color(0xFF0056D2); + @override + Color get radioButtonBorderDisabled => const Color(0xFF8F909A); + @override + Color get radioButtonIconCircle => const Color(0xFF0056D2); + @override + Color get radioButtonIconEnabled => const Color(0xFF0056D2); + @override + Color get radioButtonTextEnabled => const Color(0xFF44464E); + @override + Color get radioButtonTextDisabled => const Color(0xFF44464E); + @override + Color get radioButtonLabelEnabled => const Color(0xFF8E9192); + @override + Color get radioButtonLabelDisabled => const Color(0xFF8E9192); + + // info text + @override + Color get infoItemBG => const Color(0xFFFFFFFF); + @override + Color get infoItemLabel => const Color(0xFF8E9192); + @override + Color get infoItemText => const Color(0xFF232323); + @override + Color get infoItemIcons => const Color(0xFF0056D2); + + // popup + @override + Color get popupBG => const Color(0xFFFFFFFF); + + // currency list + @override + Color get currencyListItemBG => const Color(0xFFF9F9FC); + + // bottom nav + @override + Color get stackWalletBG => const Color(0xFFFFFFFF); + @override + Color get stackWalletMid => const Color(0xFFFFFFFF); + @override + Color get stackWalletBottom => const Color(0xFF232323); + @override + Color get bottomNavShadow => const Color(0xFF282E33); + + @override + Color get favoriteStarActive => infoItemIcons; + @override + Color get favoriteStarInactive => textSubtitle3; + + @override + Color get splash => const Color(0x358E9192); + @override + Color get highlight => const Color(0x44A9ACAC); + @override + Color get warningForeground => textDark; + @override + Color get warningBackground => const Color(0xFFFFDAD3); + @override + Color get loadingOverlayTextColor => const Color(0xFFF7F7F7); + @override + Color get myStackContactIconBG => textFieldDefaultBG; + @override + Color get textConfirmTotalAmount => const Color(0xFF232323); + @override + Color get textSelectedWordTableItem => const Color(0xFF232323); + + //rate type toggle + @override + Color get rateTypeToggleColorOn => textFieldDefaultBG; + @override + Color get rateTypeToggleColorOff => popupBG; + @override + Color get rateTypeToggleDesktopColorOn => textFieldDefaultBG; + @override + Color get rateTypeToggleDesktopColorOff => buttonBackSecondary; + + @override + BoxShadow get standardBoxShadow => BoxShadow( + color: shadow, + spreadRadius: 3, + blurRadius: 4, + ); + + @override + BoxShadow? get homeViewButtonBarBoxShadow => BoxShadow( + color: shadow, + spreadRadius: 3, + blurRadius: 4, + ); +} diff --git a/pubspec.yaml b/pubspec.yaml index 69ddc1111..22b2c629d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -347,6 +347,7 @@ flutter: - assets/svg/ocean-breeze-theme.svg - assets/svg/oled-black-theme.svg - assets/svg/fruit-sorbet-theme.svg + - assets/svg/forest-theme.svg # light theme specific - assets/svg/light/tx-exchange-icon.svg From b2a4a2dc5e6a43b4e607fde4a804a6c380566942 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Thu, 9 Feb 2023 16:12:09 -0700 Subject: [PATCH 03/10] forest theme colors added --- assets/svg/fruit-sorbet-theme.png | Bin 4202 -> 0 bytes assets/svg/fruit-sorbet-theme.svg | 67 ++++++++- lib/utilities/theme/forest_colors.dart | 188 ++++++++++++------------- 3 files changed, 160 insertions(+), 95 deletions(-) delete mode 100644 assets/svg/fruit-sorbet-theme.png diff --git a/assets/svg/fruit-sorbet-theme.png b/assets/svg/fruit-sorbet-theme.png deleted file mode 100644 index 9bd0c6e975a82d62cccfb35fe247995b66324320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4202 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 A-~a#s diff --git a/assets/svg/fruit-sorbet-theme.svg b/assets/svg/fruit-sorbet-theme.svg index a9e8a3e2a..9ae18fa40 100644 --- a/assets/svg/fruit-sorbet-theme.svg +++ b/assets/svg/fruit-sorbet-theme.svg @@ -1 +1,66 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/utilities/theme/forest_colors.dart b/lib/utilities/theme/forest_colors.dart index 835d92e3f..ad4942a80 100644 --- a/lib/utilities/theme/forest_colors.dart +++ b/lib/utilities/theme/forest_colors.dart @@ -6,7 +6,7 @@ class ForestColors extends StackColorTheme { ThemeType get themeType => ThemeType.forest; @override - Color get background => const Color(0xFFF7F7F7); + Color get background => const Color(0xFFF3FAF5); @override Color get backgroundAppBar => background; @override @@ -16,17 +16,17 @@ class ForestColors extends StackColorTheme { Color get overlay => const Color(0xFF111215); @override - Color get accentColorBlue => const Color(0xFF0052DF); + Color get accentColorBlue => const Color(0xFF077CBE); @override - Color get accentColorGreen => const Color(0xFF4CC0A0); + Color get accentColorGreen => const Color(0xFF00A591); @override - Color get accentColorYellow => const Color(0xFFF7D65D); + Color get accentColorYellow => const Color(0xFFF4C517); @override - Color get accentColorRed => const Color(0xFFD34E50); + Color get accentColorRed => const Color(0xFFD1382D); @override - Color get accentColorOrange => const Color(0xFFFEA68D); + Color get accentColorOrange => const Color(0xFFFF985F); @override - Color get accentColorDark => const Color(0xFF232323); + Color get accentColorDark => const Color(0xFF22867A); @override Color get shadow => const Color(0x0F2D3132); @@ -34,43 +34,43 @@ class ForestColors extends StackColorTheme { @override Color get textDark => const Color(0xFF232323); @override - Color get textDark2 => const Color(0xFF414141); + Color get textDark2 => const Color(0xFF333333); @override - Color get textDark3 => const Color(0xFF747778); + Color get textDark3 => const Color(0xFF696B6C); @override - Color get textSubtitle1 => const Color(0xFF8E9192); + Color get textSubtitle1 => const Color(0xFF7E8284); @override - Color get textSubtitle2 => const Color(0xFFA9ACAC); + Color get textSubtitle2 => const Color(0xFF919393); @override - Color get textSubtitle3 => const Color(0xFFC4C7C7); + Color get textSubtitle3 => const Color(0xFFB0B2B2); @override - Color get textSubtitle4 => const Color(0xFFE0E3E3); + Color get textSubtitle4 => const Color(0xFFD1D3D3); @override - Color get textSubtitle5 => const Color(0xFFEEEFF1); + Color get textSubtitle5 => const Color(0xFFDEDFE1); @override - Color get textSubtitle6 => const Color(0xFFF5F5F5); + Color get textSubtitle6 => const Color(0xFFF1F1F1); @override Color get textWhite => const Color(0xFFFFFFFF); @override Color get textFavoriteCard => const Color(0xFF232323); @override - Color get textError => const Color(0xFF930006); + Color get textError => const Color(0xFF8D0006); @override Color get textRestore => overlay; // button background @override - Color get buttonBackPrimary => const Color(0xFF232323); + Color get buttonBackPrimary => const Color(0xFF22867A); @override - Color get buttonBackSecondary => const Color(0xFFE0E3E3); + Color get buttonBackSecondary => const Color(0xFFC2E2D5); @override - Color get buttonBackPrimaryDisabled => const Color(0xFFD7D7D7); + Color get buttonBackPrimaryDisabled => const Color(0xFFBDDBCB); @override - Color get buttonBackSecondaryDisabled => const Color(0xFFF0F1F1); + Color get buttonBackSecondaryDisabled => const Color(0xFFBDBDBD); @override - Color get buttonBackBorder => const Color(0xFF232323); + Color get buttonBackBorder => const Color(0xFF22867A); @override - Color get buttonBackBorderDisabled => const Color(0xFFB6B6B6); + Color get buttonBackBorderDisabled => const Color(0xFFBDD5DB); @override Color get buttonBackBorderSecondary => buttonBackSecondary; @override @@ -79,7 +79,7 @@ class ForestColors extends StackColorTheme { @override Color get numberBackDefault => const Color(0xFFFFFFFF); @override - Color get numpadBackDefault => const Color(0xFF232323); + Color get numpadBackDefault => const Color(0xFF22867A); @override Color get bottomNavBack => const Color(0xFFFFFFFF); @@ -89,17 +89,17 @@ class ForestColors extends StackColorTheme { @override Color get buttonTextSecondary => const Color(0xFF232323); @override - Color get buttonTextPrimaryDisabled => const Color(0xFFF8F8F8); + Color get buttonTextPrimaryDisabled => const Color(0xFFFFFFFF); @override - Color get buttonTextSecondaryDisabled => const Color(0xFFB7B7B7); + Color get buttonTextSecondaryDisabled => const Color(0xFFBDD5DB); @override - Color get buttonTextBorder => const Color(0xFF232323); + Color get buttonTextBorder => const Color(0xFFBDD5DB); @override - Color get buttonTextDisabled => const Color(0xFFB6B6B6); + Color get buttonTextDisabled => const Color(0xFF22867A); @override - Color get buttonTextBorderless => const Color(0xFF0052DF); + Color get buttonTextBorderless => const Color(0xFFFFFFFF); @override - Color get buttonTextBorderlessDisabled => const Color(0xFFB6B6B6); + Color get buttonTextBorderlessDisabled => const Color(0xFF056EC6); @override Color get numberTextDefault => const Color(0xFF232323); @override @@ -109,13 +109,13 @@ class ForestColors extends StackColorTheme { // switch @override - Color get switchBGOn => const Color(0xFF0052DF); + Color get switchBGOn => const Color(0xFF2DAB9C); @override - Color get switchBGOff => const Color(0xFFD8E4FB); + Color get switchBGOff => const Color(0xFFD6F0E8); @override Color get switchBGDisabled => const Color(0xFFC5C6C9); @override - Color get switchCircleOn => const Color(0xFFDAE2FF); + Color get switchCircleOn => const Color(0xFFDEFFF2); @override Color get switchCircleOff => const Color(0xFFFBFCFF); @override @@ -123,29 +123,29 @@ class ForestColors extends StackColorTheme { // step indicator background @override - Color get stepIndicatorBGCheck => const Color(0xFFD9E2FF); + Color get stepIndicatorBGCheck => const Color(0xFFBBF0DB); @override - Color get stepIndicatorBGNumber => const Color(0xFFD9E2FF); + Color get stepIndicatorBGNumber => const Color(0xFFCDD9FF); @override - Color get stepIndicatorBGInactive => const Color(0xFFCDCDCD); + Color get stepIndicatorBGInactive => const Color(0xFFD2EDE5); @override - Color get stepIndicatorBGLines => const Color(0xFF0056D2); + Color get stepIndicatorBGLines => const Color(0xFF90B8DC); @override - Color get stepIndicatorBGLinesInactive => const Color(0xFFCDCDCD); + Color get stepIndicatorBGLinesInactive => const Color(0xFFBCEAD9); @override - Color get stepIndicatorIconText => const Color(0xFF0056D2); + Color get stepIndicatorIconText => const Color(0xFF22867A); @override - Color get stepIndicatorIconNumber => const Color(0xFF0056D2); + Color get stepIndicatorIconNumber => const Color(0xFF005BAF); @override - Color get stepIndicatorIconInactive => const Color(0xFFF7F7F7); + Color get stepIndicatorIconInactive => const Color(0xFFD4DFFF); // checkbox @override - Color get checkboxBGChecked => const Color(0xFF0056D2); + Color get checkboxBGChecked => const Color(0xFF22867A); @override - Color get checkboxBorderEmpty => const Color(0xFF8E9192); + Color get checkboxBorderEmpty => const Color(0xFF8C8F90); @override - Color get checkboxBGDisabled => const Color(0xFFADC7EC); + Color get checkboxBGDisabled => const Color(0xFFB0C9ED); @override Color get checkboxIconChecked => const Color(0xFFFFFFFF); @override @@ -155,89 +155,89 @@ class ForestColors extends StackColorTheme { // snack bar @override - Color get snackBarBackSuccess => const Color(0xFFB9E9D4); + Color get snackBarBackSuccess => const Color(0xFFADD6D2); @override - Color get snackBarBackError => const Color(0xFFFFDAD4); + Color get snackBarBackError => const Color(0xFFADD6D2); @override - Color get snackBarBackInfo => const Color(0xFFDAE2FF); + Color get snackBarBackInfo => const Color(0xFFCCD7FF); @override - Color get snackBarTextSuccess => const Color(0xFF006C4D); + Color get snackBarTextSuccess => const Color(0xFF075547); @override - Color get snackBarTextError => const Color(0xFF930006); + Color get snackBarTextError => const Color(0xFF8D0006); @override - Color get snackBarTextInfo => const Color(0xFF002A78); + Color get snackBarTextInfo => const Color(0xFF002569); // icons @override - Color get bottomNavIconBack => const Color(0xFFA2A2A2); + Color get bottomNavIconBack => const Color(0xFFA7C7CF); @override - Color get bottomNavIconIcon => const Color(0xFF232323); + Color get bottomNavIconIcon => const Color(0xFF227386); @override - Color get topNavIconPrimary => const Color(0xFF232323); + Color get topNavIconPrimary => const Color(0xFF227386); @override - Color get topNavIconGreen => const Color(0xFF00A578); + Color get topNavIconGreen => const Color(0xFF00A591); @override - Color get topNavIconYellow => const Color(0xFFF4C517); + Color get topNavIconYellow => const Color(0xFFFDD33A); @override - Color get topNavIconRed => const Color(0xFFC00205); + Color get topNavIconRed => const Color(0xFFEA4649); @override Color get settingsIconBack => const Color(0xFFE0E3E3); @override Color get settingsIconIcon => const Color(0xFF232323); @override - Color get settingsIconBack2 => const Color(0xFF94D6C4); + Color get settingsIconBack2 => const Color(0xFF80D2C8); @override - Color get settingsIconElement => const Color(0xFF00A578); + Color get settingsIconElement => const Color(0xFF00A591); // text field @override - Color get textFieldActiveBG => const Color(0xFFEEEFF1); + Color get textFieldActiveBG => const Color(0xFFE3FFF3); @override - Color get textFieldDefaultBG => const Color(0xFFEEEFF1); + Color get textFieldDefaultBG => const Color(0xFFDDF3EA); @override - Color get textFieldErrorBG => const Color(0xFFFFDAD4); + Color get textFieldErrorBG => const Color(0xFFF6C7C3); @override - Color get textFieldSuccessBG => const Color(0xFFB9E9D4); + Color get textFieldSuccessBG => const Color(0xFFADD6D2); @override Color get textFieldErrorBorder => textFieldErrorBG; @override Color get textFieldSuccessBorder => textFieldSuccessBG; @override - Color get textFieldActiveSearchIconLeft => const Color(0xFFA9ACAC); + Color get textFieldActiveSearchIconLeft => const Color(0xFF86898C); @override - Color get textFieldDefaultSearchIconLeft => const Color(0xFFA9ACAC); + Color get textFieldDefaultSearchIconLeft => const Color(0xFF86898C); @override - Color get textFieldErrorSearchIconLeft => const Color(0xFF930006); + Color get textFieldErrorSearchIconLeft => const Color(0xFF8D0006); @override Color get textFieldSuccessSearchIconLeft => const Color(0xFF006C4D); @override Color get textFieldActiveText => const Color(0xFF232323); @override - Color get textFieldDefaultText => const Color(0xFFA9ACAC); + Color get textFieldDefaultText => const Color(0xFF86898C); @override Color get textFieldErrorText => const Color(0xFF000000); @override Color get textFieldSuccessText => const Color(0xFF000000); @override - Color get textFieldActiveLabel => const Color(0xFFA9ACAC); + Color get textFieldActiveLabel => const Color(0xFF86898C); @override - Color get textFieldErrorLabel => const Color(0xFF930006); + Color get textFieldErrorLabel => const Color(0xFF8D0006); @override - Color get textFieldSuccessLabel => const Color(0xFF006C4D); + Color get textFieldSuccessLabel => const Color(0xFF077C6E); @override - Color get textFieldActiveSearchIconRight => const Color(0xFF747778); + Color get textFieldActiveSearchIconRight => const Color(0xFF22867A); @override - Color get textFieldDefaultSearchIconRight => const Color(0xFF747778); + Color get textFieldDefaultSearchIconRight => const Color(0xFF22867A); @override - Color get textFieldErrorSearchIconRight => const Color(0xFF930006); + Color get textFieldErrorSearchIconRight => const Color(0xFF8D0006); @override - Color get textFieldSuccessSearchIconRight => const Color(0xFF006C4D); + Color get textFieldSuccessSearchIconRight => const Color(0xFF077C6E); // settings item level2 @override @@ -245,39 +245,39 @@ class ForestColors extends StackColorTheme { @override Color get settingsItem2ActiveText => const Color(0xFF232323); @override - Color get settingsItem2ActiveSub => const Color(0xFF8E9192); + Color get settingsItem2ActiveSub => const Color(0xFF8C8F90); // radio buttons @override - Color get radioButtonIconBorder => const Color(0xFF0056D2); + Color get radioButtonIconBorder => const Color(0xFF056EC6); @override - Color get radioButtonIconBorderDisabled => const Color(0xFF8F909A); + Color get radioButtonIconBorderDisabled => const Color(0xFF8C8D97); @override - Color get radioButtonBorderEnabled => const Color(0xFF0056D2); + Color get radioButtonBorderEnabled => const Color(0xFF056EC6); @override - Color get radioButtonBorderDisabled => const Color(0xFF8F909A); + Color get radioButtonBorderDisabled => const Color(0xFF8C8D97); @override - Color get radioButtonIconCircle => const Color(0xFF0056D2); + Color get radioButtonIconCircle => const Color(0xFF056EC6); @override - Color get radioButtonIconEnabled => const Color(0xFF0056D2); + Color get radioButtonIconEnabled => const Color(0xFF056EC6); @override - Color get radioButtonTextEnabled => const Color(0xFF44464E); + Color get radioButtonTextEnabled => const Color(0xFF42444B); @override - Color get radioButtonTextDisabled => const Color(0xFF44464E); + Color get radioButtonTextDisabled => const Color(0xFF42444B); @override - Color get radioButtonLabelEnabled => const Color(0xFF8E9192); + Color get radioButtonLabelEnabled => const Color(0xFF8C8F90); @override - Color get radioButtonLabelDisabled => const Color(0xFF8E9192); + Color get radioButtonLabelDisabled => const Color(0xFF8C8F90); // info text @override Color get infoItemBG => const Color(0xFFFFFFFF); @override - Color get infoItemLabel => const Color(0xFF8E9192); + Color get infoItemLabel => const Color(0xFF838788); @override Color get infoItemText => const Color(0xFF232323); @override - Color get infoItemIcons => const Color(0xFF0056D2); + Color get infoItemIcons => const Color(0xFF056EC6); // popup @override @@ -285,7 +285,7 @@ class ForestColors extends StackColorTheme { // currency list @override - Color get currencyListItemBG => const Color(0xFFF9F9FC); + Color get currencyListItemBG => const Color(0xFFF0F5F7); // bottom nav @override @@ -295,25 +295,25 @@ class ForestColors extends StackColorTheme { @override Color get stackWalletBottom => const Color(0xFF232323); @override - Color get bottomNavShadow => const Color(0xFF282E33); + Color get bottomNavShadow => const Color(0xFF388192); @override - Color get favoriteStarActive => infoItemIcons; + Color get favoriteStarActive => const Color(0xFFF4C517); @override - Color get favoriteStarInactive => textSubtitle3; + Color get favoriteStarInactive => const Color(0xFFB0B2B2); @override - Color get splash => const Color(0x358E9192); + Color get splash => const Color(0xFF8E9192); @override - Color get highlight => const Color(0x44A9ACAC); + Color get highlight => const Color(0xFFA9ACAC); @override - Color get warningForeground => textDark; + Color get warningForeground => const Color(0xFF232323); @override - Color get warningBackground => const Color(0xFFFFDAD3); + Color get warningBackground => const Color(0xFFF6C7C3); @override Color get loadingOverlayTextColor => const Color(0xFFF7F7F7); @override - Color get myStackContactIconBG => textFieldDefaultBG; + Color get myStackContactIconBG => const Color(0xFFD8E7EB); @override Color get textConfirmTotalAmount => const Color(0xFF232323); @override From 1b5d2ce97fcadd1878a3b055b0a5eee49be22bca Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Thu, 9 Feb 2023 16:15:19 -0700 Subject: [PATCH 04/10] placeholder icons for forest theme --- assets/svg/forest/bell-new.svg | 5 +++++ assets/svg/forest/buy-coins-icon.svg | 18 ++++++++++++++++++ assets/svg/forest/exchange-2.svg | 4 ++++ assets/svg/forest/stack-icon1.svg | 5 +++++ assets/svg/forest/tx-exchange-icon-failed.svg | 7 +++++++ assets/svg/forest/tx-exchange-icon-pending.svg | 6 ++++++ assets/svg/forest/tx-exchange-icon.svg | 4 ++++ assets/svg/forest/tx-icon-receive-failed.svg | 7 +++++++ assets/svg/forest/tx-icon-receive-pending.svg | 5 +++++ assets/svg/forest/tx-icon-receive.svg | 4 ++++ assets/svg/forest/tx-icon-send-failed.svg | 7 +++++++ assets/svg/forest/tx-icon-send-pending.svg | 6 ++++++ assets/svg/forest/tx-icon-send.svg | 4 ++++ 13 files changed, 82 insertions(+) create mode 100644 assets/svg/forest/bell-new.svg create mode 100644 assets/svg/forest/buy-coins-icon.svg create mode 100644 assets/svg/forest/exchange-2.svg create mode 100644 assets/svg/forest/stack-icon1.svg create mode 100644 assets/svg/forest/tx-exchange-icon-failed.svg create mode 100644 assets/svg/forest/tx-exchange-icon-pending.svg create mode 100644 assets/svg/forest/tx-exchange-icon.svg create mode 100644 assets/svg/forest/tx-icon-receive-failed.svg create mode 100644 assets/svg/forest/tx-icon-receive-pending.svg create mode 100644 assets/svg/forest/tx-icon-receive.svg create mode 100644 assets/svg/forest/tx-icon-send-failed.svg create mode 100644 assets/svg/forest/tx-icon-send-pending.svg create mode 100644 assets/svg/forest/tx-icon-send.svg diff --git a/assets/svg/forest/bell-new.svg b/assets/svg/forest/bell-new.svg new file mode 100644 index 000000000..8cef32715 --- /dev/null +++ b/assets/svg/forest/bell-new.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/svg/forest/buy-coins-icon.svg b/assets/svg/forest/buy-coins-icon.svg new file mode 100644 index 000000000..d9613bccb --- /dev/null +++ b/assets/svg/forest/buy-coins-icon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/forest/exchange-2.svg b/assets/svg/forest/exchange-2.svg new file mode 100644 index 000000000..7baeaf87f --- /dev/null +++ b/assets/svg/forest/exchange-2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/forest/stack-icon1.svg b/assets/svg/forest/stack-icon1.svg new file mode 100644 index 000000000..f316012d7 --- /dev/null +++ b/assets/svg/forest/stack-icon1.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/svg/forest/tx-exchange-icon-failed.svg b/assets/svg/forest/tx-exchange-icon-failed.svg new file mode 100644 index 000000000..a54836bba --- /dev/null +++ b/assets/svg/forest/tx-exchange-icon-failed.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/svg/forest/tx-exchange-icon-pending.svg b/assets/svg/forest/tx-exchange-icon-pending.svg new file mode 100644 index 000000000..5f9aa4256 --- /dev/null +++ b/assets/svg/forest/tx-exchange-icon-pending.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/svg/forest/tx-exchange-icon.svg b/assets/svg/forest/tx-exchange-icon.svg new file mode 100644 index 000000000..fcd3ef9dc --- /dev/null +++ b/assets/svg/forest/tx-exchange-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/forest/tx-icon-receive-failed.svg b/assets/svg/forest/tx-icon-receive-failed.svg new file mode 100644 index 000000000..189bd15c9 --- /dev/null +++ b/assets/svg/forest/tx-icon-receive-failed.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/svg/forest/tx-icon-receive-pending.svg b/assets/svg/forest/tx-icon-receive-pending.svg new file mode 100644 index 000000000..64ea8da3d --- /dev/null +++ b/assets/svg/forest/tx-icon-receive-pending.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/svg/forest/tx-icon-receive.svg b/assets/svg/forest/tx-icon-receive.svg new file mode 100644 index 000000000..1076d8d57 --- /dev/null +++ b/assets/svg/forest/tx-icon-receive.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/svg/forest/tx-icon-send-failed.svg b/assets/svg/forest/tx-icon-send-failed.svg new file mode 100644 index 000000000..9751b61e8 --- /dev/null +++ b/assets/svg/forest/tx-icon-send-failed.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/svg/forest/tx-icon-send-pending.svg b/assets/svg/forest/tx-icon-send-pending.svg new file mode 100644 index 000000000..e4ec777e3 --- /dev/null +++ b/assets/svg/forest/tx-icon-send-pending.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/svg/forest/tx-icon-send.svg b/assets/svg/forest/tx-icon-send.svg new file mode 100644 index 000000000..ee32aa6b4 --- /dev/null +++ b/assets/svg/forest/tx-icon-send.svg @@ -0,0 +1,4 @@ + + + + From 7a4832e873af65b6b7f73f77868c4984ac3f26fa Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 9 Feb 2023 17:49:42 -0600 Subject: [PATCH 05/10] wrap theme column in SingleChildScrollView is this... it? surely not. surely we need more than this --- .../settings/settings_menu/appearance_settings.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart index b754f5c28..28eaf9d08 100644 --- a/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart +++ b/lib/pages_desktop_specific/settings/settings_menu/appearance_settings.dart @@ -27,7 +27,8 @@ class _AppearanceOptionSettings @override Widget build(BuildContext context) { debugPrint("BUILD: $runtimeType"); - return Column( + return SingleChildScrollView( + child: Column( children: [ Padding( padding: const EdgeInsets.only( @@ -145,7 +146,7 @@ class _AppearanceOptionSettings ), ), ], - ); + )); } } From 8cd431a71cdb7764c30567d8072b929470086ec7 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Thu, 9 Feb 2023 18:00:15 -0600 Subject: [PATCH 06/10] key favorite cards and what Julian's already done automagically reorders the cards according to their order in the list in the edit view so you can list which favorite is your favorite --- .../my_stack_view/desktop_favorite_wallets.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart index 5694c66ed..97e901747 100644 --- a/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart +++ b/lib/pages_desktop_specific/my_stack_view/desktop_favorite_wallets.dart @@ -64,12 +64,14 @@ class DesktopFavoriteWallets extends ConsumerWidget { children: [ ...favorites.map((p0) { final walletId = ref.read(p0).walletId; + final walletName = ref.read(p0).walletName; final managerProvider = ref .read(walletsChangeNotifierProvider) .getManagerProvider(walletId); return FavoriteCard( walletId: walletId, + key: Key(walletName), width: cardWidth, height: cardHeight, managerProvider: managerProvider, From a3486b46fc42f22ca196ae3e9038c72f9aac7577 Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Thu, 9 Feb 2023 21:32:06 -0700 Subject: [PATCH 07/10] mobile theme order --- .../appearance_settings_view.dart | 248 ++++++++++++------ 1 file changed, 165 insertions(+), 83 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart b/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart index 386190c5b..d25a650e3 100644 --- a/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart +++ b/lib/pages/settings_views/global_settings_view/appearance_settings_view.dart @@ -7,6 +7,7 @@ import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/theme/color_theme.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart'; +import 'package:stackwallet/utilities/theme/forest_colors.dart'; import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; @@ -26,10 +27,10 @@ class AppearanceSettingsView extends ConsumerWidget { switch (type) { case ThemeType.light: return "Light theme"; - case ThemeType.oceanBreeze: - return "Ocean theme"; case ThemeType.dark: return "Dark theme"; + case ThemeType.oceanBreeze: + return "Ocean theme"; case ThemeType.oledBlack: return "Oled Black theme"; case ThemeType.fruitSorbet: @@ -279,87 +280,6 @@ class _ThemeOptionsView extends ConsumerState { const SizedBox( height: 10, ), - MaterialButton( - splashColor: Colors.transparent, - hoverColor: Colors.transparent, - padding: const EdgeInsets.all(0), - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular( - Constants.size.circularBorderRadius, - ), - ), - onPressed: () { - DB.instance.put( - boxName: DB.boxNameTheme, - key: "colorScheme", - value: ThemeType.oceanBreeze.name, - ); - ref.read(colorThemeProvider.state).state = - StackColors.fromStackColorTheme( - OceanBreezeColors(), - ); - - setState(() { - _selectedTheme = "oceanBreeze"; - }); - }, - child: SizedBox( - width: 200, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Row( - children: [ - SizedBox( - width: 10, - height: 10, - child: Radio( - activeColor: Theme.of(context) - .extension()! - .radioButtonIconEnabled, - value: "oceanBreeze", - groupValue: _selectedTheme, - onChanged: (newValue) { - if (newValue is String && newValue == "oceanBreeze") { - DB.instance.put( - boxName: DB.boxNameTheme, - key: "colorScheme", - value: ThemeType.oceanBreeze.name, - ); - ref.read(colorThemeProvider.state).state = - StackColors.fromStackColorTheme( - OceanBreezeColors(), - ); - - setState(() { - _selectedTheme = "oceanBreeze"; - }); - } - }, - ), - ), - const SizedBox( - width: 14, - ), - Text( - "Ocean Breeze", - style: - STextStyles.desktopTextExtraSmall(context).copyWith( - color: Theme.of(context) - .extension()! - .textDark2, - ), - ), - ], - ), - ], - ), - ), - ), - const SizedBox( - height: 10, - ), MaterialButton( splashColor: Colors.transparent, hoverColor: Colors.transparent, @@ -441,6 +361,87 @@ class _ThemeOptionsView extends ConsumerState { const SizedBox( height: 10, ), + MaterialButton( + splashColor: Colors.transparent, + hoverColor: Colors.transparent, + padding: const EdgeInsets.all(0), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + onPressed: () { + DB.instance.put( + boxName: DB.boxNameTheme, + key: "colorScheme", + value: ThemeType.oceanBreeze.name, + ); + ref.read(colorThemeProvider.state).state = + StackColors.fromStackColorTheme( + OceanBreezeColors(), + ); + + setState(() { + _selectedTheme = "oceanBreeze"; + }); + }, + child: SizedBox( + width: 200, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + children: [ + SizedBox( + width: 10, + height: 10, + child: Radio( + activeColor: Theme.of(context) + .extension()! + .radioButtonIconEnabled, + value: "oceanBreeze", + groupValue: _selectedTheme, + onChanged: (newValue) { + if (newValue is String && newValue == "oceanBreeze") { + DB.instance.put( + boxName: DB.boxNameTheme, + key: "colorScheme", + value: ThemeType.oceanBreeze.name, + ); + ref.read(colorThemeProvider.state).state = + StackColors.fromStackColorTheme( + OceanBreezeColors(), + ); + + setState(() { + _selectedTheme = "oceanBreeze"; + }); + } + }, + ), + ), + const SizedBox( + width: 14, + ), + Text( + "Ocean Breeze", + style: + STextStyles.desktopTextExtraSmall(context).copyWith( + color: Theme.of(context) + .extension()! + .textDark2, + ), + ), + ], + ), + ], + ), + ), + ), + const SizedBox( + height: 10, + ), MaterialButton( splashColor: Colors.transparent, hoverColor: Colors.transparent, @@ -600,6 +601,87 @@ class _ThemeOptionsView extends ConsumerState { ), ), ), + const SizedBox( + height: 10, + ), + MaterialButton( + splashColor: Colors.transparent, + hoverColor: Colors.transparent, + padding: const EdgeInsets.all(0), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + Constants.size.circularBorderRadius, + ), + ), + onPressed: () { + DB.instance.put( + boxName: DB.boxNameTheme, + key: "colorScheme", + value: ThemeType.forest.name, + ); + ref.read(colorThemeProvider.state).state = + StackColors.fromStackColorTheme( + ForestColors(), + ); + + setState(() { + _selectedTheme = "forest"; + }); + }, + child: SizedBox( + width: 200, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + children: [ + SizedBox( + width: 10, + height: 10, + child: Radio( + activeColor: Theme.of(context) + .extension()! + .radioButtonIconEnabled, + value: "forest", + groupValue: _selectedTheme, + onChanged: (newValue) { + if (newValue is String && newValue == "forest") { + DB.instance.put( + boxName: DB.boxNameTheme, + key: "colorScheme", + value: ThemeType.forest.name, + ); + ref.read(colorThemeProvider.state).state = + StackColors.fromStackColorTheme( + ForestColors(), + ); + + setState(() { + _selectedTheme = "forest"; + }); + } + }, + ), + ), + const SizedBox( + width: 14, + ), + Text( + "Forest", + style: + STextStyles.desktopTextExtraSmall(context).copyWith( + color: Theme.of(context) + .extension()! + .textDark2, + ), + ), + ], + ), + ], + ), + ), + ), ], ); } From 8da63b6f3deaedc930302356b186c8828c02617f Mon Sep 17 00:00:00 2001 From: ryleedavis Date: Fri, 10 Feb 2023 09:36:15 -0700 Subject: [PATCH 08/10] add forest theme to background.dart --- lib/utilities/assets.dart | 1 + lib/widgets/background.dart | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart index 9f8a0ba7d..00bab1115 100644 --- a/lib/utilities/assets.dart +++ b/lib/utilities/assets.dart @@ -53,6 +53,7 @@ class _SVG { case ThemeType.light: case ThemeType.dark: case ThemeType.oledBlack: + case ThemeType.forest: return null; case ThemeType.oceanBreeze: diff --git a/lib/widgets/background.dart b/lib/widgets/background.dart index 353e3d138..aa8836570 100644 --- a/lib/widgets/background.dart +++ b/lib/widgets/background.dart @@ -23,6 +23,7 @@ class Background extends StatelessWidget { case ThemeType.light: case ThemeType.dark: case ThemeType.oledBlack: + case ThemeType.forest: color = Theme.of(context).extension()!.background; break; case ThemeType.oceanBreeze: From 92062fa14a937e528d430c93671c5337558df4e3 Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 10 Feb 2023 12:07:30 -0600 Subject: [PATCH 09/10] add forest text styles --- lib/utilities/text_styles.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/utilities/text_styles.dart b/lib/utilities/text_styles.dart index d33ee2cd5..11a1c3a97 100644 --- a/lib/utilities/text_styles.dart +++ b/lib/utilities/text_styles.dart @@ -1123,6 +1123,12 @@ class STextStyles { fontWeight: FontWeight.w600, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w600, + fontSize: 14, + ); } } @@ -1158,6 +1164,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 14, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 14, + ); } } @@ -1234,6 +1246,12 @@ class STextStyles { fontWeight: FontWeight.w500, fontSize: 10, ); + case ThemeType.forest: + return GoogleFonts.inter( + color: _theme(context).textDark, + fontWeight: FontWeight.w500, + fontSize: 10, + ); } } From ece0b1d1a78cdadd0b3572926e3b02025d85745e Mon Sep 17 00:00:00 2001 From: sneurlax Date: Fri, 10 Feb 2023 14:12:09 -0600 Subject: [PATCH 10/10] flutter_libmonero ref update --- crypto_plugins/flutter_libmonero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto_plugins/flutter_libmonero b/crypto_plugins/flutter_libmonero index af88796d5..e81b1b7c2 160000 --- a/crypto_plugins/flutter_libmonero +++ b/crypto_plugins/flutter_libmonero @@ -1 +1 @@ -Subproject commit af88796d5e4988c03422320c3842af5cf6c049ef +Subproject commit e81b1b7c2d8114435a9458ab2e439f4393f626e7