CAKE-20 | applied light theme to dashboard, receive, monero_account_list, monero_account_edit_or_create, address_edit_or_create, trade_details, transaction_details and base pages

Oleksandr Sobol committed Aug 19, 2020 at 20:57 UTC 27dce3118d06c55fa2ea18daeed347396f342761
30 files changed +367 -195
assets/images/2.0x/bitcoin_menu.png
Binary files /dev/null and b/assets/images/2.0x/bitcoin_menu.png differ
assets/images/3.0x/bitcoin_menu.png
Binary files /dev/null and b/assets/images/3.0x/bitcoin_menu.png differ
assets/images/bitcoin_menu.png
Binary files /dev/null and b/assets/images/bitcoin_menu.png differ
lib/palette.dart
+17
@@ -13,6 +13,23 @@ class Palette {
13 static const Color blue = Color.fromRGBO(88, 143, 252, 1.0);
14 static const Color darkLavender = Color.fromRGBO(225, 238, 250, 1.0);
15 static const Color nightBlue = Color.fromRGBO(46, 57, 96, 1.0);
16 +
17 + // NEW DESIGN
18 + static const Color blueCraiola = Color.fromRGBO(69, 110, 255, 1.0);
19 + static const Color darkBlueCraiola = Color.fromRGBO(53, 86, 136, 1.0);
20 + static const Color pinkFlamingo = Color.fromRGBO(240, 60, 243, 1.0);
21 + static const Color redHat = Color.fromRGBO(209, 68, 37, 1.0);
22 + static const Color shineOrange = Color.fromRGBO(255, 184, 78, 1.0);
23 + static const Color paleBlue = Color.fromRGBO(225, 228, 233, 1.0);
24 + static const Color violetBlue = Color.fromRGBO(56, 69, 103, 1.0);
25 + static const Color periwinkleCraiola = Color.fromRGBO(229, 232, 242, 1.0);
26 + static const Color moderatePurpleBlue = Color.fromRGBO(57, 74, 95, 1.0);
27 + static const Color moderateLavender = Color.fromRGBO(233, 242, 252, 1.0);
28 + static const Color wildLavender = Color.fromRGBO(224, 230, 246, 1.0);
29 + static const Color gray = Color.fromRGBO(112, 147, 186, 1.0);
30 + static const Color wildPeriwinkle = Color.fromRGBO(219, 227, 243, 1.0);
31 + static const Color darkGray = Color.fromRGBO(122, 147, 186, 1.0);
32 +
33 // FIXME: Rename.
34 static const Color eee = Color.fromRGBO(236, 239, 245, 1.0);
35 static const Color xxx = Color.fromRGBO(72, 89, 109, 1);
lib/src/screens/base_page.dart
+11 -16
@@ -15,7 +15,9 @@ abstract class BasePage extends StatelessWidget {
15
16 Color get backgroundLightColor => Colors.white;
17
18 - Color get backgroundDarkColor => PaletteDark.darkNightBlue;
18 + Color get backgroundDarkColor => PaletteDark.backgroundColor;
19 +
20 + Color get titleColor => null;
21
22 bool get resizeToAvoidBottomPadding => true;
23
@@ -27,11 +29,6 @@ abstract class BasePage extends StatelessWidget {
29
30 final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
31
30 - final _backArrowImage = Image.asset('assets/images/back_arrow.png',
31 - color: Colors.white);
32 - final _backArrowImageDarkTheme =
33 - Image.asset('assets/images/back_arrow_dark_theme.png',
34 - color: Colors.white);
32 final _closeButtonImage = Image.asset('assets/images/close_button.png');
33 final _closeButtonImageDarkTheme =
34 Image.asset('assets/images/close_button_dark_theme.png');
@@ -45,16 +42,13 @@ abstract class BasePage extends StatelessWidget {
42 return null;
43 }
44
45 + final _backButton = Image.asset('assets/images/back_arrow.png',
46 + color: titleColor ?? Theme.of(context).primaryTextTheme.title.color);
47 +
48 final _themeChanger = Provider.of<ThemeChanger>(context);
49 - Image _closeButton, _backButton;
50 -
51 - if (_themeChanger.getTheme() == Themes.darkTheme) {
52 - _backButton = _backArrowImageDarkTheme;
53 - _closeButton = _closeButtonImageDarkTheme;
54 - } else {
55 - _backButton = _backArrowImage;
56 - _closeButton = _closeButtonImage;
57 - }
49 + final _closeButton = _themeChanger.getTheme() == Themes.darkTheme
50 + ? _closeButtonImageDarkTheme
51 + : _closeButtonImage;
52
53 return SizedBox(
54 height: 37,
@@ -79,7 +73,8 @@ abstract class BasePage extends StatelessWidget {
73 style: TextStyle(
74 fontSize: 18.0,
75 fontWeight: FontWeight.bold,
82 - color: Colors.white),
76 + color: titleColor ??
77 + Theme.of(context).primaryTextTheme.title.color),
78 );
79 }
80
lib/src/screens/dashboard/dashboard_page.dart
+16 -4
@@ -5,7 +5,6 @@ import 'package:flutter/cupertino.dart';
5 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
6 import 'package:cake_wallet/src/screens/base_page.dart';
7 import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
8 -import 'package:cake_wallet/palette.dart';
8 import 'package:cake_wallet/src/screens/dashboard/widgets/action_button.dart';
9 import 'package:cake_wallet/src/screens/dashboard/widgets/balance_page.dart';
10 import 'package:cake_wallet/src/screens/dashboard/widgets/address_page.dart';
@@ -21,10 +20,23 @@ class DashboardPage extends BasePage {
20 });
21
22 @override
24 - Color get backgroundLightColor => PaletteDark.backgroundColor;
23 + Color get backgroundLightColor => Colors.transparent;
24
25 @override
27 - Color get backgroundDarkColor => PaletteDark.backgroundColor;
26 + Color get backgroundDarkColor => Colors.transparent;
27 +
28 + @override
29 + Widget Function(BuildContext, Widget) get rootWrapper =>
30 + (BuildContext context, Widget scaffold) => Container(
31 + decoration: BoxDecoration(
32 + gradient: LinearGradient(colors: [
33 + Theme.of(context).accentColor,
34 + Theme.of(context).scaffoldBackgroundColor,
35 + Theme.of(context).primaryColor,
36 + ],
37 + begin: Alignment.topRight,
38 + end: Alignment.bottomLeft)),
39 + child: scaffold);
40
41 @override
42 bool get resizeToAvoidBottomPadding => false;
@@ -101,7 +113,7 @@ class DashboardPage extends BasePage {
113 radius: 6.0,
114 dotWidth: 6.0,
115 dotHeight: 6.0,
104 - dotColor: PaletteDark.cyanBlue,
116 + dotColor: Theme.of(context).indicatorColor,
117 activeDotColor: Colors.white
118 ),
119 )
lib/src/screens/dashboard/widgets/action_button.dart
+1 -2
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2
3 class ActionButton extends StatelessWidget{
4 ActionButton({
@@ -36,7 +35,7 @@ class ActionButton extends StatelessWidget{
35 width: 60,
36 alignment: Alignment.center,
37 decoration: BoxDecoration(
39 - color: PaletteDark.nightBlue,
38 + color: Theme.of(context).buttonColor,
39 shape: BoxShape.circle),
40 child: image,
41 ),
lib/src/screens/dashboard/widgets/address_page.dart
+5 -2
@@ -1,6 +1,5 @@
1 import 'package:flutter/material.dart';
2 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
3 -import 'package:cake_wallet/palette.dart';
3 import 'package:cake_wallet/src/screens/receive/widgets/qr_widget.dart';
4 import 'package:cake_wallet/routes.dart';
5 import 'package:cake_wallet/generated/i18n.dart';
@@ -29,7 +28,11 @@ class AddressPage extends StatelessWidget {
28 alignment: Alignment.center,
29 decoration: BoxDecoration(
30 borderRadius: BorderRadius.all(Radius.circular(25)),
32 - color: PaletteDark.nightBlue
31 + border: Border.all(
32 + color: Theme.of(context).textTheme.subhead.color,
33 + width: 1
34 + ),
35 + color: Theme.of(context).buttonColor
36 ),
37 child: Row(
38 mainAxisSize: MainAxisSize.max,
lib/src/screens/dashboard/widgets/balance_page.dart
+2 -3
@@ -1,6 +1,5 @@
1 import 'package:flutter/material.dart';
2 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
3 -import 'package:cake_wallet/palette.dart';
3 import 'package:flutter_mobx/flutter_mobx.dart';
4
5 class BalancePage extends StatelessWidget {
@@ -26,7 +25,7 @@ class BalancePage extends StatelessWidget {
25 style: TextStyle(
26 fontSize: 40,
27 fontWeight: FontWeight.bold,
29 - color: PaletteDark.cyanBlue,
28 + color: Theme.of(context).indicatorColor,
29 height: 1
30 ),
31 );
@@ -52,7 +51,7 @@ class BalancePage extends StatelessWidget {
51 style: TextStyle(
52 fontSize: 18,
53 fontWeight: FontWeight.w500,
55 - color: PaletteDark.cyanBlue,
54 + color: Theme.of(context).indicatorColor,
55 height: 1
56 ),
57 );
lib/src/screens/dashboard/widgets/date_section_raw.dart
+1 -2
@@ -3,7 +3,6 @@ import 'package:intl/intl.dart';
3 import 'package:cake_wallet/generated/i18n.dart';
4 import 'package:provider/provider.dart';
5 import 'package:cake_wallet/src/stores/settings/settings_store.dart';
6 -import 'package:cake_wallet/palette.dart';
6
7 class DateSectionRaw extends StatelessWidget {
8 DateSectionRaw({this.date});
@@ -42,7 +41,7 @@ class DateSectionRaw extends StatelessWidget {
41 child: Text(title,
42 style: TextStyle(
43 fontSize: 12,
45 - color: PaletteDark.darkCyanBlue
44 + color: Theme.of(context).textTheme.overline.backgroundColor
45 ))
46 );
47 }
lib/src/screens/dashboard/widgets/header_row.dart
+36 -13
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
4 import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
@@ -11,11 +10,11 @@ class HeaderRow extends StatelessWidget {
10
11 final DashboardViewModel dashboardViewModel;
12
14 - final filterIcon = Image.asset('assets/images/filter_icon.png',
15 - color: PaletteDark.wildBlue);
16 -
13 @override
14 Widget build(BuildContext context) {
15 + final filterIcon = Image.asset('assets/images/filter_icon.png',
16 + color: Theme.of(context).textTheme.caption.decorationColor);
17 +
18 return Container(
19 height: 52,
20 color: Colors.transparent,
@@ -40,7 +39,7 @@ class HeaderRow extends StatelessWidget {
39 child: Text(S.of(context).transactions,
40 style: TextStyle(
41 fontWeight: FontWeight.bold,
43 - color: Theme.of(context).primaryTextTheme.caption.color))),
42 + color: Theme.of(context).primaryTextTheme.title.color))),
43 PopupMenuItem(
44 value: 0,
45 child: Observer(
@@ -49,7 +48,11 @@ class HeaderRow extends StatelessWidget {
48 MainAxisAlignment
49 .spaceBetween,
50 children: [
52 - Text(S.of(context).incoming),
51 + Text(S.of(context).incoming,
52 + style: TextStyle(
53 + color: Theme.of(context).primaryTextTheme.title.color
54 + ),
55 + ),
56 Checkbox(
57 value: dashboardViewModel
58 .transactionFilterStore
@@ -67,7 +70,11 @@ class HeaderRow extends StatelessWidget {
70 MainAxisAlignment
71 .spaceBetween,
72 children: [
70 - Text(S.of(context).outgoing),
73 + Text(S.of(context).outgoing,
74 + style: TextStyle(
75 + color: Theme.of(context).primaryTextTheme.title.color
76 + )
77 + ),
78 Checkbox(
79 value: dashboardViewModel
80 .transactionFilterStore
@@ -80,7 +87,11 @@ class HeaderRow extends StatelessWidget {
87 PopupMenuItem(
88 value: 2,
89 child:
83 - Text(S.of(context).transactions_by_date)),
90 + Text(S.of(context).transactions_by_date,
91 + style: TextStyle(
92 + color: Theme.of(context).primaryTextTheme.title.color
93 + )
94 + )),
95 PopupMenuDivider(),
96 PopupMenuItem(
97 enabled: false,
@@ -88,7 +99,7 @@ class HeaderRow extends StatelessWidget {
99 child: Text(S.of(context).trades,
100 style: TextStyle(
101 fontWeight: FontWeight.bold,
91 - color: Theme.of(context).primaryTextTheme.caption.color))),
102 + color: Theme.of(context).primaryTextTheme.title.color))),
103 PopupMenuItem(
104 value: 3,
105 child: Observer(
@@ -97,7 +108,11 @@ class HeaderRow extends StatelessWidget {
108 MainAxisAlignment
109 .spaceBetween,
110 children: [
100 - Text('XMR.TO'),
111 + Text('XMR.TO',
112 + style: TextStyle(
113 + color: Theme.of(context).primaryTextTheme.title.color
114 + )
115 + ),
116 Checkbox(
117 value: dashboardViewModel
118 .tradeFilterStore
@@ -117,7 +132,11 @@ class HeaderRow extends StatelessWidget {
132 MainAxisAlignment
133 .spaceBetween,
134 children: [
120 - Text('Change.NOW'),
135 + Text('Change.NOW',
136 + style: TextStyle(
137 + color: Theme.of(context).primaryTextTheme.title.color
138 + )
139 + ),
140 Checkbox(
141 value: dashboardViewModel
142 .tradeFilterStore
@@ -137,7 +156,11 @@ class HeaderRow extends StatelessWidget {
156 MainAxisAlignment
157 .spaceBetween,
158 children: [
140 - Text('MorphToken'),
159 + Text('MorphToken',
160 + style: TextStyle(
161 + color: Theme.of(context).primaryTextTheme.title.color
162 + )
163 + ),
164 Checkbox(
165 value: dashboardViewModel
166 .tradeFilterStore
@@ -155,7 +178,7 @@ class HeaderRow extends StatelessWidget {
178 width: 36,
179 decoration: BoxDecoration(
180 shape: BoxShape.circle,
158 - color: PaletteDark.oceanBlue
181 + color: Theme.of(context).textTheme.overline.color
182 ),
183 child: filterIcon,
184 ),
lib/src/screens/dashboard/widgets/menu_widget.dart
+13 -8
@@ -17,7 +17,7 @@ class MenuWidget extends StatefulWidget {
17
18 class MenuWidgetState extends State<MenuWidget> {
19 final moneroIcon = Image.asset('assets/images/monero_menu.png');
20 - final bitcoinIcon = Image.asset('assets/images/bitcoin.png');
20 + final bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png');
21 final largeScreen = 731;
22
23 double menuWidth;
@@ -81,7 +81,7 @@ class MenuWidgetState extends State<MenuWidget> {
81 width: 4,
82 decoration: BoxDecoration(
83 borderRadius: BorderRadius.all(Radius.circular(2)),
84 - color: Theme.of(context).hintColor),
84 + color: PaletteDark.gray),
85 )),
86 SizedBox(width: 12),
87 Expanded(
@@ -92,12 +92,13 @@ class MenuWidgetState extends State<MenuWidget> {
92 child: Container(
93 width: menuWidth,
94 height: double.infinity,
95 - color: PaletteDark.deepPurpleBlue,
95 + color: Theme.of(context).textTheme.body2.decorationColor,
96 child: SingleChildScrollView(
97 child: Column(
98 children: <Widget>[
99 Container(
100 height: headerHeight,
101 + color: Theme.of(context).textTheme.body2.color,
102 padding: EdgeInsets.only(
103 left: 24,
104 top: fromTopEdge,
@@ -120,7 +121,8 @@ class MenuWidgetState extends State<MenuWidget> {
121 Text(
122 widget.name,
123 style: TextStyle(
123 - color: Colors.white,
124 + color: Theme.of(context).textTheme
125 + .display2.color,
126 fontSize: 16,
127 fontWeight: FontWeight.bold),
128 ),
@@ -128,7 +130,9 @@ class MenuWidgetState extends State<MenuWidget> {
130 Text(
131 widget.subname,
132 style: TextStyle(
131 - color: PaletteDark.darkCyanBlue,
133 + color: Theme.of(context)
134 + .primaryTextTheme
135 + .caption.color,
136 fontWeight: FontWeight.w500,
137 fontSize: 12),
138 )
@@ -140,7 +144,7 @@ class MenuWidgetState extends State<MenuWidget> {
144 ),
145 Container(
146 height: 1,
143 - color: PaletteDark.darkOceanBlue,
147 + color: Theme.of(context).primaryTextTheme.caption.decorationColor,
148 ),
149 ListView.separated(
150 shrinkWrap: true,
@@ -178,7 +182,8 @@ class MenuWidgetState extends State<MenuWidget> {
182 child: Text(
183 item,
184 style: TextStyle(
181 - color: Colors.white,
185 + color: Theme.of(context).textTheme
186 + .display2.color,
187 fontSize: 16,
188 fontWeight: FontWeight.bold),
189 ))
@@ -189,7 +194,7 @@ class MenuWidgetState extends State<MenuWidget> {
194 },
195 separatorBuilder: (_, index) => Container(
196 height: 1,
192 - color: PaletteDark.darkOceanBlue,
197 + color: Theme.of(context).primaryTextTheme.caption.decorationColor,
198 ),
199 itemCount: itemCount)
200 ],
lib/src/screens/dashboard/widgets/sync_indicator.dart
+11 -10
@@ -13,35 +13,36 @@ class SyncIndicator extends StatelessWidget {
13 Widget build(BuildContext context) {
14 return Observer(
15 builder: (_) {
16 - final syncIndicatorWidth = 250.0;
16 + final syncIndicatorWidth = 237.0;
17 final status = dashboardViewModel.status;
18 - final statusText = status.title();
19 - final progress = status.progress();
18 + final statusText = status != null ? status.title() : '';
19 + final progress = status != null ? status.progress() : 0.0;
20 final indicatorOffset = progress * syncIndicatorWidth;
21 - final indicatorWidth =
22 - progress <= 1 ? syncIndicatorWidth - indicatorOffset : 0.0;
21 + final indicatorWidth = progress < 1
22 + ? indicatorOffset > 0 ? indicatorOffset : 0.0
23 + : syncIndicatorWidth;
24 final indicatorColor = status is SyncedSyncStatus
25 ? PaletteDark.brightGreen
25 - : PaletteDark.orangeYellow;
26 + : Theme.of(context).textTheme.caption.color;
27
28 return ClipRRect(
29 borderRadius: BorderRadius.all(Radius.circular(15)),
30 child: Container(
31 height: 30,
32 width: syncIndicatorWidth,
32 - color: PaletteDark.lightNightBlue,
33 + color: Theme.of(context).textTheme.title.decorationColor,
34 child: Stack(
35 alignment: Alignment.center,
36 children: <Widget>[
37 progress <= 1
38 ? Positioned(
38 - left: indicatorOffset,
39 + left: 0,
40 top: 0,
41 bottom: 0,
42 child: Container(
43 width: indicatorWidth,
44 height: 30,
44 - color: PaletteDark.oceanBlue,
45 + color: Theme.of(context).textTheme.title.backgroundColor,
46 )
47 )
48 : Offstage(),
@@ -70,7 +71,7 @@ class SyncIndicator extends StatelessWidget {
71 style: TextStyle(
72 fontSize: 12,
73 fontWeight: FontWeight.w500,
73 - color: PaletteDark.wildBlue
74 + color: Theme.of(context).textTheme.title.color
75 ),
76 ),
77 )
lib/src/screens/dashboard/widgets/trade_row.dart
+2 -2
@@ -1,7 +1,6 @@
1 import 'package:flutter/material.dart';
2 import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
3 import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
4 -import 'package:cake_wallet/palette.dart';
4
5 class TradeRow extends StatelessWidget {
6 TradeRow({
@@ -66,7 +65,8 @@ class TradeRow extends StatelessWidget {
65 Text(createdAtFormattedDate,
66 style: TextStyle(
67 fontSize: 14,
69 - color: PaletteDark.darkCyanBlue))
68 + color: Theme.of(context).textTheme
69 + .overline.backgroundColor))
70 ]),
71 ],
72 ),
lib/src/screens/dashboard/widgets/transaction_raw.dart
+5 -4
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2 import 'package:cake_wallet/src/domain/common/transaction_direction.dart';
3 import 'package:cake_wallet/generated/i18n.dart';
4
@@ -35,7 +34,7 @@ class TransactionRow extends StatelessWidget {
34 width: 36,
35 decoration: BoxDecoration(
36 shape: BoxShape.circle,
38 - color: PaletteDark.wildNightBlue
37 + color: Theme.of(context).textTheme.overline.decorationColor
38 ),
39 child: Image.asset(
40 direction == TransactionDirection.incoming
@@ -79,13 +78,15 @@ class TransactionRow extends StatelessWidget {
78 Text(formattedDate,
79 style: TextStyle(
80 fontSize: 14,
82 - color: PaletteDark.darkCyanBlue)),
81 + color: Theme.of(context).textTheme
82 + .overline.backgroundColor)),
83 Text(direction == TransactionDirection.incoming
84 ? formattedFiatAmount
85 : '- ' + formattedFiatAmount,
86 style: TextStyle(
87 fontSize: 14,
88 - color: PaletteDark.darkCyanBlue))
88 + color: Theme.of(context).textTheme
89 + .overline.backgroundColor))
90 ]),
91 ],
92 ),
lib/src/screens/dashboard/widgets/transactions_page.dart
+3 -2
@@ -75,7 +75,7 @@ class TransactionsPage extends StatelessWidget {
75 }
76
77 return Container(
78 - color: Theme.of(context).backgroundColor,
78 + color: Colors.transparent,
79 height: 1);
80 }
81 )
@@ -84,7 +84,8 @@ class TransactionsPage extends StatelessWidget {
84 S.of(context).placeholder_transactions,
85 style: TextStyle(
86 fontSize: 14,
87 - color: Colors.grey
87 + color: Theme.of(context).primaryTextTheme
88 + .overline.decorationColor
89 ),
90 ),
91 );
lib/src/screens/monero_accounts/monero_account_edit_or_create_page.dart
-8
@@ -8,7 +8,6 @@ import 'package:cake_wallet/view_model/monero_account_list/monero_account_edit_o
8 import 'package:cake_wallet/src/widgets/primary_button.dart';
9 import 'package:cake_wallet/src/screens/base_page.dart';
10 import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
11 -import 'package:cake_wallet/palette.dart';
11
12 class MoneroAccountEditOrCreatePage extends BasePage {
13 MoneroAccountEditOrCreatePage({@required this.moneroAccountCreationViewModel})
@@ -24,12 +23,6 @@ class MoneroAccountEditOrCreatePage extends BasePage {
23 @override
24 String get title => S.current.account;
25
27 - @override
28 - Color get backgroundLightColor => PaletteDark.backgroundColor;
29 -
30 - @override
31 - Color get backgroundDarkColor => PaletteDark.backgroundColor;
32 -
26 final GlobalKey<FormState> _formKey;
27 final TextEditingController _textController;
28
@@ -45,7 +38,6 @@ class MoneroAccountEditOrCreatePage extends BasePage {
38 child: Center(
39 child: BaseTextFormField(
40 controller: _textController,
48 - textColor: Colors.white,
41 hintText: S.of(context).account,
42 validator: MoneroLabelValidator(),
43 ))),
lib/src/screens/monero_accounts/monero_account_list_page.dart
+5 -5
@@ -64,7 +64,7 @@ class MoneroAccountListPage extends StatelessWidget {
64 borderRadius: BorderRadius.all(Radius.circular(14)),
65 child: Container(
66 height: 296,
67 - color: PaletteDark.deepPurpleBlue,
67 + color: Theme.of(context).textTheme.display4.decorationColor,
68 child: Column(
69 children: <Widget>[
70 Expanded(
@@ -83,7 +83,7 @@ class MoneroAccountListPage extends StatelessWidget {
83 separatorBuilder: (context, index) =>
84 Container(
85 height: 1,
86 - color: PaletteDark.dividerColor,
86 + color: Theme.of(context).dividerColor,
87 ),
88 itemCount: accounts.length ?? 0,
89 itemBuilder: (context, index) {
@@ -121,7 +121,7 @@ class MoneroAccountListPage extends StatelessWidget {
121 .pushNamed(Routes.accountCreation),
122 child: Container(
123 height: 62,
124 - color: Colors.white,
124 + color: Theme.of(context).textTheme.subtitle.decorationColor,
125 padding: EdgeInsets.only(left: 24, right: 24),
126 child: Center(
127 child: Row(
@@ -129,7 +129,7 @@ class MoneroAccountListPage extends StatelessWidget {
129 children: <Widget>[
130 Icon(
131 Icons.add,
132 - color: PaletteDark.darkNightBlue,
132 + color: Colors.white,
133 ),
134 Padding(
135 padding: EdgeInsets.only(left: 5),
@@ -138,7 +138,7 @@ class MoneroAccountListPage extends StatelessWidget {
138 style: TextStyle(
139 fontSize: 15,
140 fontWeight: FontWeight.w600,
141 - color: PaletteDark.darkNightBlue,
141 + color: Colors.white,
142 decoration: TextDecoration.none,
143 ),
144 ),
lib/src/screens/monero_accounts/widgets/account_tile.dart
+6 -3
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2
3 class AccountTile extends StatelessWidget {
4 AccountTile({
@@ -14,8 +13,12 @@ class AccountTile extends StatelessWidget {
13
14 @override
15 Widget build(BuildContext context) {
17 - final color = isCurrent ? PaletteDark.lightOceanBlue : Colors.transparent;
18 - final textColor = isCurrent ? Colors.blue : Colors.white;
16 + final color = isCurrent
17 + ? Theme.of(context).textTheme.subtitle.decorationColor
18 + : Theme.of(context).textTheme.display4.decorationColor;
19 + final textColor = isCurrent
20 + ? Theme.of(context).textTheme.subtitle.color
21 + : Theme.of(context).textTheme.display4.color;
22
23 return GestureDetector(
24 onTap: onTap,
lib/src/screens/receive/receive_page.dart
+27 -10
@@ -14,7 +14,6 @@ import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_h
14 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart';
15 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
16 import 'package:cake_wallet/src/screens/receive/widgets/qr_widget.dart';
17 -import 'package:cake_wallet/palette.dart';
17
18 class ReceivePage extends BasePage {
19 ReceivePage({this.addressListViewModel});
@@ -25,10 +24,26 @@ class ReceivePage extends BasePage {
24 String get title => S.current.receive;
25
26 @override
28 - Color get backgroundLightColor => PaletteDark.backgroundColor;
27 + Color get backgroundLightColor => Colors.transparent;
28
29 @override
31 - Color get backgroundDarkColor => PaletteDark.backgroundColor;
30 + Color get backgroundDarkColor => Colors.transparent;
31 +
32 + @override
33 + Color get titleColor => Colors.white;
34 +
35 + @override
36 + Widget Function(BuildContext, Widget) get rootWrapper =>
37 + (BuildContext context, Widget scaffold) => Container(
38 + decoration: BoxDecoration(
39 + gradient: LinearGradient(colors: [
40 + Theme.of(context).accentColor,
41 + Theme.of(context).scaffoldBackgroundColor,
42 + Theme.of(context).primaryColor,
43 + ],
44 + begin: Alignment.topRight,
45 + end: Alignment.bottomLeft)),
46 + child: scaffold);
47
48 @override
49 Widget trailing(BuildContext context) {
@@ -66,7 +81,9 @@ class ReceivePage extends BasePage {
81 Observer(
82 builder: (_) => ListView.separated(
83 separatorBuilder: (context, _) =>
69 - Container(height: 1, color: PaletteDark.dividerColor),
84 + Container(
85 + height: 1,
86 + color: Theme.of(context).dividerColor),
87 shrinkWrap: true,
88 physics: NeverScrollableScrollPhysics(),
89 itemCount: addressListViewModel.items.length,
@@ -83,7 +100,7 @@ class ReceivePage extends BasePage {
100 icon: Icon(
101 Icons.arrow_forward_ios,
102 size: 14,
86 - color: Colors.white,
103 + color: Theme.of(context).textTheme.display1.color,
104 ));
105 }
106
@@ -95,7 +112,7 @@ class ReceivePage extends BasePage {
112 icon: Icon(
113 Icons.add,
114 size: 20,
98 - color: Colors.white,
115 + color: Theme.of(context).textTheme.display1.color,
116 ));
117 }
118
@@ -105,11 +122,11 @@ class ReceivePage extends BasePage {
122 final isCurrent = item.address ==
123 addressListViewModel.address.address;
124 final backgroundColor = isCurrent
108 - ? PaletteDark.lightOceanBlue
109 - : PaletteDark.nightBlue;
125 + ? Theme.of(context).textTheme.display3.decorationColor
126 + : Theme.of(context).textTheme.display2.decorationColor;
127 final textColor = isCurrent
111 - ? Colors.blue
112 - : Colors.white;
128 + ? Theme.of(context).textTheme.display3.color
129 + : Theme.of(context).textTheme.display2.color;
130
131 return AddressCell.fromItem(item,
132 isCurrent: isCurrent,
lib/src/screens/receive/widgets/header_tile.dart
+4 -5
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2
3 class HeaderTile extends StatelessWidget {
4 HeaderTile({
@@ -23,7 +22,7 @@ class HeaderTile extends StatelessWidget {
22 top: 24,
23 bottom: 24
24 ),
26 - color: PaletteDark.nightBlue,
25 + color: Theme.of(context).textTheme.display2.decorationColor,
26 child: Row(
27 mainAxisSize: MainAxisSize.max,
28 mainAxisAlignment: MainAxisAlignment.spaceBetween,
@@ -32,8 +31,8 @@ class HeaderTile extends StatelessWidget {
31 title,
32 style: TextStyle(
33 fontSize: 18,
35 - fontWeight: FontWeight.w500,
36 - color: Colors.white
34 + fontWeight: FontWeight.w600,
35 + color: Theme.of(context).textTheme.display2.color
36 ),
37 ),
38 Container(
@@ -41,7 +40,7 @@ class HeaderTile extends StatelessWidget {
40 width: 32,
41 decoration: BoxDecoration(
42 shape: BoxShape.circle,
44 - color: PaletteDark.distantNightBlue
43 + color: Theme.of(context).textTheme.display1.decorationColor
44 ),
45 child: icon,
46 )
lib/src/screens/receive/widgets/qr_widget.dart
+5 -6
@@ -7,7 +7,6 @@ import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
7 import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
8 import 'package:cake_wallet/core/amount_validator.dart';
9 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
10 -import 'package:cake_wallet/palette.dart';
10
11 class QRWidget extends StatelessWidget {
12 QRWidget({
@@ -27,7 +26,7 @@ class QRWidget extends StatelessWidget {
26 @override
27 Widget build(BuildContext context) {
28 final copyImage = Image.asset('assets/images/copy_address.png',
30 - color: PaletteDark.lightBlueGrey);
29 + color: Theme.of(context).textTheme.subhead.decorationColor);
30 final addressTopOffset = isAmountFieldShow ? 60.0 : 40.0;
31
32 return Column(
@@ -45,7 +44,7 @@ class QRWidget extends StatelessWidget {
44 child: QrImage(
45 data: addressListViewModel.uri.toString(),
46 backgroundColor: Colors.transparent,
48 - foregroundColor: PaletteDark.lightBlueGrey,
47 + foregroundColor: Theme.of(context).textTheme.headline.color,
48 ))))),
49 Spacer(flex: 3)
50 ]),
@@ -56,7 +55,7 @@ class QRWidget extends StatelessWidget {
55 style: TextStyle(
56 fontSize: 12,
57 fontWeight: FontWeight.w500,
59 - color: PaletteDark.cyanBlue
58 + color: Theme.of(context).indicatorColor
59 ),
60 ),
61 ),
@@ -79,14 +78,14 @@ class QRWidget extends StatelessWidget {
78 textAlign: TextAlign.center,
79 hintText: S.of(context).receive_amount,
80 textColor: Colors.white,
82 - borderColor: PaletteDark.darkGrey,
81 + borderColor: Theme.of(context).textTheme.headline.decorationColor,
82 validator: AmountValidator(
83 type: addressListViewModel.type,
84 isAutovalidate: true
85 ),
86 autovalidate: true,
87 placeholderTextStyle: TextStyle(
89 - color: PaletteDark.cyanBlue,
88 + color: Theme.of(context).hoverColor,
89 fontSize: 18,
90 fontWeight: FontWeight.w500))))
91 ],
lib/src/screens/subaddress/address_edit_or_create_page.dart
-8
@@ -8,7 +8,6 @@ import 'package:cake_wallet/core/address_label_validator.dart';
8 import 'package:cake_wallet/src/widgets/primary_button.dart';
9 import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
10 import 'package:cake_wallet/src/screens/base_page.dart';
11 -import 'package:cake_wallet/palette.dart';
11
12 class AddressEditOrCreatePage extends BasePage {
13 AddressEditOrCreatePage({@required this.addressEditOrCreateViewModel})
@@ -29,12 +28,6 @@ class AddressEditOrCreatePage extends BasePage {
28 @override
29 String get title => S.current.new_subaddress_title;
30
32 - @override
33 - Color get backgroundLightColor => PaletteDark.backgroundColor;
34 -
35 - @override
36 - Color get backgroundDarkColor => PaletteDark.backgroundColor;
37 -
31 @override
32 Widget body(BuildContext context) {
33 reaction((_) => addressEditOrCreateViewModel.state,
@@ -55,7 +48,6 @@ class AddressEditOrCreatePage extends BasePage {
48 child: Center(
49 child: BaseTextFormField(
50 controller: _labelController,
58 - textColor: Colors.white,
51 hintText: S.of(context).new_subaddress_label_name,
52 validator: AddressLabelValidator()))),
53 Observer(
lib/src/screens/trade_details/trade_details_page.dart
+2 -6
@@ -24,7 +24,6 @@ class TradeDetailsPage extends BasePage {
24 formatDefault: "dd.MM.yyyy, HH:mm");
25
26 return Container(
27 - padding: EdgeInsets.only(top: 20, bottom: 20),
27 child: Observer(builder: (_) {
28 final trade = exchangeStore.trade;
29 final items = [
@@ -59,17 +58,15 @@ class TradeDetailsPage extends BasePage {
58 separatorBuilder: (_, __) => Container(
59 height: 1,
60 padding: EdgeInsets.only(left: 24),
62 - color: Theme.of(context).accentTextTheme.title.backgroundColor,
61 + color: Theme.of(context).backgroundColor,
62 child: Container(
63 height: 1,
65 - color: Theme.of(context).dividerColor,
64 + color: Theme.of(context).primaryTextTheme.title.backgroundColor,
65 ),
66 ),
67 itemCount: items.length,
68 itemBuilder: (BuildContext context, int index) {
69 final item = items[index];
71 -
72 - final isDrawTop = index == 0 ? true : false;
70 final isDrawBottom = index == items.length - 1 ? true : false;
71
72 return GestureDetector(
@@ -87,7 +84,6 @@ class TradeDetailsPage extends BasePage {
84 child: StandartListRow(
85 title: '${item.title}',
86 value: '${item.value}',
90 - isDrawTop: isDrawTop,
87 isDrawBottom: isDrawBottom,
88 ));
89 });
lib/src/screens/transaction_details/transaction_details_page.dart
+2 -6
@@ -69,22 +69,19 @@ class TransactionDetailsPage extends BasePage {
69 @override
70 Widget body(BuildContext context) {
71 return Container(
72 - padding: EdgeInsets.only(top: 20, bottom: 20),
72 child: ListView.separated(
73 separatorBuilder: (context, index) => Container(
74 height: 1,
75 padding: EdgeInsets.only(left: 24),
77 - color: Theme.of(context).accentTextTheme.title.backgroundColor,
76 + color: Theme.of(context).backgroundColor,
77 child: Container(
78 height: 1,
80 - color: Theme.of(context).dividerColor,
79 + color: Theme.of(context).primaryTextTheme.title.backgroundColor,
80 ),
81 ),
82 itemCount: _items.length,
83 itemBuilder: (context, index) {
84 final item = _items[index];
86 -
87 - final isDrawTop = index == 0 ? true : false;
85 final isDrawBottom = index == _items.length - 1 ? true : false;
86
87 return GestureDetector(
@@ -102,7 +99,6 @@ class TransactionDetailsPage extends BasePage {
99 child: StandartListRow(
100 title: '${item.title}:',
101 value: item.value,
105 - isDrawTop: isDrawTop,
102 isDrawBottom: isDrawBottom),
103 );
104 }),
lib/src/widgets/base_text_form_field.dart
+4 -5
@@ -64,21 +64,20 @@ class BaseTextFormField extends StatelessWidget {
64 suffixIcon: suffixIcon,
65 hintStyle: placeholderTextStyle ??
66 TextStyle(
67 - color: hintColor ??
68 - Theme.of(context).primaryTextTheme.caption.color,
67 + color: hintColor ?? Theme.of(context).hintColor,
68 fontSize: 16),
69 hintText: hintText,
70 focusedBorder: UnderlineInputBorder(
71 borderSide: BorderSide(
73 - color: borderColor ?? Theme.of(context).dividerColor,
72 + color: borderColor ?? Theme.of(context).primaryTextTheme.title.backgroundColor,
73 width: 1.0)),
74 disabledBorder: UnderlineInputBorder(
75 borderSide: BorderSide(
77 - color: borderColor ?? Theme.of(context).dividerColor,
76 + color: borderColor ?? Theme.of(context).primaryTextTheme.title.backgroundColor,
77 width: 1.0)),
78 enabledBorder: UnderlineInputBorder(
79 borderSide: BorderSide(
81 - color: borderColor ?? Theme.of(context).dividerColor,
80 + color: borderColor ?? Theme.of(context).primaryTextTheme.title.backgroundColor,
81 width: 1.0))),
82 validator: validator,
83 );
lib/src/widgets/cake_scrollbar.dart
+2 -3
@@ -1,5 +1,4 @@
1 import 'package:flutter/material.dart';
2 -import 'package:cake_wallet/palette.dart';
2
3 class CakeScrollbar extends StatelessWidget {
4 CakeScrollbar({
@@ -20,7 +19,7 @@ class CakeScrollbar extends StatelessWidget {
19 height: backgroundHeight,
20 width: 6,
21 decoration: BoxDecoration(
23 - color: PaletteDark.violetBlue,
22 + color: Theme.of(context).textTheme.body1.decorationColor,
23 borderRadius: BorderRadius.all(Radius.circular(3))
24 ),
25 child: Stack(
@@ -32,7 +31,7 @@ class CakeScrollbar extends StatelessWidget {
31 height: thumbHeight,
32 width: 6.0,
33 decoration: BoxDecoration(
35 - color: PaletteDark.wildBlueGrey,
34 + color: Theme.of(context).textTheme.body1.color,
35 borderRadius: BorderRadius.all(Radius.circular(3))
36 ),
37 ),
lib/src/widgets/primary_button.dart
+2 -3
@@ -1,6 +1,5 @@
1 import 'package:flutter/cupertino.dart';
2 import 'package:flutter/material.dart';
3 -import 'package:cake_wallet/palette.dart';
3
4 class PrimaryButton extends StatelessWidget {
5 const PrimaryButton(
@@ -38,7 +37,7 @@ class PrimaryButton extends StatelessWidget {
37 fontSize: 15.0,
38 fontWeight: FontWeight.w600,
39 color: isDisabled
41 - ? Colors.grey.withOpacity(0.5)
40 + ? textColor.withOpacity(0.5)
41 : textColor)),
42 ));
43 }
@@ -78,7 +77,7 @@ class LoadingPrimaryButton extends StatelessWidget {
77 fontSize: 15.0,
78 fontWeight: FontWeight.w600,
79 color: isDisabled
81 - ? Colors.grey.withOpacity(0.5)
80 + ? textColor.withOpacity(0.5)
81 : textColor
82 )),
83 ));
lib/src/widgets/standart_list_row.dart
+13 -18
@@ -4,28 +4,19 @@ class StandartListRow extends StatelessWidget {
4 StandartListRow(
5 {this.title,
6 this.value,
7 - this.isDrawTop = false,
7 this.isDrawBottom = false});
8
9 final String title;
10 final String value;
12 - final bool isDrawTop;
11 final bool isDrawBottom;
12
13 @override
14 Widget build(BuildContext context) {
15 return Column(
16 children: <Widget>[
19 - isDrawTop
20 - ? Container(
21 - width: double.infinity,
22 - height: 1,
23 - color: Theme.of(context).dividerColor,
24 - )
25 - : Offstage(),
17 Container(
18 width: double.infinity,
28 - color: Theme.of(context).accentTextTheme.title.backgroundColor,
19 + color: Theme.of(context).backgroundColor,
20 child: Padding(
21 padding:
22 const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24),
@@ -35,9 +26,9 @@ class StandartListRow extends StatelessWidget {
26 Text(title,
27 style: TextStyle(
28 fontSize: 14,
38 - fontWeight: FontWeight.w600,
29 + fontWeight: FontWeight.w500,
30 color:
40 - Theme.of(context).primaryTextTheme.caption.color),
31 + Theme.of(context).primaryTextTheme.overline.color),
32 textAlign: TextAlign.left),
33 Padding(
34 padding: const EdgeInsets.only(top: 12),
@@ -54,12 +45,16 @@ class StandartListRow extends StatelessWidget {
45 ),
46 ),
47 isDrawBottom
57 - ? Container(
58 - width: double.infinity,
59 - height: 1,
60 - color: Theme.of(context).dividerColor,
61 - )
62 - : Offstage(),
48 + ? Container(
49 + height: 1,
50 + padding: EdgeInsets.only(left: 24),
51 + color: Theme.of(context).backgroundColor,
52 + child: Container(
53 + height: 1,
54 + color: Theme.of(context).primaryTextTheme.title.backgroundColor,
55 + ),
56 + )
57 + : Offstage(),
58 ],
59 );
60 }
lib/themes.dart
+172 -41
@@ -7,47 +7,113 @@ class Themes {
7 fontFamily: 'Poppins',
8 brightness: Brightness.light,
9 backgroundColor: Colors.white,
10 - focusColor: Colors.white, // wallet card border
11 - hintColor: Colors.white, // menu
12 - scaffoldBackgroundColor: Palette.blueAlice, // gradient background start
13 - primaryColor: Palette.lightBlue, // gradient background end
14 - cardColor: Palette.blueAlice,
15 - cardTheme: CardTheme(
16 - color: Colors.white, // synced card start
10 + accentColor: Palette.blueCraiola, // first gradient color
11 + scaffoldBackgroundColor: Palette.pinkFlamingo, // second gradient color
12 + primaryColor: Palette.redHat, // third gradient color
13 + buttonColor: Colors.white.withOpacity(0.2), // action buttons on dashboard page
14 + indicatorColor: Colors.white.withOpacity(0.5), // page indicator
15 + hoverColor: Colors.white, // amount hint text (receive page)
16 + dividerColor: Palette.paleBlue,
17 + hintColor: Palette.gray,
18 + textTheme: TextTheme(
19 + title: TextStyle(
20 + color: Colors.white, // sync_indicator text
21 + backgroundColor: Colors.white.withOpacity(0.2), // synced sync_indicator
22 + decorationColor: Colors.white.withOpacity(0.15), // not synced sync_indicator
23 + ),
24 + caption: TextStyle(
25 + color: Palette.shineOrange, // not synced light
26 + decorationColor: Colors.white, // filter icon
27 + ),
28 + overline: TextStyle(
29 + color: Colors.white.withOpacity(0.2), // filter button
30 + backgroundColor: Colors.white.withOpacity(0.5), // date section row
31 + decorationColor: Colors.white.withOpacity(0.2) // icons (transaction and trade rows)
32 + ),
33 + subhead: TextStyle(
34 + color: Colors.white.withOpacity(0.2), // address button border
35 + decorationColor: Colors.white.withOpacity(0.4), // copy button (qr widget)
36 + ),
37 + headline: TextStyle(
38 + color: Colors.white, // qr code
39 + decorationColor: Colors.white.withOpacity(0.5), // bottom border of amount (receive page)
40 + ),
41 + display1: TextStyle(
42 + color: PaletteDark.lightBlueGrey, // icons color (receive page)
43 + decorationColor: Palette.lavender, // icons background (receive page)
44 + ),
45 + display2: TextStyle(
46 + color: Palette.darkBlueCraiola, // text color of tiles (receive page)
47 + decorationColor: Colors.white // background of tiles (receive page)
48 + ),
49 + display3: TextStyle(
50 + color: Colors.white, // text color of current tile (receive page),
51 + decorationColor: Palette.blueCraiola // background of current tile (receive page)
52 + ),
53 + display4: TextStyle(
54 + color: Palette.violetBlue, // text color of tiles (account list)
55 + decorationColor: Colors.white // background of tiles (account list)
56 + ),
57 + subtitle: TextStyle(
58 + color: Colors.white, // text color of current tile (account list)
59 + decorationColor: Palette.blueCraiola // background of current tile (account list)
60 + ),
61 + body1: TextStyle(
62 + color: Palette.moderatePurpleBlue, // scrollbar thumb
63 + decorationColor: Palette.periwinkleCraiola // scrollbar background
64 + ),
65 + body2: TextStyle(
66 + color: Palette.moderateLavender, // menu header
67 + decorationColor: Colors.white, // menu background
68 + )
69 ),
18 - hoverColor: Colors.white, // synced card end
70 primaryTextTheme: TextTheme(
71 title: TextStyle(
21 - color: Palette.oceanBlue, // primary text
22 - backgroundColor: Colors.white // selectButton text
72 + color: Palette.darkBlueCraiola, // title color
73 + backgroundColor: Palette.wildPeriwinkle // textfield underline
74 ),
75 caption: TextStyle(
25 - color: Palette.lightBlueGrey, // secondary text
76 + color: PaletteDark.pigeonBlue, // secondary text
77 + decorationColor: Palette.wildLavender // menu divider
78 ),
79 overline: TextStyle(
28 - color: Palette.lavender // address field in the wallet card
80 + color: Palette.darkGray, // transaction/trade details titles
81 + decorationColor: Colors.white.withOpacity(0.5), // placeholder
82 ),
83 +
84 +
85 +
86 +
87 subhead: TextStyle(
31 - color: Colors.white.withOpacity(0.5) // send, exchange, buy buttons on dashboard page
88 + color: Colors.white.withOpacity(0.5) // send, exchange, buy buttons on dashboard page
89 ),
90 headline: TextStyle(
34 - color: Palette.lightBlueGrey // historyPanelText
91 + color: Palette.lightBlueGrey // historyPanelText
92 ),
93 display1: TextStyle(
37 - color: Colors.white // menuList
94 + color: Colors.white // menuList
95 ),
96 display2: TextStyle(
40 - color: Palette.lavender // menuHeader
97 + color: Palette.lavender // menuHeader
98 ),
99 display3: TextStyle(
43 - color: Palette.lavender // historyPanelButton
100 + color: Palette.lavender // historyPanelButton
101 ),
102 display4: TextStyle(
46 - color: Palette.oceanBlue // QR code
103 + color: Palette.oceanBlue // QR code
104 ),
48 -// headline1: TextStyle(color: Palette.nightBlue)
105 ),
50 - dividerColor: Palette.eee,
106 +
107 +
108 +
109 + focusColor: Colors.white, // wallet card border
110 +
111 + cardColor: Palette.blueAlice,
112 + cardTheme: CardTheme(
113 + color: Colors.white, // synced card start
114 + ),
115 +
116 +
117 accentTextTheme: TextTheme(
118 title: TextStyle(
119 color: Palette.darkLavender, // top panel
@@ -75,48 +141,113 @@ class Themes {
141 static final ThemeData darkTheme = ThemeData(
142 fontFamily: 'Poppins',
143 brightness: Brightness.dark,
78 - backgroundColor: PaletteDark.darkNightBlue,
79 - focusColor: PaletteDark.lightDistantBlue, // wallet card border
80 - hintColor: PaletteDark.gray, // menu
81 - scaffoldBackgroundColor: PaletteDark.distantBlue, // gradient background start
82 - primaryColor: PaletteDark.distantBlue, // gradient background end
83 - cardColor: PaletteDark.darkNightBlue,
84 - cardTheme: CardTheme(
85 - color: PaletteDark.moderateBlue, // synced card start
144 + backgroundColor: PaletteDark.backgroundColor,
145 + accentColor: PaletteDark.backgroundColor, // first gradient color
146 + scaffoldBackgroundColor: PaletteDark.backgroundColor, // second gradient color
147 + primaryColor: PaletteDark.backgroundColor, // third gradient color
148 + buttonColor: PaletteDark.nightBlue, // action buttons on dashboard page
149 + indicatorColor: PaletteDark.cyanBlue, // page indicator
150 + hoverColor: PaletteDark.cyanBlue, // amount hint text (receive page)
151 + dividerColor: PaletteDark.dividerColor,
152 + hintColor: PaletteDark.pigeonBlue, // menu
153 + textTheme: TextTheme(
154 + title: TextStyle(
155 + color: PaletteDark.wildBlue, // sync_indicator text
156 + backgroundColor: PaletteDark.lightNightBlue, // synced sync_indicator
157 + decorationColor: PaletteDark.oceanBlue // not synced sync_indicator
158 + ),
159 + caption: TextStyle(
160 + color: PaletteDark.orangeYellow, // not synced light
161 + decorationColor: PaletteDark.wildBlue, // filter icon
162 + ),
163 + overline: TextStyle(
164 + color: PaletteDark.oceanBlue, // filter button
165 + backgroundColor: PaletteDark.darkCyanBlue, // date section row
166 + decorationColor: PaletteDark.wildNightBlue // icons (transaction and trade rows)
167 + ),
168 + subhead: TextStyle(
169 + color: PaletteDark.nightBlue, // address button border
170 + decorationColor: PaletteDark.lightBlueGrey, // copy button (qr widget)
171 + ),
172 + headline: TextStyle(
173 + color: PaletteDark.lightBlueGrey, // qr code
174 + decorationColor: PaletteDark.darkGrey, // bottom border of amount (receive page)
175 + ),
176 + display1: TextStyle(
177 + color: Colors.white, // icons color (receive page)
178 + decorationColor: PaletteDark.distantNightBlue, // icons background (receive page)
179 + ),
180 + display2: TextStyle(
181 + color: Colors.white, // text color of tiles (receive page)
182 + decorationColor: PaletteDark.nightBlue // background of tiles (receive page)
183 + ),
184 + display3: TextStyle(
185 + color: Colors.blue, // text color of current tile (receive page)
186 + decorationColor: PaletteDark.lightOceanBlue // background of current tile (receive page)
187 + ),
188 + display4: TextStyle(
189 + color: Colors.white, // text color of tiles (account list)
190 + decorationColor: PaletteDark.darkOceanBlue // background of tiles (account list)
191 + ),
192 + subtitle: TextStyle(
193 + color: Palette.blueCraiola, // text color of current tile (account list)
194 + decorationColor: PaletteDark.darkNightBlue // background of current tile (account list)
195 + ),
196 + body1: TextStyle(
197 + color: PaletteDark.wildBlueGrey, // scrollbar thumb
198 + decorationColor: PaletteDark.violetBlue // scrollbar background
199 + ),
200 + body2: TextStyle(
201 + color: PaletteDark.deepPurpleBlue, // menu header
202 + decorationColor: PaletteDark.deepPurpleBlue, // menu background
203 + )
204 ),
87 - hoverColor: PaletteDark.nightBlue, // synced card end
205 primaryTextTheme: TextTheme(
206 title: TextStyle(
90 - color: Colors.white,
91 - backgroundColor: PaletteDark.moderatePurpleBlue // selectButton text
207 + color: Colors.white, // title color
208 + backgroundColor: PaletteDark.darkOceanBlue // textfield underline
209 ),
210 caption: TextStyle(
94 - color: PaletteDark.gray,
211 + color: PaletteDark.darkCyanBlue, // secondary text
212 + decorationColor: PaletteDark.darkOceanBlue // menu divider
213 ),
214 overline: TextStyle(
97 - color: PaletteDark.lightDistantBlue // address field in the wallet card
215 + color: PaletteDark.lightBlueGrey, // transaction/trade details titles
216 + decorationColor: Colors.grey, // placeholder
217 ),
218 +
219 +
220 +
221 subhead: TextStyle(
100 - color: PaletteDark.lightDistantBlue // send, exchange, buy buttons on dashboard page
222 + color: PaletteDark.lightDistantBlue // send, exchange, buy buttons on dashboard page
223 ),
224 headline: TextStyle(
103 - color: PaletteDark.pigeonBlue // historyPanelText
225 + color: PaletteDark.pigeonBlue // historyPanelText
226 ),
227 display1: TextStyle(
106 - color: PaletteDark.lightNightBlue // menuList
228 + color: PaletteDark.lightNightBlue // menuList
229 ),
230 display2: TextStyle(
109 - color: PaletteDark.headerNightBlue // menuHeader
231 + color: PaletteDark.headerNightBlue // menuHeader
232 ),
233 display3: TextStyle(
112 - color: PaletteDark.moderateNightBlue // historyPanelButton
234 + color: PaletteDark.moderateNightBlue // historyPanelButton
235 ),
236 display4: TextStyle(
115 - color: PaletteDark.gray // QR code
237 + color: PaletteDark.gray // QR code
238 ),
117 -// headline5: TextStyle(color: PaletteDark.gray)
239 ),
119 - dividerColor: PaletteDark.distantBlue,
240 +
241 +
242 +
243 + focusColor: PaletteDark.lightDistantBlue, // wallet card border
244 + cardColor: PaletteDark.darkNightBlue,
245 + cardTheme: CardTheme(
246 + color: PaletteDark.moderateBlue, // synced card start
247 + ),
248 +
249 +
250 +
251 accentTextTheme: TextTheme(
252 title: TextStyle(
253 color: PaletteDark.moderateBlue, // top panel