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