mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-23 06:38:35 +02:00
Theme overhaul: green primary + Such Software pink/blue accents
Tier A (theme classes): - light_theme.dart: primary #1A5C38 (Hash green), secondary #B83278 (Such pink), tertiary #1F7DBF (Such blue), surface #F2F8F4 (very light minty). Full ColorScheme rewritten with green-family containers and green-tinted surface tokens. - dark_theme.dart: primary #7FCAA0 (mint, readable on dark), secondary #E16FA6 (soft pink), tertiary #6AB7E6 (soft blue), surface #0B1F14 (deep green). Containers + surface tokens tuned for the green palette. - black_theme.dart: replaced accent enum (cakePrimary/tronRed/frostingPurple removed; hashGreen, suchPink, suchBlue added). bchGreen / bitcoinYellow / moneroOrange kept as chain identifiers. Tier A (custom theme colors): - light_theme_custom_colors.dart: backgroundGradient + cardGradient + toggleColorOffState retuned to green tints. - dark_theme_custom_colors.dart: same for the dark variant. - black_theme_custom_colors.dart: untouched (pure black AMOLED is brand- neutral on purpose). Tier B (palette.dart): - Cake's blue-family accents (Palette.blue, royalBlue, cornflower, blueCraiola family, pinkFlamingo, lavenders, oceanBlue, nightBlue, protectiveBlue, etc.) repainted into the green/pink/blue brand system. - PaletteDark's night-blue surfaces wholesale repainted into deep-green equivalents. Original const names retained so every call-site compiles unchanged. - moneroOrange, moneroLightOrange, bitcoinOrange, moneroCard, BCH green intentionally NOT touched — chain identifiers. - Pure neutrals (gray, darkGray, manatee, dullGray, highContrastGray, shadowWhite, stateGray, granite, matrixGreen, red, error reds) kept. Tier C deferred — hardcoded Color(0xFF...) literals scattered through lib/ remain blue. Most should pull from ColorScheme so this should be ~80% visually rebranded already; iterate from screenshots.
This commit is contained in:
@@ -12,17 +12,17 @@ class DarkThemeCustomColors extends CustomThemeColors {
|
||||
Color get backgroundMainColor => const Color(0xFF000000);
|
||||
|
||||
@override
|
||||
Color get backgroundGradientColor => const Color(0xFF0F1A36);
|
||||
Color get backgroundGradientColor => const Color(0xFF06150C);
|
||||
|
||||
@override
|
||||
Color get cardGradientColorPrimary => const Color(0xFF2B3A67);
|
||||
Color get cardGradientColorPrimary => const Color(0xFF1F4530);
|
||||
|
||||
@override
|
||||
Color get cardGradientColorSecondary => const Color(0xFF1C2A4F);
|
||||
Color get cardGradientColorSecondary => const Color(0xFF112A1D);
|
||||
|
||||
@override
|
||||
Color get toggleKnobStateColor => const Color(0xFFFFFFFF);
|
||||
|
||||
@override
|
||||
Color get toggleColorOffState => const Color(0xFF3A4F88);
|
||||
Color get toggleColorOffState => const Color(0xFF2A5840);
|
||||
}
|
||||
|
||||
@@ -9,20 +9,20 @@ class LightThemeCustomColors extends CustomThemeColors {
|
||||
Color get warningOutlineColor => const Color(0xFF312938);
|
||||
|
||||
@override
|
||||
Color get backgroundMainColor => const Color(0xFF000000);
|
||||
|
||||
Color get backgroundMainColor => const Color(0xFF0B1F14);
|
||||
|
||||
@override
|
||||
Color get backgroundGradientColor => const Color(0xFFE7E7FD);
|
||||
|
||||
Color get backgroundGradientColor => const Color(0xFFDDEBE3);
|
||||
|
||||
@override
|
||||
Color get cardGradientColorPrimary => const Color(0xFFFFFFFF);
|
||||
|
||||
|
||||
@override
|
||||
Color get cardGradientColorSecondary => const Color(0xFFF3F3FF);
|
||||
|
||||
Color get cardGradientColorSecondary => const Color(0xFFEAF2EC);
|
||||
|
||||
@override
|
||||
Color get toggleKnobStateColor => const Color(0xFFFFFFFF);
|
||||
|
||||
|
||||
@override
|
||||
Color get toggleColorOffState => const Color(0xFFCACAE7);
|
||||
Color get toggleColorOffState => const Color(0xFFC7E5D2);
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ import 'package:cake_wallet/themes/core/custom_theme_colors.dart';
|
||||
import 'package:cake_wallet/themes/custom_theme_colors/black_theme_custom_colors.dart';
|
||||
|
||||
enum BlackThemeAccentColor implements ThemeAccentColor {
|
||||
cakePrimary(Color(0xFF52B6F0), 'Cake Primary'),
|
||||
hashGreen(Color(0xFF7FCAA0), 'Hash Green'),
|
||||
suchPink(Color(0xFFE16FA6), 'Such Pink'),
|
||||
suchBlue(Color(0xFF6AB7E6), 'Such Blue'),
|
||||
bchGreen(Color(0xFF44BA52), 'BCH Green'),
|
||||
bitcoinYellow(Color(0xFFFFC107), 'Bitcoin Yellow'),
|
||||
moneroOrange(Color(0xFFFF6600), 'Monero Orange'),
|
||||
tronRed(Color(0xFFFF4242), 'Tron Red'),
|
||||
frostingPurple(Color(0xFFBABAF3), 'Frosting Purple');
|
||||
moneroOrange(Color(0xFFFF6600), 'Monero Orange');
|
||||
|
||||
const BlackThemeAccentColor(this.color, this.name);
|
||||
|
||||
@@ -263,12 +263,12 @@ class BlackTheme extends MaterialThemeBase {
|
||||
@override
|
||||
int get raw {
|
||||
final baseValue = switch (accentColor) {
|
||||
BlackThemeAccentColor.cakePrimary => 12,
|
||||
BlackThemeAccentColor.hashGreen => 12,
|
||||
BlackThemeAccentColor.bchGreen => 13,
|
||||
BlackThemeAccentColor.bitcoinYellow => 14,
|
||||
BlackThemeAccentColor.moneroOrange => 15,
|
||||
BlackThemeAccentColor.tronRed => 16,
|
||||
BlackThemeAccentColor.frostingPurple => 17,
|
||||
BlackThemeAccentColor.suchPink => 16,
|
||||
BlackThemeAccentColor.suchBlue => 17,
|
||||
};
|
||||
if (!isOled) return baseValue;
|
||||
// OLED encodes as 100 + base to avoid collisions
|
||||
|
||||
@@ -10,50 +10,55 @@ class DarkTheme extends MaterialThemeBase {
|
||||
@override
|
||||
ThemeMode get themeMode => ThemeMode.dark;
|
||||
|
||||
// Hash Wallet dark palette:
|
||||
// - Primary: mint (#7FCAA0) — light enough to read on dark surface
|
||||
// - Secondary: soft pink (#E16FA6)
|
||||
// - Tertiary: soft blue (#6AB7E6)
|
||||
// - Surface: deep green (#0B1F14)
|
||||
@override
|
||||
Color get primaryColor => const Color(0xFF91B0FF);
|
||||
Color get primaryColor => const Color(0xFF7FCAA0);
|
||||
|
||||
@override
|
||||
Color get secondaryColor => const Color(0xFFA1B9FF);
|
||||
Color get secondaryColor => const Color(0xFFE16FA6);
|
||||
|
||||
@override
|
||||
Color get errorColor => const Color(0xFFFFB4AB);
|
||||
|
||||
@override
|
||||
Color get surfaceColor => const Color(0xFF1B284A);
|
||||
Color get surfaceColor => const Color(0xFF0B1F14);
|
||||
|
||||
@override
|
||||
Color get tertiaryColor => const Color(0xFF162028);
|
||||
Color get tertiaryColor => const Color(0xFF6AB7E6);
|
||||
|
||||
@override
|
||||
ColorScheme get colorScheme => ColorScheme.dark(
|
||||
primary: primaryColor,
|
||||
onPrimary: const Color(0xFF002860),
|
||||
primaryContainer: const Color(0xFF004C9E),
|
||||
onPrimaryContainer: const Color(0xFFFFF3F0),
|
||||
onPrimary: const Color(0xFF0B1F14),
|
||||
primaryContainer: const Color(0xFF1A5C38),
|
||||
onPrimaryContainer: const Color(0xFFC7E5D2),
|
||||
secondary: secondaryColor,
|
||||
onSecondary: const Color(0xFF0C1C58),
|
||||
secondaryContainer: const Color(0xFF1A3C6C),
|
||||
onSecondaryContainer: const Color(0xFFBACBFF),
|
||||
onSecondary: const Color(0xFF3A0F22),
|
||||
secondaryContainer: const Color(0xFF7A1F4E),
|
||||
onSecondaryContainer: const Color(0xFFFAD5E5),
|
||||
tertiary: tertiaryColor,
|
||||
onTertiary: const Color(0xFF2B373F),
|
||||
tertiaryContainer: const Color(0xFF1F2832),
|
||||
onTertiaryContainer: const Color(0xFFA8B3C6),
|
||||
onTertiary: const Color(0xFF0B2C46),
|
||||
tertiaryContainer: const Color(0xFF14507A),
|
||||
onTertiaryContainer: const Color(0xFFD6EAF6),
|
||||
error: errorColor,
|
||||
onError: const Color(0xFFB71919),
|
||||
errorContainer: const Color(0xFFC53636),
|
||||
onErrorContainer: const Color(0xFFFFDAD6),
|
||||
surface: surfaceColor,
|
||||
onSurface: const Color(0xFFD7E2F7),
|
||||
surfaceDim: const Color(0xFF0F1A36),
|
||||
onSurfaceVariant: const Color(0xFF8C9FBB),
|
||||
surfaceContainerLowest: Color(0xFF171C30),
|
||||
surfaceContainerLow: Color(0xFF2D385C),
|
||||
surfaceContainer: Color(0xFF24335B),
|
||||
surfaceContainerHigh: Color(0xFF2A3E73),
|
||||
surfaceContainerHighest: Color(0xFF334C8C),
|
||||
outline: const Color(0xFF9EACC1),
|
||||
outlineVariant: const Color(0xFF2A3E73),
|
||||
onSurface: const Color(0xFFE0F0E8),
|
||||
surfaceDim: const Color(0xFF06150C),
|
||||
onSurfaceVariant: const Color(0xFF9BB5A6),
|
||||
surfaceContainerLowest: Color(0xFF06150C),
|
||||
surfaceContainerLow: Color(0xFF112A1D),
|
||||
surfaceContainer: Color(0xFF173524),
|
||||
surfaceContainerHigh: Color(0xFF1F4530),
|
||||
surfaceContainerHighest: Color(0xFF2A5840),
|
||||
outline: const Color(0xFF8AAA98),
|
||||
outlineVariant: const Color(0xFF1F4530),
|
||||
);
|
||||
static const String fontFamily = 'Wix Madefor Text';
|
||||
@override
|
||||
|
||||
@@ -10,51 +10,56 @@ class LightTheme extends MaterialThemeBase {
|
||||
@override
|
||||
ThemeMode get themeMode => ThemeMode.light;
|
||||
|
||||
// Hash Wallet palette:
|
||||
// - Primary: brand green (#1A5C38)
|
||||
// - Secondary: Such Software pink (#B83278)
|
||||
// - Tertiary: Such Software blue (#1F7DBF)
|
||||
// - Surface: very light minty bg (#F2F8F4)
|
||||
@override
|
||||
Color get primaryColor => const Color(0xFF4EBEFF);
|
||||
Color get primaryColor => const Color(0xFF1A5C38);
|
||||
|
||||
@override
|
||||
Color get secondaryColor => const Color(0xFF625C64);
|
||||
Color get secondaryColor => const Color(0xFFB83278);
|
||||
|
||||
@override
|
||||
Color get tertiaryColor => const Color(0xFFBFCBDE);
|
||||
Color get tertiaryColor => const Color(0xFF1F7DBF);
|
||||
|
||||
@override
|
||||
Color get errorColor => const Color(0xFFBA1A1A);
|
||||
|
||||
@override
|
||||
Color get surfaceColor => const Color(0xFFEFEFF8);
|
||||
Color get surfaceColor => const Color(0xFFF2F8F4);
|
||||
|
||||
@override
|
||||
ColorScheme get colorScheme => ColorScheme.light(
|
||||
primary: primaryColor,
|
||||
onPrimary: const Color(0xFFFFFFFF),
|
||||
primaryContainer: const Color(0xFF403747),
|
||||
onPrimaryContainer: const Color(0xFFD5C8DC),
|
||||
primaryContainer: const Color(0xFFC7E5D2),
|
||||
onPrimaryContainer: const Color(0xFF0B1F14),
|
||||
secondary: secondaryColor,
|
||||
onSecondary: const Color(0xFFFFFFFF),
|
||||
secondaryContainer: const Color(0xFFE1E4EA),
|
||||
onSecondaryContainer: const Color(0xFF4C474E),
|
||||
secondaryContainer: const Color(0xFFF9D6E5),
|
||||
onSecondaryContainer: const Color(0xFF4A0E2C),
|
||||
tertiary: tertiaryColor,
|
||||
onTertiary: const Color(0xFFFFFFFF),
|
||||
tertiaryContainer: const Color(0xFF35404A),
|
||||
onTertiaryContainer: const Color(0xFFC5D7E5),
|
||||
tertiaryContainer: const Color(0xFFD6EAF6),
|
||||
onTertiaryContainer: const Color(0xFF0B2C46),
|
||||
error: errorColor,
|
||||
onError: const Color(0xFFFFFFFF),
|
||||
errorContainer: const Color(0xFFFFBDBD),
|
||||
onErrorContainer: const Color(0xFFE43D3D),
|
||||
surface: surfaceColor,
|
||||
surfaceDim: const Color(0xFFE7E7FD),
|
||||
onSurface: const Color(0xFF312938),
|
||||
onSurfaceVariant: const Color(0xFF6C6772),
|
||||
surfaceContainerLowest: Color(0xFFE4E4E4),
|
||||
surfaceContainerLow: Color(0xFFECECED),
|
||||
surfaceContainer: Color(0xFFFBFBFD),
|
||||
surfaceContainerHigh: Color(0xFFFDFDFE),
|
||||
surfaceDim: const Color(0xFFDDEBE3),
|
||||
onSurface: const Color(0xFF0B1F14),
|
||||
onSurfaceVariant: const Color(0xFF5A6B61),
|
||||
surfaceContainerLowest: Color(0xFFE2EEE7),
|
||||
surfaceContainerLow: Color(0xFFEAF2EC),
|
||||
surfaceContainer: Color(0xFFF5FAF6),
|
||||
surfaceContainerHigh: Color(0xFFFAFDFB),
|
||||
surfaceContainerHighest: Color(0xFFFFFFFF),
|
||||
onInverseSurface: Color(0xFFFAFAFA),
|
||||
outline: const Color(0xFF7B757C),
|
||||
outlineVariant: const Color(0xFFEDEDF6),
|
||||
outline: const Color(0xFF6F857A),
|
||||
outlineVariant: const Color(0xFFD9E6DE),
|
||||
);
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user