mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
Cw 396 additional themes (#962)
* fix: SectionStandardList using BuildContext as param * refactor: deprecated backgroundColor -> colorScheme.background * refactor: themeBase and current themes * refactor: accentTextTheme.titleLarge.color -> dialogTheme.backgroundColor * refactor: gradient background * refactor: text themes using the same color as primaryColor * refactor: accentTextTheme.bodySmall.color -> cardColor * refactor: text themes using same dialogBackgroundColor * refactor: scrollbarTheme * refactor: create SyncIndicatorTheme * refactor: SectionDivider * refactor: base_page improvements and simplify * refactor: collapsible_standart_list improvements * refactor: accentTextTheme.bodyLarge.backgroundColor -> KeyboardTheme.keyboardBarColor * refactor: create PinCodeTheme for accentTextTheme.bodyMedium * refactor: create SupportPageTheme for accentTextTheme.displayLarge.backgroundColor and fix cases that use it * refactor: accentTextTheme.displayLarge.color -> disabledColor * refactor: create ExchangePageTheme * refactor: create DashboardPageTheme and use textColor * refactor: create NewWalletTheme for accentTextTheme.displayMedium * refactor: create BalancePageTheme for accentTextTheme.displaySmall.backgroundColor * refactor: create AddressTheme for accentTextTheme.displaySmall.color * refactor: create IndicatorDotTheme * refactor: create CakeMenuTheme * refactor: create FilterTheme * refactor: create WalletListTheme * refactor: accentTextTheme.bodySmall.decorationColor -> InfoTheme.textColor * refactor: accentTextTheme.titleLarge.backgroundColor -> PickerTheme.dividerColor * refactor: primaryTextTheme.bodyLarge.backgroundColor -> AlertTheme.leftButtonTextColor * refactor: primaryTextTheme.displayLarge.backgroundColor -> OrderTheme.iconColor * refactor: create SendPageTheme * fix: missing migrated styles * refactor: primaryTextTheme.labelSmall.decorationColor -> PlaceholderTheme.color * refactor: create TransactionTradeTheme * refactor: create CakeTextTheme * refactor: create AccountListTheme * refactor: create ReceivePageTheme * refactor: create QRCodeTheme * refactor: move remaining items to CakeTextTheme and some missing fixes * feat(display_settings): add new theme selector * feat: additional themes * fix: conflict error * fix(lag): move colorScheme initialization to constructor * feat: add backdropColor to alert and picker backdrop filters * fix: merge fixes * fix: send template page missing new colors * fix: anonpay pages title and icon colors * fix: merge fixes * fix: unspent coins page * fix: also fix exchange template * fix: missing checkbox * fix: fixes for high contrast theme * Merge branch 'main' into CW-396-additional-themes * fix: merge fixes * fix: .gitignore and rm added files * Fix review comments --------- Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
parent
5ec930cbc6
commit
09c942564e
229 changed files with 4089 additions and 2869 deletions
14
lib/themes/bitcoin_dark_theme.dart
Normal file
14
lib/themes/bitcoin_dark_theme.dart
Normal file
|
@ -0,0 +1,14 @@
|
|||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/themes/monero_dark_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class BitcoinDarkTheme extends MoneroDarkTheme {
|
||||
BitcoinDarkTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.bitcoin_dark_theme;
|
||||
@override
|
||||
Color get primaryColor => Palette.bitcoinOrange;
|
||||
}
|
||||
|
13
lib/themes/bitcoin_light_theme.dart
Normal file
13
lib/themes/bitcoin_light_theme.dart
Normal file
|
@ -0,0 +1,13 @@
|
|||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/themes/monero_light_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class BitcoinLightTheme extends MoneroLightTheme {
|
||||
BitcoinLightTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.bitcoin_light_theme;
|
||||
@override
|
||||
Color get primaryColor => Palette.bitcoinOrange;
|
||||
}
|
|
@ -1,275 +1,126 @@
|
|||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/order_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/light_theme.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class BrightTheme extends ThemeBase {
|
||||
class BrightTheme extends LightTheme {
|
||||
BrightTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.bright_theme;
|
||||
|
||||
@override
|
||||
ThemeType get type => ThemeType.bright;
|
||||
@override
|
||||
Color get primaryColor => Palette.moderateSlateBlue;
|
||||
@override
|
||||
Color get containerColor => Palette.moderateLavender;
|
||||
|
||||
ThemeData theme = ThemeData(
|
||||
fontFamily: 'Lato',
|
||||
brightness: Brightness.light,
|
||||
scaffoldBackgroundColor: Palette.pinkFlamingo, // second gradient color
|
||||
primaryColor: Palette.redHat, // third gradient color
|
||||
indicatorColor: Colors.white.withOpacity(0.5), // page indicator
|
||||
hoverColor: Colors.white, // amount hint text (receive page)
|
||||
dividerColor: Palette.paleBlue,
|
||||
hintColor: Palette.gray,
|
||||
textTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: Colors.white, // sync_indicator text
|
||||
backgroundColor: Colors.white.withOpacity(0.2), // synced sync_indicator
|
||||
decorationColor: Colors.white.withOpacity(0.15), // not synced sync_indicator
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: Palette.shineOrange, // not synced light
|
||||
decorationColor: Colors.white, // filter icon
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Colors.white.withOpacity(0.2), // filter button
|
||||
backgroundColor:
|
||||
Colors.white.withOpacity(0.5), // date section row
|
||||
decorationColor: Colors.white
|
||||
.withOpacity(0.2) // icons (transaction and trade rows)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Colors.white.withOpacity(0.2), // address button border
|
||||
decorationColor: Colors.white.withOpacity(0.4), // copy button (qr widget)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Colors.white, // qr code
|
||||
decorationColor: Colors.white.withOpacity(0.5), // bottom border of amount (receive page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: PaletteDark.lightBlueGrey, // icons color (receive page)
|
||||
decorationColor: Palette.lavender, // icons background (receive page)
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color:
|
||||
Palette.darkBlueCraiola, // text color of tiles (receive page)
|
||||
decorationColor:
|
||||
Colors.white // background of tiles (receive page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Colors.white, // text color of current tile (receive page),
|
||||
//decorationColor: Palette.blueCraiola // background of current tile (receive page)
|
||||
decorationColor: Palette
|
||||
.moderateSlateBlue // background of current tile (receive page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.violetBlue, // text color of tiles (account list)
|
||||
decorationColor:
|
||||
Colors.white // background of tiles (account list)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette
|
||||
.moderateSlateBlue, // text color of current tile (account list)
|
||||
decorationColor:
|
||||
Colors.white // background of current tile (account list)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.moderatePurpleBlue, // scrollbar thumb
|
||||
decorationColor: Palette.periwinkleCraiola // scrollbar background
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Palette.moderateLavender, // menu header
|
||||
decorationColor: Colors.white, // menu background
|
||||
)
|
||||
),
|
||||
scrollbarTheme: ScrollbarThemeData(
|
||||
thumbColor: MaterialStateProperty.all(Palette.moderatePurpleBlue),
|
||||
trackColor: MaterialStateProperty.all(Palette.periwinkleCraiola),
|
||||
radius: Radius.circular(3),
|
||||
thickness: MaterialStateProperty.all(6),
|
||||
thumbVisibility: MaterialStateProperty.all(true),
|
||||
crossAxisMargin: 6,
|
||||
),
|
||||
primaryTextTheme: TextTheme(
|
||||
titleLarge: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // title color
|
||||
backgroundColor: Palette.wildPeriwinkle // textfield underline
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: PaletteDark.pigeonBlue, // secondary text
|
||||
decorationColor: Palette.wildLavender // menu divider
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Palette.darkGray, // transaction/trade details titles
|
||||
decorationColor: Colors.white.withOpacity(0.5), // placeholder
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Palette.blueCraiola, // first gradient color (send page)
|
||||
decorationColor:
|
||||
Palette.pinkFlamingo // second gradient color (send page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Colors.white
|
||||
.withOpacity(0.5), // text field border color (send page)
|
||||
decorationColor: Colors.white
|
||||
.withOpacity(0.5), // text field hint color (send page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: Colors.white
|
||||
.withOpacity(0.2), // text field button color (send page)
|
||||
decorationColor:
|
||||
Colors.white // text field button icon color (send page)
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color: Colors.white.withOpacity(0.5), // estimated fee (send page)
|
||||
backgroundColor: PaletteDark.darkCyanBlue
|
||||
.withOpacity(0.67), // dot color for indicator on send page
|
||||
decorationColor:
|
||||
Palette.shadowWhite // template dotted border (send page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // template new text (send page)
|
||||
backgroundColor: PaletteDark
|
||||
.darkNightBlue, // active dot color for indicator on send page
|
||||
decorationColor:
|
||||
Palette.shadowWhite // template background color (send page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // template title (send page)
|
||||
backgroundColor:
|
||||
Colors.white, // icon color on order row (moonpay)
|
||||
decorationColor:
|
||||
Palette.niagara // receive amount text (exchange page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette
|
||||
.blueCraiola, // first gradient color top panel (exchange page)
|
||||
decorationColor: Palette
|
||||
.pinkFlamingo // second gradient color top panel (exchange page)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.blueCraiola.withOpacity(
|
||||
0.7), // first gradient color bottom panel (exchange page)
|
||||
decorationColor: Palette.pinkFlamingo.withOpacity(
|
||||
0.7), // second gradient color bottom panel (exchange page)
|
||||
backgroundColor:
|
||||
Palette.moderateSlateBlue // alert right button text
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Colors.white.withOpacity(
|
||||
0.5), // text field border on top panel (exchange page)
|
||||
decorationColor: Colors.white.withOpacity(
|
||||
0.5), // text field border on bottom panel (exchange page)
|
||||
backgroundColor: Palette.brightOrange // alert left button text
|
||||
)
|
||||
),
|
||||
focusColor: Colors.white.withOpacity(0.2), // text field button (exchange page)
|
||||
accentTextTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: Colors.white, // picker background
|
||||
backgroundColor: Palette.periwinkleCraiola, // picker divider
|
||||
decorationColor: Colors.white // dialog background
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: Palette.moderateLavender, // container (confirm exchange)
|
||||
backgroundColor: Palette.moderateLavender, // button background (confirm exchange)
|
||||
decorationColor: Palette.darkBlueCraiola, // text color (information page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // QR code (exchange trade page)
|
||||
backgroundColor: Palette.wildPeriwinkle, // divider (exchange trade page)
|
||||
//decorationColor: Palette.blueCraiola // crete new wallet button background (wallet list page)
|
||||
decorationColor: Palette
|
||||
.moderateSlateBlue // crete new wallet button background (wallet list page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Palette
|
||||
.moderateLavender, // first gradient color of wallet action buttons (wallet list page)
|
||||
backgroundColor: Palette
|
||||
.moderateLavender, // second gradient color of wallet action buttons (wallet list page)
|
||||
decorationColor: Colors
|
||||
.white // restore wallet button text color (wallet list page)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Palette.darkGray, // titles color (filter widget)
|
||||
backgroundColor: Palette.periwinkle, // divider color (filter widget)
|
||||
decorationColor: Colors.white // checkbox background (filter widget)
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Palette.wildPeriwinkle, // checkbox bounds (filter widget)
|
||||
decorationColor: Colors.white, // menu subname
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: Palette.blueCraiola, // first gradient color (menu header)
|
||||
decorationColor: Palette.pinkFlamingo, // second gradient color(menu header)
|
||||
backgroundColor: Colors.white // active dot color
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color:
|
||||
Palette.shadowWhite, // action button color (address text field)
|
||||
decorationColor: Palette.darkGray, // hint text (seed widget)
|
||||
backgroundColor:
|
||||
Colors.white.withOpacity(0.5) // text on balance page
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Palette.darkGray, // hint text (new wallet page)
|
||||
decorationColor:
|
||||
Palette.periwinkleCraiola, // underline (new wallet page)
|
||||
backgroundColor:
|
||||
Colors.white // menu, icons, balance (dashboard page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.darkGray, // switch background (settings page)
|
||||
backgroundColor:
|
||||
Colors.black, // icon color on support page (moonpay, github)
|
||||
decorationColor:
|
||||
Colors.white.withOpacity(0.4) // hint text (exchange page)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.darkGray, // indicators (PIN code)
|
||||
decorationColor: Palette.darkGray, // switch (PIN code)
|
||||
backgroundColor: Colors.white // alert right button
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Palette.moderateSlateBlue, // primary buttons
|
||||
decorationColor: Colors.white, // alert left button,
|
||||
backgroundColor: Palette.dullGray // keyboard bar color
|
||||
),
|
||||
),
|
||||
cardColor: Palette.moderateSlateBlue // bottom button (action list)
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
firstGradientBackgroundColor: Palette.blueCraiola,
|
||||
secondGradientBackgroundColor: Palette.pinkFlamingo,
|
||||
thirdGradientBackgroundColor: Palette.redHat,
|
||||
pageTitleTextColor: Colors.white,
|
||||
mainActionsIconColor: Colors.white,
|
||||
textColor: Colors.white,
|
||||
cardTextColor: Colors.white,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: Colors.white.withOpacity(0.5),
|
||||
activeIndicatorColor: Colors.white));
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle =>
|
||||
super.syncIndicatorStyle.copyWith(
|
||||
textColor: Colors.white,
|
||||
syncedBackgroundColor: Colors.white.withOpacity(0.2),
|
||||
notSyncedBackgroundColor: Colors.white.withOpacity(0.15));
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => super.exchangePageTheme.copyWith(
|
||||
secondGradientBottomPanelColor: Palette.pinkFlamingo.withOpacity(0.7),
|
||||
firstGradientBottomPanelColor: Palette.blueCraiola.withOpacity(0.7),
|
||||
secondGradientTopPanelColor: Palette.pinkFlamingo,
|
||||
firstGradientTopPanelColor: Palette.blueCraiola);
|
||||
|
||||
@override
|
||||
NewWalletTheme get newWalletTheme => super.newWalletTheme.copyWith(
|
||||
hintTextColor: Palette.darkGray,
|
||||
underlineColor: Palette.periwinkleCraiola);
|
||||
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => super
|
||||
.balancePageTheme
|
||||
.copyWith(labelTextColor: Colors.white.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme =>
|
||||
super.menuTheme.copyWith(headerSecondGradientColor: Palette.pinkFlamingo);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme => super.filterTheme.copyWith(
|
||||
checkboxSecondGradientColor: Palette.pinkFlamingo,
|
||||
checkboxBackgroundColor: Colors.white,
|
||||
buttonColor: Colors.white.withOpacity(0.2),
|
||||
iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
WalletListTheme get walletListTheme => super.walletListTheme.copyWith(
|
||||
createNewWalletButtonBackgroundColor: Palette.moderateSlateBlue);
|
||||
|
||||
@override
|
||||
OrderTheme get orderTheme => OrderTheme(iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith(
|
||||
templateBackgroundColor: Palette.shadowWhite,
|
||||
templateDottedBorderColor: Palette.shadowWhite,
|
||||
secondGradientColor: Palette.pinkFlamingo);
|
||||
|
||||
@override
|
||||
PlaceholderTheme get placeholderTheme =>
|
||||
PlaceholderTheme(color: Colors.white.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
TransactionTradeTheme get transactionTradeTheme => super
|
||||
.transactionTradeTheme
|
||||
.copyWith(rowsColor: Colors.white.withOpacity(0.2));
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith(
|
||||
currentTileBackgroundColor: Palette.moderateSlateBlue,
|
||||
tilesBackgroundColor: Colors.white,
|
||||
iconsBackgroundColor: Palette.lavender,
|
||||
amountBottomBorderColor: Colors.white.withOpacity(0.5),
|
||||
amountHintTextColor: Colors.white,
|
||||
);
|
||||
|
||||
@override
|
||||
ThemeData get themeData => theme.copyWith(
|
||||
colorScheme: theme.colorScheme
|
||||
.copyWith(background: Colors.white, secondary: Palette.blueCraiola));
|
||||
QRCodeTheme get qrCodeTheme => super
|
||||
.qrCodeTheme
|
||||
.copyWith(qrWidgetCopyButtonColor: Colors.white.withOpacity(0.4));
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith(
|
||||
buttonSecondaryTextColor: super.cakeTextTheme.secondaryTextColor,
|
||||
buttonTextColor: super.cakeTextTheme.titleColor,
|
||||
addressButtonBorderColor: Colors.white.withOpacity(0.4),
|
||||
dateSectionRowColor: Colors.white.withOpacity(0.5));
|
||||
}
|
||||
|
|
|
@ -1,3 +1,29 @@
|
|||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/alert_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/info_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/order_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/pin_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/support_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
|
@ -8,278 +34,194 @@ class DarkTheme extends ThemeBase {
|
|||
|
||||
@override
|
||||
String get title => S.current.dark_theme;
|
||||
|
||||
@override
|
||||
ThemeType get type => ThemeType.dark;
|
||||
|
||||
ThemeData theme = ThemeData(
|
||||
fontFamily: 'Lato',
|
||||
brightness: Brightness.dark,
|
||||
scaffoldBackgroundColor:
|
||||
PaletteDark.backgroundColor, // second gradient color
|
||||
primaryColor: PaletteDark.backgroundColor, // third gradient color
|
||||
indicatorColor: PaletteDark.cyanBlue, // page indicator
|
||||
hoverColor: PaletteDark.cyanBlue, // amount hint text (receive page)
|
||||
dividerColor: PaletteDark.dividerColor,
|
||||
hintColor: PaletteDark.pigeonBlue, // menu
|
||||
textTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: PaletteDark.wildBlue, // sync_indicator text
|
||||
backgroundColor:
|
||||
PaletteDark.lightNightBlue, // synced sync_indicator
|
||||
decorationColor:
|
||||
PaletteDark.oceanBlue // not synced sync_indicator
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: PaletteDark.orangeYellow, // not synced light
|
||||
decorationColor: PaletteDark.wildBlue, // filter icon
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: PaletteDark.oceanBlue, // filter button
|
||||
backgroundColor: PaletteDark.darkCyanBlue, // date section row
|
||||
decorationColor: PaletteDark
|
||||
.wildNightBlue // icons (transaction and trade rows)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: PaletteDark.nightBlue, // address button border
|
||||
decorationColor: PaletteDark.lightBlueGrey, // copy button (qr widget)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: PaletteDark.lightBlueGrey, // qr code
|
||||
decorationColor: PaletteDark.darkGrey, // bottom border of amount (receive page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: Colors.white, // icons color (receive page)
|
||||
decorationColor: PaletteDark.distantNightBlue, // icons background (receive page)
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color: Colors.white, // text color of tiles (receive page)
|
||||
decorationColor:
|
||||
PaletteDark.nightBlue // background of tiles (receive page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Palette
|
||||
.blueCraiola, // text color of current tile (receive page)
|
||||
decorationColor: PaletteDark
|
||||
.lightOceanBlue // background of current tile (receive page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Colors.white, // text color of tiles (account list)
|
||||
decorationColor: PaletteDark
|
||||
.darkOceanBlue // background of tiles (account list)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette
|
||||
.blueCraiola, // text color of current tile (account list)
|
||||
decorationColor: PaletteDark
|
||||
.darkNightBlue // background of current tile (account list)
|
||||
),
|
||||
// body1 -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: PaletteDark.wildBlueGrey, // scrollbar thumb
|
||||
decorationColor: PaletteDark.violetBlue // scrollbar background
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: PaletteDark.deepPurpleBlue, // menu header
|
||||
decorationColor: PaletteDark.deepPurpleBlue, // menu background
|
||||
)
|
||||
),
|
||||
scrollbarTheme: ScrollbarThemeData(
|
||||
thumbColor: MaterialStateProperty.all(PaletteDark.wildBlueGrey),
|
||||
trackColor: MaterialStateProperty.all(PaletteDark.violetBlue),
|
||||
radius: Radius.circular(3),
|
||||
thickness: MaterialStateProperty.all(6),
|
||||
thumbVisibility: MaterialStateProperty.all(true),
|
||||
crossAxisMargin: 6,
|
||||
),
|
||||
primaryTextTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: Colors.white, // title color
|
||||
backgroundColor: PaletteDark.darkOceanBlue // textfield underline
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: PaletteDark.darkCyanBlue, // secondary text
|
||||
decorationColor: PaletteDark.darkOceanBlue // menu divider
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color:
|
||||
PaletteDark.lightBlueGrey, // transaction/trade details titles
|
||||
decorationColor: Colors.grey, // placeholder
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color:
|
||||
PaletteDark.darkNightBlue, // first gradient color (send page)
|
||||
decorationColor:
|
||||
PaletteDark.darkNightBlue // second gradient color (send page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: PaletteDark
|
||||
.lightVioletBlue, // text field border color (send page)
|
||||
decorationColor:
|
||||
PaletteDark.darkCyanBlue, // text field hint color (send page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: PaletteDark
|
||||
.buttonNightBlue, // text field button color (send page)
|
||||
decorationColor:
|
||||
PaletteDark.gray // text field button icon color (send page)
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color: Colors.white, // estimated fee (send page)
|
||||
backgroundColor:
|
||||
PaletteDark.cyanBlue, // dot color for indicator on send page
|
||||
decorationColor:
|
||||
PaletteDark.darkCyanBlue // template dotted border (send page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: PaletteDark.darkCyanBlue, // template new text (send page)
|
||||
backgroundColor:
|
||||
Colors.white, // active dot color for indicator on send page
|
||||
decorationColor: PaletteDark
|
||||
.darkVioletBlue // template background color (send page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: PaletteDark.cyanBlue, // template title (send page)
|
||||
backgroundColor:
|
||||
Colors.white, // icon color on order row (moonpay)
|
||||
decorationColor: PaletteDark
|
||||
.darkCyanBlue // receive amount text (exchange page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: PaletteDark
|
||||
.wildVioletBlue, // first gradient color top panel (exchange page)
|
||||
decorationColor: PaletteDark
|
||||
.wildVioletBlue // second gradient color top panel (exchange page)
|
||||
),
|
||||
// body1 -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: PaletteDark
|
||||
.darkNightBlue, // first gradient color bottom panel (exchange page)
|
||||
decorationColor: PaletteDark
|
||||
.darkNightBlue, // second gradient color bottom panel (exchange page)
|
||||
backgroundColor: Palette.blueCraiola // alert right button text
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: PaletteDark
|
||||
.blueGrey, // text field border on top panel (exchange page)
|
||||
decorationColor: PaletteDark
|
||||
.moderateVioletBlue, // text field border on bottom panel (exchange page)
|
||||
backgroundColor: Palette.alizarinRed // alert left button text
|
||||
)
|
||||
),
|
||||
focusColor: PaletteDark.moderateBlue, // text field button (exchange page)
|
||||
accentTextTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: PaletteDark.nightBlue, // picker background
|
||||
backgroundColor: PaletteDark.dividerColor, // picker divider
|
||||
decorationColor: PaletteDark.darkNightBlue // dialog background
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: PaletteDark.nightBlue, // container (confirm exchange)
|
||||
backgroundColor: PaletteDark.deepVioletBlue, // button background (confirm exchange)
|
||||
decorationColor: Palette.darkLavender, // text color (information page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
//color: PaletteDark.lightBlueGrey, // QR code (exchange trade page)
|
||||
color: Colors.white, // QR code (exchange trade page)
|
||||
backgroundColor:
|
||||
PaletteDark.deepVioletBlue, // divider (exchange trade page)
|
||||
decorationColor: Colors
|
||||
.white // crete new wallet button background (wallet list page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: PaletteDark
|
||||
.distantBlue, // first gradient color of wallet action buttons (wallet list page)
|
||||
backgroundColor: PaletteDark
|
||||
.distantNightBlue, // second gradient color of wallet action buttons (wallet list page)
|
||||
decorationColor: Palette
|
||||
.darkBlueCraiola // restore wallet button text color (wallet list page)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Colors.white, // titles color (filter widget)
|
||||
backgroundColor:
|
||||
PaletteDark.darkOceanBlue, // divider color (filter widget)
|
||||
decorationColor: PaletteDark.wildVioletBlue
|
||||
.withOpacity(0.3) // checkbox background (filter widget)
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: PaletteDark.wildVioletBlue, // checkbox bounds (filter widget)
|
||||
decorationColor: PaletteDark.darkCyanBlue, // menu subname
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: PaletteDark
|
||||
.deepPurpleBlue, // first gradient color (menu header)
|
||||
decorationColor: PaletteDark
|
||||
.deepPurpleBlue, // second gradient color(menu header)
|
||||
backgroundColor: Colors.white // active dot color
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color: PaletteDark
|
||||
.nightBlue, // action button color (address text field)
|
||||
decorationColor:
|
||||
PaletteDark.darkCyanBlue, // hint text (seed widget)
|
||||
backgroundColor: PaletteDark.cyanBlue // text on balance page
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: PaletteDark.cyanBlue, // hint text (new wallet page)
|
||||
decorationColor:
|
||||
PaletteDark.darkGrey, // underline (new wallet page)
|
||||
backgroundColor:
|
||||
Colors.white // menu, icons, balance (dashboard page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color:
|
||||
PaletteDark.deepVioletBlue, // switch background (settings page)
|
||||
backgroundColor:
|
||||
Colors.white, // icon color on support page (moonpay, github)
|
||||
decorationColor:
|
||||
PaletteDark.lightBlueGrey // hint text (exchange page)
|
||||
),
|
||||
// body1 -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: PaletteDark.indicatorVioletBlue, // indicators (PIN code)
|
||||
decorationColor: PaletteDark.lightPurpleBlue, // switch (PIN code)
|
||||
backgroundColor: PaletteDark.darkNightBlue // alert right button
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Palette.blueCraiola, // primary buttons
|
||||
decorationColor: PaletteDark.darkNightBlue, // alert left button
|
||||
backgroundColor: PaletteDark.granite // keyboard bar color
|
||||
),
|
||||
),
|
||||
cardColor: PaletteDark.darkNightBlue // bottom button (action list)
|
||||
);
|
||||
@override
|
||||
Brightness get brightness => Brightness.dark;
|
||||
@override
|
||||
Color get backgroundColor => PaletteDark.backgroundColor;
|
||||
@override
|
||||
Color get primaryColor => Palette.blueCraiola;
|
||||
@override
|
||||
Color get primaryTextColor => Colors.white;
|
||||
@override
|
||||
Color get containerColor => PaletteDark.nightBlue;
|
||||
@override
|
||||
Color get dialogBackgroundColor => PaletteDark.darkNightBlue;
|
||||
|
||||
@override
|
||||
ThemeData get themeData => theme.copyWith(
|
||||
colorScheme: theme.colorScheme.copyWith(
|
||||
background: PaletteDark.backgroundColor,
|
||||
secondary: PaletteDark.backgroundColor));
|
||||
CakeScrollbarTheme get scrollbarTheme => CakeScrollbarTheme(
|
||||
thumbColor: PaletteDark.wildBlueGrey, trackColor: PaletteDark.violetBlue);
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle => SyncIndicatorTheme(
|
||||
textColor: PaletteDark.wildBlue,
|
||||
syncedBackgroundColor: PaletteDark.lightNightBlue,
|
||||
notSyncedIconColor: PaletteDark.orangeYellow,
|
||||
notSyncedBackgroundColor: PaletteDark.oceanBlue);
|
||||
|
||||
@override
|
||||
KeyboardTheme get keyboardTheme =>
|
||||
KeyboardTheme(keyboardBarColor: PaletteDark.granite);
|
||||
|
||||
@override
|
||||
PinCodeTheme get pinCodeTheme => PinCodeTheme(
|
||||
indicatorsColor: PaletteDark.indicatorVioletBlue,
|
||||
switchColor: PaletteDark.lightPurpleBlue);
|
||||
|
||||
@override
|
||||
SupportPageTheme get supportPageTheme =>
|
||||
SupportPageTheme(iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => ExchangePageTheme(
|
||||
hintTextColor: PaletteDark.lightBlueGrey,
|
||||
dividerCodeColor: PaletteDark.deepVioletBlue,
|
||||
qrCodeColor: primaryTextColor,
|
||||
buttonBackgroundColor: PaletteDark.deepVioletBlue,
|
||||
textFieldButtonColor: PaletteDark.moderateBlue,
|
||||
textFieldBorderBottomPanelColor: PaletteDark.moderateVioletBlue,
|
||||
textFieldBorderTopPanelColor: PaletteDark.blueGrey,
|
||||
secondGradientBottomPanelColor: PaletteDark.darkNightBlue,
|
||||
firstGradientBottomPanelColor: PaletteDark.darkNightBlue,
|
||||
secondGradientTopPanelColor: PaletteDark.wildVioletBlue,
|
||||
firstGradientTopPanelColor: PaletteDark.wildVioletBlue,
|
||||
receiveAmountColor: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
NewWalletTheme get newWalletTheme => NewWalletTheme(
|
||||
hintTextColor: PaletteDark.cyanBlue,
|
||||
underlineColor: PaletteDark.darkGrey);
|
||||
|
||||
@override
|
||||
AddressTheme get addressTheme =>
|
||||
AddressTheme(actionButtonColor: PaletteDark.nightBlue);
|
||||
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
cardTextColor: super.dashboardPageTheme.textColor,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: PaletteDark.cyanBlue,
|
||||
activeIndicatorColor: Colors.white));
|
||||
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => BalancePageTheme(
|
||||
textColor: dashboardPageTheme.textColor,
|
||||
labelTextColor: PaletteDark.cyanBlue);
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme => CakeMenuTheme(
|
||||
headerFirstGradientColor: PaletteDark.deepPurpleBlue,
|
||||
headerSecondGradientColor: PaletteDark.deepPurpleBlue,
|
||||
backgroundColor: PaletteDark.deepPurpleBlue,
|
||||
subnameTextColor: PaletteDark.darkCyanBlue,
|
||||
dividerColor: PaletteDark.darkOceanBlue,
|
||||
settingTitleColor: receivePageTheme.tilesTextColor,
|
||||
settingActionsIconColor: PaletteDark.pigeonBlue,
|
||||
iconColor: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme => FilterTheme(
|
||||
checkboxFirstGradientColor: PaletteDark.darkNightBlue,
|
||||
checkboxSecondGradientColor: PaletteDark.darkNightBlue,
|
||||
checkboxBoundsColor: PaletteDark.wildVioletBlue,
|
||||
checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3),
|
||||
titlesColor: Colors.white,
|
||||
buttonColor: PaletteDark.oceanBlue,
|
||||
iconColor: PaletteDark.wildBlue);
|
||||
|
||||
@override
|
||||
WalletListTheme get walletListTheme => WalletListTheme(
|
||||
restoreWalletButtonTextColor: Palette.darkBlueCraiola,
|
||||
createNewWalletButtonBackgroundColor: Colors.white);
|
||||
|
||||
@override
|
||||
InfoTheme get infoTheme => InfoTheme(textColor: Palette.darkLavender);
|
||||
|
||||
@override
|
||||
PickerTheme get pickerTheme => PickerTheme(
|
||||
dividerColor: PaletteDark.dividerColor,
|
||||
searchTextColor: cakeTextTheme.textfieldUnderlineColor,
|
||||
searchBackgroundFillColor: addressTheme.actionButtonColor);
|
||||
|
||||
@override
|
||||
AlertTheme get alertTheme => AlertTheme(
|
||||
backdropColor: PaletteDark.darkNightBlue.withOpacity(0.75),
|
||||
leftButtonTextColor: Palette.alizarinRed);
|
||||
|
||||
@override
|
||||
OrderTheme get orderTheme => OrderTheme(iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => SendPageTheme(
|
||||
templateTitleColor: PaletteDark.cyanBlue,
|
||||
templateBackgroundColor: PaletteDark.darkVioletBlue,
|
||||
templateNewTextColor: PaletteDark.darkCyanBlue,
|
||||
templateDottedBorderColor: PaletteDark.darkCyanBlue,
|
||||
templateSelectedCurrencyBackgroundColor: primaryColor,
|
||||
templateSelectedCurrencyTitleColor: Colors.white,
|
||||
estimatedFeeColor: Colors.white,
|
||||
textFieldButtonIconColor: PaletteDark.gray,
|
||||
textFieldButtonColor: PaletteDark.buttonNightBlue,
|
||||
textFieldHintColor: PaletteDark.darkCyanBlue,
|
||||
textFieldBorderColor: PaletteDark.lightVioletBlue,
|
||||
secondGradientColor: PaletteDark.darkNightBlue,
|
||||
firstGradientColor: PaletteDark.darkNightBlue,
|
||||
indicatorDotColor: PaletteDark.cyanBlue);
|
||||
|
||||
@override
|
||||
SeedWidgetTheme get seedWidgetTheme =>
|
||||
SeedWidgetTheme(hintTextColor: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
PlaceholderTheme get placeholderTheme => PlaceholderTheme(color: Colors.grey);
|
||||
|
||||
@override
|
||||
TransactionTradeTheme get transactionTradeTheme => TransactionTradeTheme(
|
||||
detailsTitlesColor: PaletteDark.lightBlueGrey,
|
||||
rowsColor: PaletteDark.wildNightBlue);
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => CakeTextTheme(
|
||||
secondaryTextColor: PaletteDark.darkCyanBlue,
|
||||
textfieldUnderlineColor: PaletteDark.darkOceanBlue,
|
||||
titleColor: Colors.white,
|
||||
addressButtonBorderColor: PaletteDark.nightBlue,
|
||||
dateSectionRowColor: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
AccountListTheme get accountListTheme => AccountListTheme(
|
||||
currentAccountBackgroundColor: dialogBackgroundColor,
|
||||
currentAccountTextColor: primaryColor,
|
||||
currentAccountAmountColor: receivePageTheme.iconsColor,
|
||||
tilesAmountColor: receivePageTheme.iconsColor,
|
||||
tilesBackgroundColor: PaletteDark.darkOceanBlue,
|
||||
tilesTextColor: Colors.white);
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => ReceivePageTheme(
|
||||
currentTileBackgroundColor: PaletteDark.lightOceanBlue,
|
||||
currentTileTextColor: Palette.blueCraiola,
|
||||
tilesBackgroundColor: PaletteDark.nightBlue,
|
||||
tilesTextColor: Colors.white,
|
||||
iconsBackgroundColor: PaletteDark.distantNightBlue,
|
||||
iconsColor: Colors.white,
|
||||
amountBottomBorderColor: PaletteDark.darkGrey,
|
||||
amountHintTextColor: PaletteDark.cyanBlue);
|
||||
|
||||
@override
|
||||
QRCodeTheme get qrCodeTheme => QRCodeTheme(
|
||||
qrCodeColor: PaletteDark.lightBlueGrey,
|
||||
qrWidgetCopyButtonColor: PaletteDark.lightBlueGrey);
|
||||
|
||||
@override
|
||||
ThemeData get themeData => super.themeData.copyWith(
|
||||
dividerColor: PaletteDark.dividerColor,
|
||||
hintColor: PaletteDark.pigeonBlue,
|
||||
disabledColor: PaletteDark.deepVioletBlue,
|
||||
dialogTheme: super
|
||||
.themeData
|
||||
.dialogTheme
|
||||
.copyWith(backgroundColor: PaletteDark.nightBlue));
|
||||
}
|
||||
|
|
58
lib/themes/extensions/account_list_theme.dart
Normal file
58
lib/themes/extensions/account_list_theme.dart
Normal file
|
@ -0,0 +1,58 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class AccountListTheme extends ThemeExtension<AccountListTheme> {
|
||||
final Color tilesTextColor;
|
||||
final Color tilesAmountColor;
|
||||
final Color tilesBackgroundColor;
|
||||
final Color currentAccountBackgroundColor;
|
||||
final Color currentAccountTextColor;
|
||||
final Color currentAccountAmountColor;
|
||||
|
||||
AccountListTheme(
|
||||
{required this.tilesTextColor,
|
||||
required this.tilesAmountColor,
|
||||
required this.tilesBackgroundColor,
|
||||
required this.currentAccountBackgroundColor,
|
||||
required this.currentAccountTextColor,
|
||||
required this.currentAccountAmountColor});
|
||||
|
||||
@override
|
||||
AccountListTheme copyWith(
|
||||
{Color? tilesTextColor,
|
||||
Color? tilesAmountColor,
|
||||
Color? tilesBackgroundColor,
|
||||
Color? currentAccountBackgroundColor,
|
||||
Color? currentAccountTextColor,
|
||||
Color? currentAccountAmountColor}) =>
|
||||
AccountListTheme(
|
||||
tilesTextColor: tilesTextColor ?? this.tilesTextColor,
|
||||
tilesAmountColor: tilesAmountColor ?? this.tilesAmountColor,
|
||||
tilesBackgroundColor:
|
||||
tilesBackgroundColor ?? this.tilesBackgroundColor,
|
||||
currentAccountBackgroundColor: currentAccountBackgroundColor ??
|
||||
this.currentAccountBackgroundColor,
|
||||
currentAccountTextColor:
|
||||
currentAccountTextColor ?? this.currentAccountTextColor,
|
||||
currentAccountAmountColor:
|
||||
currentAccountAmountColor ?? this.currentAccountAmountColor);
|
||||
|
||||
@override
|
||||
AccountListTheme lerp(ThemeExtension<AccountListTheme>? other, double t) {
|
||||
if (other is! AccountListTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return AccountListTheme(
|
||||
tilesTextColor: Color.lerp(tilesTextColor, other.tilesTextColor, t)!,
|
||||
tilesAmountColor:
|
||||
Color.lerp(tilesAmountColor, other.tilesAmountColor, t)!,
|
||||
tilesBackgroundColor:
|
||||
Color.lerp(tilesBackgroundColor, other.tilesBackgroundColor, t)!,
|
||||
currentAccountBackgroundColor: Color.lerp(currentAccountBackgroundColor,
|
||||
other.currentAccountBackgroundColor, t)!,
|
||||
currentAccountTextColor: Color.lerp(
|
||||
currentAccountTextColor, other.currentAccountTextColor, t)!,
|
||||
currentAccountAmountColor: Color.lerp(
|
||||
currentAccountAmountColor, other.currentAccountAmountColor, t)!);
|
||||
}
|
||||
}
|
24
lib/themes/extensions/address_theme.dart
Normal file
24
lib/themes/extensions/address_theme.dart
Normal file
|
@ -0,0 +1,24 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class AddressTheme extends ThemeExtension<AddressTheme> {
|
||||
final Color actionButtonColor;
|
||||
|
||||
AddressTheme({required this.actionButtonColor});
|
||||
|
||||
@override
|
||||
AddressTheme copyWith({Color? actionButtonColor}) => AddressTheme(
|
||||
actionButtonColor: actionButtonColor ?? this.actionButtonColor);
|
||||
|
||||
@override
|
||||
AddressTheme lerp(ThemeExtension<AddressTheme>? other, double t) {
|
||||
if (other is! AddressTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return AddressTheme(
|
||||
actionButtonColor:
|
||||
Color.lerp(actionButtonColor, other.actionButtonColor, t) ??
|
||||
actionButtonColor,
|
||||
);
|
||||
}
|
||||
}
|
28
lib/themes/extensions/alert_theme.dart
Normal file
28
lib/themes/extensions/alert_theme.dart
Normal file
|
@ -0,0 +1,28 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class AlertTheme extends ThemeExtension<AlertTheme> {
|
||||
final Color leftButtonTextColor;
|
||||
final Color backdropColor;
|
||||
|
||||
AlertTheme({required this.leftButtonTextColor, required this.backdropColor});
|
||||
|
||||
@override
|
||||
AlertTheme copyWith({Color? leftButtonTextColor, Color? backdropColor}) =>
|
||||
AlertTheme(
|
||||
leftButtonTextColor: leftButtonTextColor ?? this.leftButtonTextColor,
|
||||
backdropColor: backdropColor ?? this.backdropColor);
|
||||
|
||||
@override
|
||||
AlertTheme lerp(ThemeExtension<AlertTheme>? other, double t) {
|
||||
if (other is! AlertTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return AlertTheme(
|
||||
leftButtonTextColor:
|
||||
Color.lerp(leftButtonTextColor, other.leftButtonTextColor, t) ??
|
||||
leftButtonTextColor,
|
||||
backdropColor:
|
||||
Color.lerp(backdropColor, other.backdropColor, t) ?? backdropColor);
|
||||
}
|
||||
}
|
53
lib/themes/extensions/balance_page_theme.dart
Normal file
53
lib/themes/extensions/balance_page_theme.dart
Normal file
|
@ -0,0 +1,53 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class BalancePageTheme extends ThemeExtension<BalancePageTheme> {
|
||||
final Color textColor;
|
||||
final Color labelTextColor;
|
||||
final Color balanceAmountColor;
|
||||
final Color assetTitleColor;
|
||||
final Color cardBorderColor;
|
||||
|
||||
BalancePageTheme(
|
||||
{required this.labelTextColor,
|
||||
required this.textColor,
|
||||
Color? balanceAmountColor,
|
||||
Color? assetTitleColor,
|
||||
this.cardBorderColor = Colors.transparent})
|
||||
: this.balanceAmountColor = balanceAmountColor ?? textColor,
|
||||
this.assetTitleColor = assetTitleColor ?? textColor;
|
||||
|
||||
@override
|
||||
BalancePageTheme copyWith(
|
||||
{Color? textColor,
|
||||
Color? labelTextColor,
|
||||
Color? balanceAmountColor,
|
||||
Color? assetTitleColor,
|
||||
Color? cardBorderColor}) =>
|
||||
BalancePageTheme(
|
||||
textColor: textColor ?? this.textColor,
|
||||
labelTextColor: labelTextColor ?? this.labelTextColor,
|
||||
balanceAmountColor: balanceAmountColor ?? this.balanceAmountColor,
|
||||
assetTitleColor: assetTitleColor ?? this.assetTitleColor,
|
||||
cardBorderColor: cardBorderColor ?? this.cardBorderColor);
|
||||
|
||||
@override
|
||||
BalancePageTheme lerp(ThemeExtension<BalancePageTheme>? other, double t) {
|
||||
if (other is! BalancePageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return BalancePageTheme(
|
||||
textColor: Color.lerp(textColor, other.textColor, t) ?? textColor,
|
||||
labelTextColor: Color.lerp(labelTextColor, other.labelTextColor, t) ??
|
||||
labelTextColor,
|
||||
balanceAmountColor:
|
||||
Color.lerp(balanceAmountColor, other.balanceAmountColor, t) ??
|
||||
balanceAmountColor,
|
||||
assetTitleColor:
|
||||
Color.lerp(assetTitleColor, other.assetTitleColor, t) ??
|
||||
assetTitleColor,
|
||||
cardBorderColor:
|
||||
Color.lerp(cardBorderColor, other.cardBorderColor, t) ??
|
||||
cardBorderColor);
|
||||
}
|
||||
}
|
28
lib/themes/extensions/cake_scrollbar_theme.dart
Normal file
28
lib/themes/extensions/cake_scrollbar_theme.dart
Normal file
|
@ -0,0 +1,28 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class CakeScrollbarTheme extends ThemeExtension<CakeScrollbarTheme> {
|
||||
final Color thumbColor;
|
||||
final Color trackColor;
|
||||
|
||||
CakeScrollbarTheme({required this.thumbColor, required this.trackColor});
|
||||
|
||||
@override
|
||||
Object get type => CakeScrollbarTheme;
|
||||
|
||||
@override
|
||||
CakeScrollbarTheme copyWith({Color? thumbColor, Color? trackColor}) =>
|
||||
CakeScrollbarTheme(
|
||||
thumbColor: thumbColor ?? this.thumbColor,
|
||||
trackColor: trackColor ?? this.trackColor);
|
||||
|
||||
@override
|
||||
CakeScrollbarTheme lerp(ThemeExtension<CakeScrollbarTheme>? other, double t) {
|
||||
if (other is! CakeScrollbarTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return CakeScrollbarTheme(
|
||||
thumbColor: Color.lerp(thumbColor, other.thumbColor, t) ?? thumbColor,
|
||||
trackColor: Color.lerp(trackColor, other.trackColor, t) ?? trackColor);
|
||||
}
|
||||
}
|
65
lib/themes/extensions/cake_text_theme.dart
Normal file
65
lib/themes/extensions/cake_text_theme.dart
Normal file
|
@ -0,0 +1,65 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class CakeTextTheme extends ThemeExtension<CakeTextTheme> {
|
||||
final Color secondaryTextColor;
|
||||
final Color textfieldUnderlineColor;
|
||||
final Color titleColor;
|
||||
final Color addressButtonBorderColor;
|
||||
final Color dateSectionRowColor;
|
||||
final Color buttonTextColor;
|
||||
final Color buttonSecondaryTextColor;
|
||||
|
||||
CakeTextTheme(
|
||||
{required this.secondaryTextColor,
|
||||
required this.textfieldUnderlineColor,
|
||||
required this.titleColor,
|
||||
required this.addressButtonBorderColor,
|
||||
required this.dateSectionRowColor,
|
||||
Color? buttonTextColor,
|
||||
Color? buttonSecondaryTextColor})
|
||||
: buttonTextColor = buttonTextColor ?? titleColor,
|
||||
buttonSecondaryTextColor =
|
||||
buttonSecondaryTextColor ?? secondaryTextColor;
|
||||
|
||||
@override
|
||||
CakeTextTheme copyWith(
|
||||
{Color? secondaryTextColor,
|
||||
Color? textfieldUnderlineColor,
|
||||
Color? titleColor,
|
||||
Color? addressButtonBorderColor,
|
||||
Color? dateSectionRowColor,
|
||||
Color? buttonTextColor,
|
||||
Color? buttonSecondaryTextColor}) =>
|
||||
CakeTextTheme(
|
||||
secondaryTextColor: secondaryTextColor ?? this.secondaryTextColor,
|
||||
textfieldUnderlineColor:
|
||||
textfieldUnderlineColor ?? this.textfieldUnderlineColor,
|
||||
titleColor: titleColor ?? this.titleColor,
|
||||
addressButtonBorderColor:
|
||||
addressButtonBorderColor ?? this.addressButtonBorderColor,
|
||||
dateSectionRowColor: dateSectionRowColor ?? this.dateSectionRowColor,
|
||||
buttonTextColor: buttonTextColor ?? this.buttonTextColor,
|
||||
buttonSecondaryTextColor:
|
||||
buttonSecondaryTextColor ?? this.buttonSecondaryTextColor);
|
||||
|
||||
@override
|
||||
CakeTextTheme lerp(ThemeExtension<CakeTextTheme>? other, double t) {
|
||||
if (other is! CakeTextTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return CakeTextTheme(
|
||||
secondaryTextColor:
|
||||
Color.lerp(secondaryTextColor, other.secondaryTextColor, t)!,
|
||||
textfieldUnderlineColor: Color.lerp(
|
||||
textfieldUnderlineColor, other.textfieldUnderlineColor, t)!,
|
||||
titleColor: Color.lerp(titleColor, other.titleColor, t)!,
|
||||
addressButtonBorderColor: Color.lerp(
|
||||
addressButtonBorderColor, other.addressButtonBorderColor, t)!,
|
||||
dateSectionRowColor:
|
||||
Color.lerp(dateSectionRowColor, other.dateSectionRowColor, t)!,
|
||||
buttonTextColor: Color.lerp(buttonTextColor, other.buttonTextColor, t)!,
|
||||
buttonSecondaryTextColor: Color.lerp(
|
||||
buttonSecondaryTextColor, other.buttonSecondaryTextColor, t)!);
|
||||
}
|
||||
}
|
79
lib/themes/extensions/dashboard_page_theme.dart
Normal file
79
lib/themes/extensions/dashboard_page_theme.dart
Normal file
|
@ -0,0 +1,79 @@
|
|||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class DashboardPageTheme extends ThemeExtension<DashboardPageTheme> {
|
||||
final Color firstGradientBackgroundColor;
|
||||
final Color secondGradientBackgroundColor;
|
||||
final Color thirdGradientBackgroundColor;
|
||||
final Color textColor;
|
||||
final Color cardTextColor;
|
||||
final Color pageTitleTextColor;
|
||||
final Color mainActionsIconColor;
|
||||
|
||||
final IndicatorDotTheme indicatorDotTheme;
|
||||
|
||||
DashboardPageTheme(
|
||||
{required this.firstGradientBackgroundColor,
|
||||
required this.secondGradientBackgroundColor,
|
||||
required this.thirdGradientBackgroundColor,
|
||||
required this.textColor,
|
||||
required this.indicatorDotTheme,
|
||||
Color? mainActionsIconColor,
|
||||
Color? pageTitleTextColor,
|
||||
Color? cardTextColor})
|
||||
: pageTitleTextColor = pageTitleTextColor ?? textColor,
|
||||
mainActionsIconColor = mainActionsIconColor ?? textColor,
|
||||
cardTextColor = cardTextColor ?? textColor;
|
||||
|
||||
@override
|
||||
DashboardPageTheme copyWith(
|
||||
{Color? firstGradientBackgroundColor,
|
||||
Color? secondGradientBackgroundColor,
|
||||
Color? thirdGradientBackgroundColor,
|
||||
Color? textColor,
|
||||
IndicatorDotTheme? indicatorDotTheme,
|
||||
Color? pageTitleTextColor,
|
||||
Color? mainActionsIconColor,
|
||||
Color? cardTextColor}) =>
|
||||
DashboardPageTheme(
|
||||
firstGradientBackgroundColor:
|
||||
firstGradientBackgroundColor ?? this.firstGradientBackgroundColor,
|
||||
secondGradientBackgroundColor: secondGradientBackgroundColor ??
|
||||
this.secondGradientBackgroundColor,
|
||||
thirdGradientBackgroundColor:
|
||||
thirdGradientBackgroundColor ?? this.thirdGradientBackgroundColor,
|
||||
textColor: textColor ?? this.textColor,
|
||||
indicatorDotTheme: indicatorDotTheme ?? this.indicatorDotTheme,
|
||||
pageTitleTextColor: pageTitleTextColor ?? this.pageTitleTextColor,
|
||||
mainActionsIconColor:
|
||||
mainActionsIconColor ?? this.mainActionsIconColor,
|
||||
cardTextColor: cardTextColor ?? this.cardTextColor);
|
||||
|
||||
@override
|
||||
DashboardPageTheme lerp(ThemeExtension<DashboardPageTheme>? other, double t) {
|
||||
if (other is! DashboardPageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return DashboardPageTheme(
|
||||
firstGradientBackgroundColor: Color.lerp(firstGradientBackgroundColor,
|
||||
other.firstGradientBackgroundColor, t) ??
|
||||
firstGradientBackgroundColor,
|
||||
secondGradientBackgroundColor: Color.lerp(secondGradientBackgroundColor,
|
||||
other.secondGradientBackgroundColor, t) ??
|
||||
secondGradientBackgroundColor,
|
||||
thirdGradientBackgroundColor: Color.lerp(thirdGradientBackgroundColor,
|
||||
other.thirdGradientBackgroundColor, t) ??
|
||||
thirdGradientBackgroundColor,
|
||||
textColor: Color.lerp(textColor, other.textColor, t) ?? textColor,
|
||||
indicatorDotTheme: indicatorDotTheme.lerp(other.indicatorDotTheme, t),
|
||||
pageTitleTextColor:
|
||||
Color.lerp(pageTitleTextColor, other.pageTitleTextColor, t) ??
|
||||
pageTitleTextColor,
|
||||
mainActionsIconColor:
|
||||
Color.lerp(mainActionsIconColor, other.mainActionsIconColor, t) ??
|
||||
mainActionsIconColor,
|
||||
cardTextColor:
|
||||
Color.lerp(cardTextColor, other.cardTextColor, t) ?? cardTextColor);
|
||||
}
|
||||
}
|
88
lib/themes/extensions/exchange_page_theme.dart
Normal file
88
lib/themes/extensions/exchange_page_theme.dart
Normal file
|
@ -0,0 +1,88 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class ExchangePageTheme extends ThemeExtension<ExchangePageTheme> {
|
||||
final Color hintTextColor;
|
||||
final Color receiveAmountColor;
|
||||
final Color firstGradientTopPanelColor;
|
||||
final Color secondGradientTopPanelColor;
|
||||
final Color firstGradientBottomPanelColor;
|
||||
final Color secondGradientBottomPanelColor;
|
||||
final Color textFieldBorderTopPanelColor;
|
||||
final Color textFieldBorderBottomPanelColor;
|
||||
final Color textFieldButtonColor;
|
||||
final Color buttonBackgroundColor;
|
||||
final Color qrCodeColor;
|
||||
final Color dividerCodeColor;
|
||||
|
||||
ExchangePageTheme(
|
||||
{required this.hintTextColor,
|
||||
required this.receiveAmountColor,
|
||||
required this.firstGradientTopPanelColor,
|
||||
required this.secondGradientTopPanelColor,
|
||||
required this.firstGradientBottomPanelColor,
|
||||
required this.secondGradientBottomPanelColor,
|
||||
required this.textFieldBorderTopPanelColor,
|
||||
required this.textFieldBorderBottomPanelColor,
|
||||
required this.textFieldButtonColor,
|
||||
required this.buttonBackgroundColor,
|
||||
required this.qrCodeColor,
|
||||
required this.dividerCodeColor});
|
||||
|
||||
@override
|
||||
ExchangePageTheme copyWith({
|
||||
Color? hintTextColor,
|
||||
Color? receiveAmountColor,
|
||||
Color? firstGradientTopPanelColor,
|
||||
Color? secondGradientTopPanelColor,
|
||||
Color? firstGradientBottomPanelColor,
|
||||
Color? secondGradientBottomPanelColor,
|
||||
Color? textFieldBorderTopPanelColor,
|
||||
Color? textFieldBorderBottomPanelColor,
|
||||
Color? textFieldButtonColor,
|
||||
Color? buttonBackgroundColor,
|
||||
Color? qrCodeColor,
|
||||
Color? dividerCodeColor,
|
||||
}) =>
|
||||
ExchangePageTheme(
|
||||
hintTextColor: hintTextColor ?? this.hintTextColor,
|
||||
receiveAmountColor: receiveAmountColor ?? this.receiveAmountColor,
|
||||
firstGradientTopPanelColor:
|
||||
firstGradientTopPanelColor ?? this.firstGradientTopPanelColor,
|
||||
secondGradientTopPanelColor:
|
||||
secondGradientTopPanelColor ?? this.secondGradientTopPanelColor,
|
||||
firstGradientBottomPanelColor: firstGradientBottomPanelColor ??
|
||||
this.firstGradientBottomPanelColor,
|
||||
secondGradientBottomPanelColor: secondGradientBottomPanelColor ??
|
||||
this.secondGradientBottomPanelColor,
|
||||
textFieldBorderTopPanelColor:
|
||||
textFieldBorderTopPanelColor ?? this.textFieldBorderTopPanelColor,
|
||||
textFieldBorderBottomPanelColor: textFieldBorderBottomPanelColor ??
|
||||
this.textFieldBorderBottomPanelColor,
|
||||
textFieldButtonColor:
|
||||
textFieldButtonColor ?? this.textFieldButtonColor,
|
||||
buttonBackgroundColor:
|
||||
buttonBackgroundColor ?? this.buttonBackgroundColor,
|
||||
qrCodeColor: qrCodeColor ?? this.qrCodeColor,
|
||||
dividerCodeColor: dividerCodeColor ?? this.dividerCodeColor);
|
||||
|
||||
@override
|
||||
ExchangePageTheme lerp(ThemeExtension<ExchangePageTheme>? other, double t) {
|
||||
if (other is! ExchangePageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return ExchangePageTheme(
|
||||
hintTextColor: Color.lerp(hintTextColor, other.hintTextColor, t) ?? hintTextColor,
|
||||
receiveAmountColor: Color.lerp(receiveAmountColor, other.receiveAmountColor, t) ?? receiveAmountColor,
|
||||
firstGradientTopPanelColor: Color.lerp(firstGradientTopPanelColor, other.firstGradientTopPanelColor, t) ?? firstGradientTopPanelColor,
|
||||
secondGradientTopPanelColor: Color.lerp(secondGradientTopPanelColor, other.secondGradientTopPanelColor, t) ?? secondGradientTopPanelColor,
|
||||
firstGradientBottomPanelColor: Color.lerp(firstGradientBottomPanelColor, other.firstGradientBottomPanelColor, t) ?? firstGradientBottomPanelColor,
|
||||
secondGradientBottomPanelColor: Color.lerp(secondGradientBottomPanelColor, other.secondGradientBottomPanelColor, t) ?? secondGradientBottomPanelColor,
|
||||
textFieldBorderTopPanelColor: Color.lerp(textFieldBorderTopPanelColor, other.textFieldBorderTopPanelColor, t) ?? textFieldBorderTopPanelColor,
|
||||
textFieldBorderBottomPanelColor: Color.lerp(textFieldBorderBottomPanelColor, other.textFieldBorderBottomPanelColor, t) ?? textFieldBorderBottomPanelColor,
|
||||
textFieldButtonColor: Color.lerp(textFieldButtonColor, other.textFieldButtonColor, t) ?? textFieldButtonColor,
|
||||
buttonBackgroundColor: Color.lerp(buttonBackgroundColor, other.buttonBackgroundColor, t) ?? buttonBackgroundColor,
|
||||
qrCodeColor: Color.lerp(qrCodeColor, other.qrCodeColor, t) ?? qrCodeColor,
|
||||
dividerCodeColor: Color.lerp(dividerCodeColor, other.dividerCodeColor, t) ?? dividerCodeColor);
|
||||
}
|
||||
}
|
68
lib/themes/extensions/filter_theme.dart
Normal file
68
lib/themes/extensions/filter_theme.dart
Normal file
|
@ -0,0 +1,68 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class FilterTheme extends ThemeExtension<FilterTheme> {
|
||||
final Color checkboxFirstGradientColor;
|
||||
final Color checkboxSecondGradientColor;
|
||||
final Color checkboxBoundsColor;
|
||||
final Color checkboxBackgroundColor;
|
||||
final Color titlesColor;
|
||||
final Color buttonColor;
|
||||
final Color iconColor;
|
||||
|
||||
FilterTheme(
|
||||
{required this.checkboxFirstGradientColor,
|
||||
required this.checkboxSecondGradientColor,
|
||||
required this.checkboxBoundsColor,
|
||||
required this.checkboxBackgroundColor,
|
||||
required this.titlesColor,
|
||||
required this.buttonColor,
|
||||
required this.iconColor});
|
||||
|
||||
@override
|
||||
FilterTheme copyWith({
|
||||
Color? checkboxFirstGradientColor,
|
||||
Color? checkboxSecondGradientColor,
|
||||
Color? checkboxBoundsColor,
|
||||
Color? checkboxBackgroundColor,
|
||||
Color? titlesColor,
|
||||
Color? buttonColor,
|
||||
Color? iconColor,
|
||||
}) =>
|
||||
FilterTheme(
|
||||
checkboxFirstGradientColor:
|
||||
checkboxFirstGradientColor ?? this.checkboxFirstGradientColor,
|
||||
checkboxSecondGradientColor:
|
||||
checkboxSecondGradientColor ?? this.checkboxSecondGradientColor,
|
||||
checkboxBoundsColor: checkboxBoundsColor ?? this.checkboxBoundsColor,
|
||||
checkboxBackgroundColor:
|
||||
checkboxBackgroundColor ?? this.checkboxBackgroundColor,
|
||||
titlesColor: titlesColor ?? this.titlesColor,
|
||||
buttonColor: buttonColor ?? this.buttonColor,
|
||||
iconColor: iconColor ?? this.iconColor);
|
||||
|
||||
@override
|
||||
FilterTheme lerp(ThemeExtension<FilterTheme>? other, double t) {
|
||||
if (other is! FilterTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return FilterTheme(
|
||||
checkboxFirstGradientColor: Color.lerp(checkboxFirstGradientColor,
|
||||
other.checkboxFirstGradientColor, t) ??
|
||||
this.checkboxFirstGradientColor,
|
||||
checkboxSecondGradientColor: Color.lerp(checkboxSecondGradientColor,
|
||||
other.checkboxSecondGradientColor, t) ??
|
||||
this.checkboxSecondGradientColor,
|
||||
checkboxBoundsColor:
|
||||
Color.lerp(checkboxBoundsColor, other.checkboxBoundsColor, t) ??
|
||||
this.checkboxBoundsColor,
|
||||
checkboxBackgroundColor: Color.lerp(
|
||||
checkboxBackgroundColor, other.checkboxBackgroundColor, t) ??
|
||||
this.checkboxBackgroundColor,
|
||||
titlesColor:
|
||||
Color.lerp(titlesColor, other.titlesColor, t) ?? this.titlesColor,
|
||||
buttonColor:
|
||||
Color.lerp(buttonColor, other.buttonColor, t) ?? this.buttonColor,
|
||||
iconColor: Color.lerp(iconColor, other.iconColor, t) ?? this.iconColor);
|
||||
}
|
||||
}
|
30
lib/themes/extensions/indicator_dot_theme.dart
Normal file
30
lib/themes/extensions/indicator_dot_theme.dart
Normal file
|
@ -0,0 +1,30 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class IndicatorDotTheme extends ThemeExtension<IndicatorDotTheme> {
|
||||
final Color indicatorColor;
|
||||
final Color activeIndicatorColor;
|
||||
|
||||
IndicatorDotTheme(
|
||||
{required this.indicatorColor, required this.activeIndicatorColor});
|
||||
|
||||
@override
|
||||
IndicatorDotTheme copyWith(
|
||||
{Color? indicatorColor, Color? actionButtonColor}) =>
|
||||
IndicatorDotTheme(
|
||||
indicatorColor: indicatorColor ?? this.indicatorColor,
|
||||
activeIndicatorColor: actionButtonColor ?? this.activeIndicatorColor);
|
||||
|
||||
@override
|
||||
IndicatorDotTheme lerp(ThemeExtension<IndicatorDotTheme>? other, double t) {
|
||||
if (other is! IndicatorDotTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return IndicatorDotTheme(
|
||||
indicatorColor: Color.lerp(indicatorColor, other.indicatorColor, t) ??
|
||||
indicatorColor,
|
||||
activeIndicatorColor:
|
||||
Color.lerp(activeIndicatorColor, other.activeIndicatorColor, t) ??
|
||||
activeIndicatorColor);
|
||||
}
|
||||
}
|
21
lib/themes/extensions/info_theme.dart
Normal file
21
lib/themes/extensions/info_theme.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class InfoTheme extends ThemeExtension<InfoTheme> {
|
||||
final Color textColor;
|
||||
|
||||
InfoTheme({required this.textColor});
|
||||
|
||||
@override
|
||||
InfoTheme copyWith({Color? textColor}) =>
|
||||
InfoTheme(textColor: textColor ?? this.textColor);
|
||||
|
||||
@override
|
||||
InfoTheme lerp(ThemeExtension<InfoTheme>? other, double t) {
|
||||
if (other is! InfoTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return InfoTheme(
|
||||
textColor: Color.lerp(textColor, other.textColor, t) ?? textColor);
|
||||
}
|
||||
}
|
26
lib/themes/extensions/keyboard_theme.dart
Normal file
26
lib/themes/extensions/keyboard_theme.dart
Normal file
|
@ -0,0 +1,26 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class KeyboardTheme extends ThemeExtension<KeyboardTheme> {
|
||||
final Color keyboardBarColor;
|
||||
|
||||
KeyboardTheme({required this.keyboardBarColor});
|
||||
|
||||
@override
|
||||
Object get type => KeyboardTheme;
|
||||
|
||||
@override
|
||||
KeyboardTheme copyWith({Color? keyboardBarColor}) => KeyboardTheme(
|
||||
keyboardBarColor: keyboardBarColor ?? this.keyboardBarColor);
|
||||
|
||||
@override
|
||||
KeyboardTheme lerp(ThemeExtension<KeyboardTheme>? other, double t) {
|
||||
if (other is! KeyboardTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return KeyboardTheme(
|
||||
keyboardBarColor:
|
||||
Color.lerp(keyboardBarColor, other.keyboardBarColor, t) ??
|
||||
keyboardBarColor);
|
||||
}
|
||||
}
|
75
lib/themes/extensions/menu_theme.dart
Normal file
75
lib/themes/extensions/menu_theme.dart
Normal file
|
@ -0,0 +1,75 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class CakeMenuTheme extends ThemeExtension<CakeMenuTheme> {
|
||||
final Color headerFirstGradientColor;
|
||||
final Color headerSecondGradientColor;
|
||||
final Color subnameTextColor;
|
||||
final Color dividerColor;
|
||||
final Color backgroundColor;
|
||||
final Color iconColor;
|
||||
final Color settingActionsIconColor;
|
||||
final Color settingTitleColor;
|
||||
|
||||
CakeMenuTheme(
|
||||
{required this.headerFirstGradientColor,
|
||||
required this.headerSecondGradientColor,
|
||||
required this.backgroundColor,
|
||||
required this.subnameTextColor,
|
||||
required this.dividerColor,
|
||||
required this.iconColor,
|
||||
required this.settingActionsIconColor,
|
||||
required this.settingTitleColor});
|
||||
|
||||
@override
|
||||
CakeMenuTheme copyWith(
|
||||
{Color? headerFirstGradientColor,
|
||||
Color? headerSecondGradientColor,
|
||||
Color? backgroundColor,
|
||||
Color? subnameTextColor,
|
||||
Color? dividerColor,
|
||||
Color? iconColor,
|
||||
Color? settingActionsIconColor,
|
||||
Color? settingTitleColor}) =>
|
||||
CakeMenuTheme(
|
||||
headerFirstGradientColor:
|
||||
headerFirstGradientColor ?? this.headerFirstGradientColor,
|
||||
headerSecondGradientColor:
|
||||
headerSecondGradientColor ?? this.headerSecondGradientColor,
|
||||
backgroundColor: backgroundColor ?? this.backgroundColor,
|
||||
subnameTextColor: subnameTextColor ?? this.subnameTextColor,
|
||||
dividerColor: dividerColor ?? this.dividerColor,
|
||||
iconColor: iconColor ?? this.iconColor,
|
||||
settingActionsIconColor:
|
||||
settingActionsIconColor ?? this.settingActionsIconColor,
|
||||
settingTitleColor: settingTitleColor ?? this.settingTitleColor);
|
||||
|
||||
@override
|
||||
CakeMenuTheme lerp(ThemeExtension<CakeMenuTheme>? other, double t) {
|
||||
if (other is! CakeMenuTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return CakeMenuTheme(
|
||||
headerFirstGradientColor: Color.lerp(
|
||||
headerFirstGradientColor, other.headerFirstGradientColor, t) ??
|
||||
headerFirstGradientColor,
|
||||
headerSecondGradientColor: Color.lerp(headerSecondGradientColor,
|
||||
other.headerSecondGradientColor, t) ??
|
||||
headerSecondGradientColor,
|
||||
backgroundColor:
|
||||
Color.lerp(backgroundColor, other.backgroundColor, t) ??
|
||||
backgroundColor,
|
||||
subnameTextColor:
|
||||
Color.lerp(subnameTextColor, other.subnameTextColor, t) ??
|
||||
subnameTextColor,
|
||||
dividerColor:
|
||||
Color.lerp(dividerColor, other.dividerColor, t) ?? dividerColor,
|
||||
iconColor: Color.lerp(iconColor, other.iconColor, t) ?? iconColor,
|
||||
settingActionsIconColor: Color.lerp(
|
||||
settingActionsIconColor, other.settingActionsIconColor, t) ??
|
||||
settingActionsIconColor,
|
||||
settingTitleColor: Color.lerp(
|
||||
settingTitleColor, other.settingTitleColor, t) ??
|
||||
settingTitleColor);
|
||||
}
|
||||
}
|
30
lib/themes/extensions/new_wallet_theme.dart
Normal file
30
lib/themes/extensions/new_wallet_theme.dart
Normal file
|
@ -0,0 +1,30 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class NewWalletTheme extends ThemeExtension<NewWalletTheme> {
|
||||
final Color hintTextColor;
|
||||
final Color underlineColor;
|
||||
|
||||
NewWalletTheme({required this.hintTextColor, required this.underlineColor});
|
||||
|
||||
@override
|
||||
Object get type => NewWalletTheme;
|
||||
|
||||
@override
|
||||
NewWalletTheme copyWith({Color? hintTextColor, Color? underlineColor}) =>
|
||||
NewWalletTheme(
|
||||
hintTextColor: hintTextColor ?? this.hintTextColor,
|
||||
underlineColor: underlineColor ?? this.underlineColor);
|
||||
|
||||
@override
|
||||
NewWalletTheme lerp(ThemeExtension<NewWalletTheme>? other, double t) {
|
||||
if (other is! NewWalletTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return NewWalletTheme(
|
||||
hintTextColor:
|
||||
Color.lerp(hintTextColor, other.hintTextColor, t) ?? hintTextColor,
|
||||
underlineColor: Color.lerp(underlineColor, other.underlineColor, t) ??
|
||||
underlineColor);
|
||||
}
|
||||
}
|
21
lib/themes/extensions/order_theme.dart
Normal file
21
lib/themes/extensions/order_theme.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class OrderTheme extends ThemeExtension<OrderTheme> {
|
||||
final Color iconColor;
|
||||
|
||||
OrderTheme({required this.iconColor});
|
||||
|
||||
@override
|
||||
OrderTheme copyWith({Color? iconColor}) =>
|
||||
OrderTheme(iconColor: iconColor ?? this.iconColor);
|
||||
|
||||
@override
|
||||
OrderTheme lerp(ThemeExtension<OrderTheme>? other, double t) {
|
||||
if (other is! OrderTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return OrderTheme(
|
||||
iconColor: Color.lerp(iconColor, other.iconColor, t) ?? iconColor);
|
||||
}
|
||||
}
|
54
lib/themes/extensions/picker_theme.dart
Normal file
54
lib/themes/extensions/picker_theme.dart
Normal file
|
@ -0,0 +1,54 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class PickerTheme extends ThemeExtension<PickerTheme> {
|
||||
final Color dividerColor;
|
||||
final Color? searchIconColor;
|
||||
final Color searchBackgroundFillColor;
|
||||
final Color searchTextColor;
|
||||
final Color? searchHintColor;
|
||||
|
||||
PickerTheme(
|
||||
{required this.dividerColor,
|
||||
this.searchIconColor,
|
||||
required this.searchBackgroundFillColor,
|
||||
required this.searchTextColor,
|
||||
this.searchHintColor});
|
||||
|
||||
@override
|
||||
PickerTheme copyWith(
|
||||
{Color? dividerColor,
|
||||
Color? searchIconColor,
|
||||
Color? searchBackgroundFillColor,
|
||||
Color? searchTextColor,
|
||||
Color? searchHintColor}) =>
|
||||
PickerTheme(
|
||||
dividerColor: dividerColor ?? this.dividerColor,
|
||||
searchIconColor: searchIconColor ?? this.searchIconColor,
|
||||
searchBackgroundFillColor:
|
||||
searchBackgroundFillColor ?? this.searchBackgroundFillColor,
|
||||
searchTextColor: searchTextColor ?? this.searchTextColor,
|
||||
searchHintColor: searchHintColor ?? this.searchHintColor);
|
||||
|
||||
@override
|
||||
PickerTheme lerp(ThemeExtension<PickerTheme>? other, double t) {
|
||||
if (other is! PickerTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return PickerTheme(
|
||||
dividerColor:
|
||||
Color.lerp(dividerColor, other.dividerColor, t) ?? dividerColor,
|
||||
searchIconColor:
|
||||
Color.lerp(searchIconColor, other.searchIconColor, t) ??
|
||||
searchIconColor,
|
||||
searchBackgroundFillColor: Color.lerp(searchBackgroundFillColor,
|
||||
other.searchBackgroundFillColor, t) ??
|
||||
searchBackgroundFillColor,
|
||||
searchTextColor:
|
||||
Color.lerp(searchTextColor, other.searchTextColor, t) ??
|
||||
searchTextColor,
|
||||
searchHintColor:
|
||||
Color.lerp(searchHintColor, other.searchHintColor, t) ??
|
||||
searchHintColor);
|
||||
}
|
||||
}
|
28
lib/themes/extensions/pin_code_theme.dart
Normal file
28
lib/themes/extensions/pin_code_theme.dart
Normal file
|
@ -0,0 +1,28 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class PinCodeTheme extends ThemeExtension<PinCodeTheme> {
|
||||
final Color indicatorsColor;
|
||||
final Color switchColor;
|
||||
|
||||
PinCodeTheme({required this.indicatorsColor, required this.switchColor});
|
||||
|
||||
@override
|
||||
PinCodeTheme copyWith({Color? indicatorsColor, Color? switchColor}) =>
|
||||
PinCodeTheme(
|
||||
indicatorsColor: indicatorsColor ?? this.indicatorsColor,
|
||||
switchColor: switchColor ?? this.switchColor);
|
||||
|
||||
@override
|
||||
PinCodeTheme lerp(ThemeExtension<PinCodeTheme>? other, double t) {
|
||||
if (other is! PinCodeTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return PinCodeTheme(
|
||||
indicatorsColor:
|
||||
Color.lerp(indicatorsColor, other.indicatorsColor, t) ??
|
||||
indicatorsColor,
|
||||
switchColor:
|
||||
Color.lerp(switchColor, other.switchColor, t) ?? switchColor);
|
||||
}
|
||||
}
|
20
lib/themes/extensions/placeholder_theme.dart
Normal file
20
lib/themes/extensions/placeholder_theme.dart
Normal file
|
@ -0,0 +1,20 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class PlaceholderTheme extends ThemeExtension<PlaceholderTheme> {
|
||||
final Color color;
|
||||
|
||||
PlaceholderTheme({required this.color});
|
||||
|
||||
@override
|
||||
PlaceholderTheme copyWith({Color? color}) =>
|
||||
PlaceholderTheme(color: color ?? this.color);
|
||||
|
||||
@override
|
||||
PlaceholderTheme lerp(ThemeExtension<PlaceholderTheme>? other, double t) {
|
||||
if (other is! PlaceholderTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return PlaceholderTheme(color: Color.lerp(color, other.color, t) ?? color);
|
||||
}
|
||||
}
|
28
lib/themes/extensions/qr_code_theme.dart
Normal file
28
lib/themes/extensions/qr_code_theme.dart
Normal file
|
@ -0,0 +1,28 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class QRCodeTheme extends ThemeExtension<QRCodeTheme> {
|
||||
final Color qrCodeColor;
|
||||
final Color qrWidgetCopyButtonColor;
|
||||
|
||||
QRCodeTheme(
|
||||
{required this.qrCodeColor, required this.qrWidgetCopyButtonColor});
|
||||
|
||||
@override
|
||||
QRCodeTheme copyWith({Color? qrCodeColor, Color? qrWidgetCopyButtonColor}) =>
|
||||
QRCodeTheme(
|
||||
qrCodeColor: qrCodeColor ?? this.qrCodeColor,
|
||||
qrWidgetCopyButtonColor:
|
||||
qrWidgetCopyButtonColor ?? this.qrWidgetCopyButtonColor);
|
||||
|
||||
@override
|
||||
QRCodeTheme lerp(ThemeExtension<QRCodeTheme>? other, double t) {
|
||||
if (other is! QRCodeTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return QRCodeTheme(
|
||||
qrCodeColor: Color.lerp(qrCodeColor, other.qrCodeColor, t)!,
|
||||
qrWidgetCopyButtonColor: Color.lerp(
|
||||
qrWidgetCopyButtonColor, other.qrWidgetCopyButtonColor, t)!);
|
||||
}
|
||||
}
|
70
lib/themes/extensions/receive_page_theme.dart
Normal file
70
lib/themes/extensions/receive_page_theme.dart
Normal file
|
@ -0,0 +1,70 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class ReceivePageTheme extends ThemeExtension<ReceivePageTheme> {
|
||||
final Color currentTileBackgroundColor;
|
||||
final Color currentTileTextColor;
|
||||
final Color tilesBackgroundColor;
|
||||
final Color tilesTextColor;
|
||||
final Color iconsBackgroundColor;
|
||||
final Color iconsColor;
|
||||
final Color amountBottomBorderColor;
|
||||
final Color amountHintTextColor;
|
||||
|
||||
ReceivePageTheme(
|
||||
{required this.currentTileBackgroundColor,
|
||||
required this.currentTileTextColor,
|
||||
required this.tilesBackgroundColor,
|
||||
required this.tilesTextColor,
|
||||
required this.iconsBackgroundColor,
|
||||
required this.iconsColor,
|
||||
required this.amountBottomBorderColor,
|
||||
required this.amountHintTextColor});
|
||||
|
||||
@override
|
||||
ReceivePageTheme copyWith(
|
||||
{Color? currentTileBackgroundColor,
|
||||
Color? currentTileTextColor,
|
||||
Color? tilesBackgroundColor,
|
||||
Color? tilesTextColor,
|
||||
Color? iconsBackgroundColor,
|
||||
Color? iconsColor,
|
||||
Color? amountBottomBorderColor,
|
||||
Color? amountHintTextColor}) =>
|
||||
ReceivePageTheme(
|
||||
currentTileBackgroundColor:
|
||||
currentTileBackgroundColor ?? this.currentTileBackgroundColor,
|
||||
currentTileTextColor:
|
||||
currentTileTextColor ?? this.currentTileTextColor,
|
||||
tilesBackgroundColor:
|
||||
tilesBackgroundColor ?? this.tilesBackgroundColor,
|
||||
tilesTextColor: tilesTextColor ?? this.tilesTextColor,
|
||||
iconsBackgroundColor:
|
||||
iconsBackgroundColor ?? this.iconsBackgroundColor,
|
||||
iconsColor: iconsColor ?? this.iconsColor,
|
||||
amountBottomBorderColor:
|
||||
amountBottomBorderColor ?? this.amountBottomBorderColor,
|
||||
amountHintTextColor: amountHintTextColor ?? this.amountHintTextColor);
|
||||
|
||||
@override
|
||||
ReceivePageTheme lerp(ThemeExtension<ReceivePageTheme>? other, double t) {
|
||||
if (other is! ReceivePageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return ReceivePageTheme(
|
||||
currentTileBackgroundColor: Color.lerp(
|
||||
currentTileBackgroundColor, other.currentTileBackgroundColor, t)!,
|
||||
currentTileTextColor:
|
||||
Color.lerp(currentTileTextColor, other.currentTileTextColor, t)!,
|
||||
tilesBackgroundColor:
|
||||
Color.lerp(tilesBackgroundColor, other.tilesBackgroundColor, t)!,
|
||||
tilesTextColor: Color.lerp(tilesTextColor, other.tilesTextColor, t)!,
|
||||
iconsBackgroundColor:
|
||||
Color.lerp(iconsBackgroundColor, other.iconsBackgroundColor, t)!,
|
||||
iconsColor: Color.lerp(iconsColor, other.iconsColor, t)!,
|
||||
amountBottomBorderColor: Color.lerp(
|
||||
amountBottomBorderColor, other.amountBottomBorderColor, t)!,
|
||||
amountHintTextColor:
|
||||
Color.lerp(amountHintTextColor, other.amountHintTextColor, t)!);
|
||||
}
|
||||
}
|
22
lib/themes/extensions/seed_widget_theme.dart
Normal file
22
lib/themes/extensions/seed_widget_theme.dart
Normal file
|
@ -0,0 +1,22 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class SeedWidgetTheme extends ThemeExtension<SeedWidgetTheme> {
|
||||
final Color hintTextColor;
|
||||
|
||||
SeedWidgetTheme({required this.hintTextColor});
|
||||
|
||||
@override
|
||||
SeedWidgetTheme copyWith({Color? hintTextColor}) =>
|
||||
SeedWidgetTheme(hintTextColor: hintTextColor ?? this.hintTextColor);
|
||||
|
||||
@override
|
||||
SeedWidgetTheme lerp(ThemeExtension<SeedWidgetTheme>? other, double t) {
|
||||
if (other is! SeedWidgetTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return SeedWidgetTheme(
|
||||
hintTextColor:
|
||||
Color.lerp(hintTextColor, other.hintTextColor, t) ?? hintTextColor);
|
||||
}
|
||||
}
|
117
lib/themes/extensions/send_page_theme.dart
Normal file
117
lib/themes/extensions/send_page_theme.dart
Normal file
|
@ -0,0 +1,117 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class SendPageTheme extends ThemeExtension<SendPageTheme> {
|
||||
final Color templateTitleColor;
|
||||
final Color templateBackgroundColor;
|
||||
final Color templateNewTextColor;
|
||||
final Color templateSelectedCurrencyBackgroundColor;
|
||||
final Color templateSelectedCurrencyTitleColor;
|
||||
final Color templateDottedBorderColor;
|
||||
final Color estimatedFeeColor;
|
||||
final Color textFieldButtonIconColor;
|
||||
final Color textFieldButtonColor;
|
||||
final Color textFieldHintColor;
|
||||
final Color textFieldBorderColor;
|
||||
final Color firstGradientColor;
|
||||
final Color secondGradientColor;
|
||||
final Color indicatorDotColor;
|
||||
|
||||
SendPageTheme(
|
||||
{required this.templateTitleColor,
|
||||
required this.templateBackgroundColor,
|
||||
required this.templateNewTextColor,
|
||||
required this.templateSelectedCurrencyBackgroundColor,
|
||||
required this.templateSelectedCurrencyTitleColor,
|
||||
required this.templateDottedBorderColor,
|
||||
required this.estimatedFeeColor,
|
||||
required this.textFieldButtonIconColor,
|
||||
required this.textFieldButtonColor,
|
||||
required this.textFieldHintColor,
|
||||
required this.textFieldBorderColor,
|
||||
required this.firstGradientColor,
|
||||
required this.secondGradientColor,
|
||||
required this.indicatorDotColor});
|
||||
|
||||
@override
|
||||
SendPageTheme copyWith(
|
||||
{Color? templateTitleColor,
|
||||
Color? templateBackgroundColor,
|
||||
Color? templateNewTextColor,
|
||||
Color? templateSelectedCurrencyBackgroundColor,
|
||||
Color? templateSelectedCurrencyTitleColor,
|
||||
Color? templateDottedBorderColor,
|
||||
Color? estimatedFeeColor,
|
||||
Color? textFieldButtonIconColor,
|
||||
Color? textFieldButtonColor,
|
||||
Color? textFieldHintColor,
|
||||
Color? textFieldBorderColor,
|
||||
Color? firstGradientColor,
|
||||
Color? secondGradientColor,
|
||||
Color? indicatorDotColor}) =>
|
||||
SendPageTheme(
|
||||
templateTitleColor: templateTitleColor ?? this.templateTitleColor,
|
||||
templateBackgroundColor:
|
||||
templateBackgroundColor ?? this.templateBackgroundColor,
|
||||
templateNewTextColor:
|
||||
templateNewTextColor ?? this.templateNewTextColor,
|
||||
templateSelectedCurrencyBackgroundColor:
|
||||
templateSelectedCurrencyBackgroundColor ??
|
||||
this.templateSelectedCurrencyBackgroundColor,
|
||||
templateSelectedCurrencyTitleColor:
|
||||
templateSelectedCurrencyTitleColor ??
|
||||
this.templateSelectedCurrencyTitleColor,
|
||||
templateDottedBorderColor:
|
||||
templateDottedBorderColor ?? this.templateDottedBorderColor,
|
||||
estimatedFeeColor: estimatedFeeColor ?? this.estimatedFeeColor,
|
||||
textFieldButtonIconColor:
|
||||
textFieldButtonIconColor ?? this.textFieldButtonIconColor,
|
||||
textFieldButtonColor:
|
||||
textFieldButtonColor ?? this.textFieldButtonColor,
|
||||
textFieldHintColor: textFieldHintColor ?? this.textFieldHintColor,
|
||||
textFieldBorderColor:
|
||||
textFieldBorderColor ?? this.textFieldBorderColor,
|
||||
firstGradientColor: firstGradientColor ?? this.firstGradientColor,
|
||||
secondGradientColor: secondGradientColor ?? this.secondGradientColor,
|
||||
indicatorDotColor: indicatorDotColor ?? this.indicatorDotColor);
|
||||
|
||||
@override
|
||||
SendPageTheme lerp(ThemeExtension<SendPageTheme>? other, double t) {
|
||||
if (other is! SendPageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return SendPageTheme(
|
||||
templateTitleColor:
|
||||
Color.lerp(templateTitleColor, other.templateTitleColor, t)!,
|
||||
templateBackgroundColor: Color.lerp(
|
||||
templateBackgroundColor, other.templateBackgroundColor, t)!,
|
||||
templateNewTextColor:
|
||||
Color.lerp(templateNewTextColor, other.templateNewTextColor, t)!,
|
||||
templateSelectedCurrencyBackgroundColor: Color.lerp(
|
||||
templateSelectedCurrencyBackgroundColor,
|
||||
other.templateSelectedCurrencyBackgroundColor,
|
||||
t)!,
|
||||
templateSelectedCurrencyTitleColor: Color.lerp(
|
||||
templateSelectedCurrencyTitleColor,
|
||||
other.templateSelectedCurrencyTitleColor,
|
||||
t)!,
|
||||
templateDottedBorderColor: Color.lerp(
|
||||
templateDottedBorderColor, other.templateDottedBorderColor, t)!,
|
||||
estimatedFeeColor:
|
||||
Color.lerp(estimatedFeeColor, other.estimatedFeeColor, t)!,
|
||||
textFieldButtonIconColor: Color.lerp(
|
||||
textFieldButtonIconColor, other.textFieldButtonIconColor, t)!,
|
||||
textFieldButtonColor:
|
||||
Color.lerp(textFieldButtonColor, other.textFieldButtonColor, t)!,
|
||||
textFieldHintColor:
|
||||
Color.lerp(textFieldHintColor, other.textFieldHintColor, t)!,
|
||||
textFieldBorderColor:
|
||||
Color.lerp(textFieldBorderColor, other.textFieldBorderColor, t)!,
|
||||
firstGradientColor:
|
||||
Color.lerp(firstGradientColor, other.firstGradientColor, t)!,
|
||||
secondGradientColor:
|
||||
Color.lerp(secondGradientColor, other.secondGradientColor, t)!,
|
||||
indicatorDotColor:
|
||||
Color.lerp(indicatorDotColor, other.indicatorDotColor, t)!);
|
||||
}
|
||||
}
|
21
lib/themes/extensions/support_page_theme.dart
Normal file
21
lib/themes/extensions/support_page_theme.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class SupportPageTheme extends ThemeExtension<SupportPageTheme> {
|
||||
final Color iconColor;
|
||||
|
||||
SupportPageTheme({required this.iconColor});
|
||||
|
||||
@override
|
||||
SupportPageTheme copyWith({Color? iconColor}) =>
|
||||
SupportPageTheme(iconColor: iconColor ?? this.iconColor);
|
||||
|
||||
@override
|
||||
SupportPageTheme lerp(ThemeExtension<SupportPageTheme>? other, double t) {
|
||||
if (other is! SupportPageTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return SupportPageTheme(
|
||||
iconColor: Color.lerp(iconColor, other.iconColor, t) ?? iconColor);
|
||||
}
|
||||
}
|
48
lib/themes/extensions/sync_indicator_theme.dart
Normal file
48
lib/themes/extensions/sync_indicator_theme.dart
Normal file
|
@ -0,0 +1,48 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class SyncIndicatorTheme extends ThemeExtension<SyncIndicatorTheme> {
|
||||
final Color textColor;
|
||||
final Color syncedBackgroundColor;
|
||||
final Color notSyncedIconColor;
|
||||
final Color notSyncedBackgroundColor;
|
||||
|
||||
SyncIndicatorTheme(
|
||||
{required this.textColor,
|
||||
required this.syncedBackgroundColor,
|
||||
required this.notSyncedIconColor,
|
||||
required this.notSyncedBackgroundColor});
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme copyWith({
|
||||
Color? textColor,
|
||||
Color? syncedBackgroundColor,
|
||||
Color? notSyncedIconColor,
|
||||
Color? notSyncedBackgroundColor,
|
||||
}) =>
|
||||
SyncIndicatorTheme(
|
||||
textColor: textColor ?? this.textColor,
|
||||
syncedBackgroundColor:
|
||||
syncedBackgroundColor ?? this.syncedBackgroundColor,
|
||||
notSyncedIconColor: notSyncedIconColor ?? this.notSyncedIconColor,
|
||||
notSyncedBackgroundColor:
|
||||
notSyncedBackgroundColor ?? this.notSyncedBackgroundColor);
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme lerp(ThemeExtension<SyncIndicatorTheme>? other, double t) {
|
||||
if (other is! SyncIndicatorTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return SyncIndicatorTheme(
|
||||
textColor: Color.lerp(textColor, other.textColor, t) ?? textColor,
|
||||
syncedBackgroundColor:
|
||||
Color.lerp(syncedBackgroundColor, other.syncedBackgroundColor, t) ??
|
||||
syncedBackgroundColor,
|
||||
notSyncedIconColor:
|
||||
Color.lerp(notSyncedIconColor, other.notSyncedIconColor, t) ??
|
||||
notSyncedIconColor,
|
||||
notSyncedBackgroundColor: Color.lerp(
|
||||
notSyncedBackgroundColor, other.notSyncedBackgroundColor, t) ??
|
||||
notSyncedBackgroundColor);
|
||||
}
|
||||
}
|
29
lib/themes/extensions/transaction_trade_theme.dart
Normal file
29
lib/themes/extensions/transaction_trade_theme.dart
Normal file
|
@ -0,0 +1,29 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class TransactionTradeTheme extends ThemeExtension<TransactionTradeTheme> {
|
||||
final Color detailsTitlesColor;
|
||||
final Color rowsColor;
|
||||
|
||||
TransactionTradeTheme(
|
||||
{required this.detailsTitlesColor, required this.rowsColor});
|
||||
|
||||
@override
|
||||
TransactionTradeTheme copyWith(
|
||||
{Color? detailsTitlesColor, Color? rowsColor}) =>
|
||||
TransactionTradeTheme(
|
||||
detailsTitlesColor: detailsTitlesColor ?? this.detailsTitlesColor,
|
||||
rowsColor: rowsColor ?? this.rowsColor);
|
||||
|
||||
@override
|
||||
TransactionTradeTheme lerp(
|
||||
ThemeExtension<TransactionTradeTheme>? other, double t) {
|
||||
if (other is! TransactionTradeTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return TransactionTradeTheme(
|
||||
detailsTitlesColor:
|
||||
Color.lerp(detailsTitlesColor, other.detailsTitlesColor, t)!,
|
||||
rowsColor: Color.lerp(rowsColor, other.rowsColor, t)!);
|
||||
}
|
||||
}
|
38
lib/themes/extensions/wallet_list_theme.dart
Normal file
38
lib/themes/extensions/wallet_list_theme.dart
Normal file
|
@ -0,0 +1,38 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class WalletListTheme extends ThemeExtension<WalletListTheme> {
|
||||
final Color restoreWalletButtonTextColor;
|
||||
final Color createNewWalletButtonBackgroundColor;
|
||||
|
||||
WalletListTheme(
|
||||
{required this.restoreWalletButtonTextColor,
|
||||
required this.createNewWalletButtonBackgroundColor});
|
||||
|
||||
@override
|
||||
WalletListTheme copyWith(
|
||||
{Color? restoreWalletButtonTextColor,
|
||||
Color? createNewWalletButtonBackgroundColor}) =>
|
||||
WalletListTheme(
|
||||
restoreWalletButtonTextColor:
|
||||
restoreWalletButtonTextColor ?? this.restoreWalletButtonTextColor,
|
||||
createNewWalletButtonBackgroundColor:
|
||||
createNewWalletButtonBackgroundColor ??
|
||||
this.createNewWalletButtonBackgroundColor);
|
||||
|
||||
@override
|
||||
WalletListTheme lerp(ThemeExtension<WalletListTheme>? other, double t) {
|
||||
if (other is! WalletListTheme) {
|
||||
return this;
|
||||
}
|
||||
|
||||
return WalletListTheme(
|
||||
restoreWalletButtonTextColor: Color.lerp(restoreWalletButtonTextColor,
|
||||
other.restoreWalletButtonTextColor, t) ??
|
||||
restoreWalletButtonTextColor,
|
||||
createNewWalletButtonBackgroundColor: Color.lerp(
|
||||
createNewWalletButtonBackgroundColor,
|
||||
other.createNewWalletButtonBackgroundColor,
|
||||
t) ??
|
||||
createNewWalletButtonBackgroundColor);
|
||||
}
|
||||
}
|
118
lib/themes/high_contrast_theme.dart
Normal file
118
lib/themes/high_contrast_theme.dart
Normal file
|
@ -0,0 +1,118 @@
|
|||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/monero_light_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class HighContrastTheme extends MoneroLightTheme {
|
||||
HighContrastTheme({required int raw}) : super(raw: raw) {
|
||||
colorScheme = ColorScheme.fromSwatch(
|
||||
primarySwatch: Colors.grey,
|
||||
accentColor: primaryColor,
|
||||
backgroundColor: Colors.white,
|
||||
cardColor: containerColor,
|
||||
brightness: Brightness.light);
|
||||
}
|
||||
|
||||
@override
|
||||
String get title => S.current.high_contrast_theme;
|
||||
@override
|
||||
Color get primaryColor => Colors.black;
|
||||
@override
|
||||
Color get containerColor => Palette.highContrastGray;
|
||||
@override
|
||||
Color get primaryTextColor => colorScheme.onBackground;
|
||||
@override
|
||||
Color get dialogBackgroundColor => Colors.white;
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith(
|
||||
buttonTextColor: Colors.white,
|
||||
buttonSecondaryTextColor: Colors.white.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle =>
|
||||
super.syncIndicatorStyle.copyWith(
|
||||
textColor: colorScheme.background,
|
||||
syncedBackgroundColor: containerColor);
|
||||
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith(
|
||||
textColor: Colors.white,
|
||||
labelTextColor: Colors.grey,
|
||||
assetTitleColor: Colors.white,
|
||||
balanceAmountColor: Colors.white);
|
||||
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
textColor: Colors.black,
|
||||
cardTextColor: Colors.white,
|
||||
mainActionsIconColor: Colors.white,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: Colors.grey, activeIndicatorColor: Colors.black));
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => super
|
||||
.exchangePageTheme
|
||||
.copyWith(firstGradientTopPanelColor: containerColor);
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith(
|
||||
templateTitleColor: Colors.white,
|
||||
templateBackgroundColor: Colors.black,
|
||||
firstGradientColor: containerColor);
|
||||
|
||||
@override
|
||||
AddressTheme get addressTheme =>
|
||||
super.addressTheme.copyWith(actionButtonColor: Colors.grey);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme =>
|
||||
super.filterTheme.copyWith(iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme => super.menuTheme.copyWith(
|
||||
settingTitleColor: Colors.black,
|
||||
headerFirstGradientColor: containerColor,
|
||||
iconColor: Colors.white);
|
||||
|
||||
@override
|
||||
PickerTheme get pickerTheme => super.pickerTheme.copyWith(
|
||||
searchIconColor: Colors.white,
|
||||
searchHintColor: Colors.white,
|
||||
searchTextColor: Colors.white,
|
||||
searchBackgroundFillColor: Colors.grey);
|
||||
|
||||
@override
|
||||
AccountListTheme get accountListTheme => super.accountListTheme.copyWith(
|
||||
tilesTextColor: Colors.black,
|
||||
tilesBackgroundColor: Colors.white,
|
||||
currentAccountBackgroundColor: containerColor,
|
||||
currentAccountTextColor: Colors.white,
|
||||
currentAccountAmountColor: Colors.white);
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith(
|
||||
tilesTextColor: Colors.white,
|
||||
iconsBackgroundColor: Colors.grey,
|
||||
iconsColor: Colors.black);
|
||||
|
||||
@override
|
||||
ThemeData get themeData => super.themeData.copyWith(
|
||||
disabledColor: Colors.grey,
|
||||
dialogTheme:
|
||||
super.themeData.dialogTheme.copyWith(backgroundColor: Colors.white));
|
||||
}
|
|
@ -1,3 +1,29 @@
|
|||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/alert_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/info_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/order_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/pin_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/support_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
|
@ -8,268 +34,192 @@ class LightTheme extends ThemeBase {
|
|||
|
||||
@override
|
||||
String get title => S.current.light_theme;
|
||||
|
||||
@override
|
||||
ThemeType get type => ThemeType.light;
|
||||
|
||||
ThemeData theme = ThemeData(
|
||||
fontFamily: 'Lato',
|
||||
brightness: Brightness.light,
|
||||
scaffoldBackgroundColor: Colors.white, // second gradient color
|
||||
primaryColor: Colors.white, // third gradient color
|
||||
indicatorColor:
|
||||
PaletteDark.darkCyanBlue.withOpacity(0.67), // page indicator
|
||||
hoverColor: Palette.darkBlueCraiola, // amount hint text (receive page)
|
||||
dividerColor: Palette.paleBlue,
|
||||
hintColor: Palette.gray,
|
||||
textTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // sync_indicator text
|
||||
backgroundColor: Palette.blueAlice, // synced sync_indicator
|
||||
decorationColor: Palette.blueAlice.withOpacity(0.75), // not synced sync_indicator
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: Palette.shineOrange, // not synced light
|
||||
decorationColor: PaletteDark.wildBlue, // filter icon
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Palette.blueAlice, // filter button
|
||||
backgroundColor: PaletteDark.darkCyanBlue, // date section row
|
||||
decorationColor:
|
||||
Palette.blueAlice // icons (transaction and trade rows)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Palette.blueAlice, // address button border
|
||||
decorationColor: PaletteDark.lightBlueGrey, // copy button (qr widget)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Colors.white, // qr code
|
||||
decorationColor: Palette.darkBlueCraiola, // bottom border of amount (receive page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: PaletteDark.lightBlueGrey, // icons color (receive page)
|
||||
decorationColor: Palette.moderateLavender, // icons background (receive page)
|
||||
),
|
||||
// display2 -> headldisplaySmalline3
|
||||
displaySmall: TextStyle(
|
||||
color:
|
||||
Palette.darkBlueCraiola, // text color of tiles (receive page)
|
||||
decorationColor:
|
||||
Palette.blueAlice // background of tiles (receive page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Colors.white, // text color of current tile (receive page),
|
||||
//decorationColor: Palette.blueCraiola // background of current tile (receive page)
|
||||
decorationColor: Palette
|
||||
.blueCraiola // background of current tile (receive page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.violetBlue, // text color of tiles (account list)
|
||||
decorationColor:
|
||||
Colors.white // background of tiles (account list)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette
|
||||
.protectiveBlue, // text color of current tile (account list)
|
||||
decorationColor:
|
||||
Colors.white // background of current tile (account list)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.moderatePurpleBlue, // scrollbar thumb
|
||||
decorationColor: Palette.periwinkleCraiola // scrollbar background
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Palette.moderateLavender, // menu header
|
||||
decorationColor: Colors.white, // menu background
|
||||
)
|
||||
),
|
||||
scrollbarTheme: ScrollbarThemeData(
|
||||
thumbColor: MaterialStateProperty.all(Palette.moderatePurpleBlue),
|
||||
trackColor: MaterialStateProperty.all(Palette.periwinkleCraiola),
|
||||
radius: Radius.circular(3),
|
||||
thickness: MaterialStateProperty.all(6),
|
||||
thumbVisibility: MaterialStateProperty.all(true),
|
||||
crossAxisMargin: 6,
|
||||
),
|
||||
primaryTextTheme: TextTheme(
|
||||
// title -> titleLarge
|
||||
titleLarge: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // title color
|
||||
backgroundColor: Palette.wildPeriwinkle // textfield underline
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: PaletteDark.pigeonBlue, // secondary text
|
||||
decorationColor: Palette.wildLavender // menu divider
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Palette.darkGray, // transaction/trade details titles
|
||||
decorationColor: PaletteDark.darkCyanBlue, // placeholder
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Palette.blueCraiola, // first gradient color (send page)
|
||||
decorationColor:
|
||||
Palette.blueGreyCraiola // second gradient color (send page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Colors.white
|
||||
.withOpacity(0.5), // text field border color (send page)
|
||||
decorationColor: Colors.white
|
||||
.withOpacity(0.5), // text field hint color (send page)
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: Colors.white
|
||||
.withOpacity(0.2), // text field button color (send page)
|
||||
decorationColor:
|
||||
Colors.white // text field button icon color (send page)
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color: Colors.white.withOpacity(0.5), // estimated fee (send page)
|
||||
backgroundColor: PaletteDark.darkCyanBlue
|
||||
.withOpacity(0.67), // dot color for indicator on send page
|
||||
decorationColor:
|
||||
Palette.moderateLavender // template dotted border (send page)
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // template new text (send page)
|
||||
backgroundColor: PaletteDark
|
||||
.darkNightBlue, // active dot color for indicator on send page
|
||||
decorationColor:
|
||||
Palette.blueAlice // template background color (send page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // template title (send page)
|
||||
backgroundColor:
|
||||
Colors.black, // icon color on order row (moonpay)
|
||||
decorationColor:
|
||||
Palette.niagara // receive amount text (exchange page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette
|
||||
.blueCraiola, // first gradient color top panel (exchange page)
|
||||
decorationColor: Palette
|
||||
.blueGreyCraiola // second gradient color top panel (exchange page)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.blueCraiola.withOpacity(
|
||||
0.7), // first gradient color bottom panel (exchange page)
|
||||
decorationColor: Palette.blueGreyCraiola.withOpacity(
|
||||
0.7), // second gradient color bottom panel (exchange page)
|
||||
backgroundColor: Palette.protectiveBlue // alert right button text
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Colors.white.withOpacity(
|
||||
0.5), // text field border on top panel (exchange page)
|
||||
decorationColor: Colors.white.withOpacity(
|
||||
0.5), // text field border on bottom panel (exchange page)
|
||||
backgroundColor: Palette.brightOrange // alert left button text
|
||||
)
|
||||
),
|
||||
focusColor: Colors.white.withOpacity(0.2), // text field button (exchange page)
|
||||
accentTextTheme: TextTheme(
|
||||
// title -> headlititleLargene6
|
||||
titleLarge: TextStyle(
|
||||
color: Colors.white, // picker background
|
||||
backgroundColor: Palette.periwinkleCraiola, // picker divider
|
||||
decorationColor: Colors.white // dialog background
|
||||
),
|
||||
bodySmall: TextStyle(
|
||||
color: Palette.blueAlice, // container (confirm exchange)
|
||||
backgroundColor: Palette.blueAlice, // button background (confirm exchange)
|
||||
decorationColor: Palette.darkBlueCraiola, // text color (information page)
|
||||
),
|
||||
// subtitle -> titleSmall
|
||||
titleSmall: TextStyle(
|
||||
color: Palette.darkBlueCraiola, // QR code (exchange trade page)
|
||||
backgroundColor:
|
||||
Palette.wildPeriwinkle, // divider (exchange trade page)
|
||||
decorationColor: Palette
|
||||
.protectiveBlue // crete new wallet button background (wallet list page)
|
||||
),
|
||||
// headline -> headlineSmall
|
||||
headlineSmall: TextStyle(
|
||||
color: Palette
|
||||
.moderateLavender, // first gradient color of wallet action buttons (wallet list page)
|
||||
backgroundColor: Palette
|
||||
.moderateLavender, // second gradient color of wallet action buttons (wallet list page)
|
||||
decorationColor: Colors
|
||||
.white // restore wallet button text color (wallet list page)
|
||||
),
|
||||
// subhead -> titleMedium
|
||||
titleMedium: TextStyle(
|
||||
color: Palette.darkGray, // titles color (filter widget)
|
||||
backgroundColor: Palette.periwinkle, // divider color (filter widget)
|
||||
decorationColor: Colors.white // checkbox background (filter widget)
|
||||
),
|
||||
labelSmall: TextStyle(
|
||||
color: Palette.wildPeriwinkle, // checkbox bounds (filter widget)
|
||||
decorationColor: Colors.white, // menu subname
|
||||
),
|
||||
// display1 -> headlineMedium
|
||||
headlineMedium: TextStyle(
|
||||
color: Palette.blueCraiola, // first gradient color (menu header)
|
||||
decorationColor: Palette.blueGreyCraiola, // second gradient color(menu header)
|
||||
backgroundColor: PaletteDark.darkNightBlue // active dot color
|
||||
),
|
||||
// display2 -> displaySmall
|
||||
displaySmall: TextStyle(
|
||||
color:
|
||||
Palette.shadowWhite, // action button color (address text field)
|
||||
decorationColor: Palette.darkGray, // hint text (seed widget)
|
||||
backgroundColor: Palette.darkBlueCraiola
|
||||
.withOpacity(0.67) // text on balance page
|
||||
),
|
||||
// display3 -> displayMedium
|
||||
displayMedium: TextStyle(
|
||||
color: Palette.darkGray, // hint text (new wallet page)
|
||||
decorationColor:
|
||||
Palette.periwinkleCraiola, // underline (new wallet page)
|
||||
backgroundColor:
|
||||
Palette.darkBlueCraiola // menu, icons, balance (dashboard page)
|
||||
),
|
||||
// display4 -> displayLarge
|
||||
displayLarge: TextStyle(
|
||||
color: Palette.darkGray, // switch background (settings page)
|
||||
backgroundColor:
|
||||
Colors.black, // icon color on support page (moonpay, github)
|
||||
decorationColor:
|
||||
Colors.white.withOpacity(0.4) // hint text (exchange page)
|
||||
),
|
||||
// body -> bodyMedium
|
||||
bodyMedium: TextStyle(
|
||||
color: Palette.darkGray, // indicators (PIN code)
|
||||
decorationColor: Palette.darkGray, // switch (PIN code)
|
||||
backgroundColor: Colors.white // alert right button
|
||||
),
|
||||
// body2 -> bodyLarge
|
||||
bodyLarge: TextStyle(
|
||||
color: Palette.protectiveBlue, // primary buttons
|
||||
decorationColor: Colors.white, // alert left button,
|
||||
backgroundColor: Palette.dullGray // keyboard bar color
|
||||
),
|
||||
),
|
||||
cardColor: Palette.protectiveBlue // bottom button (action list)
|
||||
);
|
||||
@override
|
||||
Brightness get brightness => Brightness.light;
|
||||
@override
|
||||
Color get backgroundColor => Colors.white;
|
||||
@override
|
||||
Color get primaryColor => Palette.protectiveBlue;
|
||||
@override
|
||||
Color get primaryTextColor => Palette.darkBlueCraiola;
|
||||
@override
|
||||
Color get containerColor => Palette.blueAlice;
|
||||
@override
|
||||
Color get dialogBackgroundColor => Colors.white;
|
||||
|
||||
@override
|
||||
ThemeData get themeData => theme.copyWith(
|
||||
colorScheme: theme.colorScheme
|
||||
.copyWith(background: Colors.white, secondary: Colors.white));
|
||||
CakeScrollbarTheme get scrollbarTheme => CakeScrollbarTheme(
|
||||
thumbColor: Palette.moderatePurpleBlue,
|
||||
trackColor: Palette.periwinkleCraiola);
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle => SyncIndicatorTheme(
|
||||
textColor: Palette.darkBlueCraiola,
|
||||
syncedBackgroundColor: Palette.blueAlice,
|
||||
notSyncedIconColor: Palette.shineOrange,
|
||||
notSyncedBackgroundColor: Palette.blueAlice.withOpacity(0.75));
|
||||
|
||||
@override
|
||||
KeyboardTheme get keyboardTheme =>
|
||||
KeyboardTheme(keyboardBarColor: Palette.dullGray);
|
||||
|
||||
@override
|
||||
PinCodeTheme get pinCodeTheme => PinCodeTheme(
|
||||
indicatorsColor: Palette.darkGray, switchColor: Palette.darkGray);
|
||||
|
||||
@override
|
||||
SupportPageTheme get supportPageTheme =>
|
||||
SupportPageTheme(iconColor: Colors.black);
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => ExchangePageTheme(
|
||||
hintTextColor: Colors.white.withOpacity(0.4),
|
||||
dividerCodeColor: Palette.wildPeriwinkle,
|
||||
qrCodeColor: primaryTextColor,
|
||||
buttonBackgroundColor: containerColor,
|
||||
textFieldButtonColor: Colors.white.withOpacity(0.2),
|
||||
textFieldBorderBottomPanelColor: Colors.white.withOpacity(0.5),
|
||||
textFieldBorderTopPanelColor: Colors.white.withOpacity(0.5),
|
||||
secondGradientBottomPanelColor: Palette.blueGreyCraiola.withOpacity(0.7),
|
||||
firstGradientBottomPanelColor: Palette.blueCraiola.withOpacity(0.7),
|
||||
secondGradientTopPanelColor: Palette.blueGreyCraiola,
|
||||
firstGradientTopPanelColor: Palette.blueCraiola,
|
||||
receiveAmountColor: Palette.niagara);
|
||||
|
||||
@override
|
||||
NewWalletTheme get newWalletTheme => NewWalletTheme(
|
||||
hintTextColor: Palette.darkGray,
|
||||
underlineColor: Palette.periwinkleCraiola);
|
||||
|
||||
@override
|
||||
AddressTheme get addressTheme =>
|
||||
AddressTheme(actionButtonColor: Palette.shadowWhite);
|
||||
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
cardTextColor: super.dashboardPageTheme.textColor,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: PaletteDark.darkCyanBlue.withOpacity(0.67),
|
||||
activeIndicatorColor: PaletteDark.darkNightBlue));
|
||||
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => BalancePageTheme(
|
||||
textColor: dashboardPageTheme.textColor,
|
||||
labelTextColor: Palette.darkBlueCraiola.withOpacity(0.67));
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme => CakeMenuTheme(
|
||||
headerFirstGradientColor: Palette.blueCraiola,
|
||||
headerSecondGradientColor: Palette.blueGreyCraiola,
|
||||
backgroundColor: Colors.white,
|
||||
subnameTextColor: Colors.white,
|
||||
dividerColor: Palette.wildLavender,
|
||||
iconColor: Colors.white,
|
||||
settingTitleColor: receivePageTheme.tilesTextColor,
|
||||
settingActionsIconColor: Palette.gray);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme => FilterTheme(
|
||||
checkboxFirstGradientColor: Palette.blueCraiola,
|
||||
checkboxSecondGradientColor: Palette.blueGreyCraiola,
|
||||
checkboxBoundsColor: Palette.wildPeriwinkle,
|
||||
checkboxBackgroundColor: Colors.white,
|
||||
titlesColor: Palette.darkGray,
|
||||
buttonColor: Palette.blueAlice,
|
||||
iconColor: PaletteDark.wildBlue);
|
||||
|
||||
@override
|
||||
WalletListTheme get walletListTheme => WalletListTheme(
|
||||
restoreWalletButtonTextColor: Colors.white,
|
||||
createNewWalletButtonBackgroundColor: Palette.protectiveBlue);
|
||||
|
||||
@override
|
||||
InfoTheme get infoTheme => InfoTheme(textColor: Palette.darkBlueCraiola);
|
||||
|
||||
@override
|
||||
PickerTheme get pickerTheme => PickerTheme(
|
||||
dividerColor: Palette.periwinkleCraiola,
|
||||
searchTextColor: cakeTextTheme.textfieldUnderlineColor,
|
||||
searchBackgroundFillColor: addressTheme.actionButtonColor);
|
||||
|
||||
@override
|
||||
AlertTheme get alertTheme => AlertTheme(
|
||||
backdropColor: PaletteDark.darkNightBlue.withOpacity(0.75),
|
||||
leftButtonTextColor: Palette.brightOrange);
|
||||
|
||||
@override
|
||||
OrderTheme get orderTheme => OrderTheme(iconColor: Colors.black);
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => SendPageTheme(
|
||||
templateTitleColor: Palette.darkBlueCraiola,
|
||||
templateBackgroundColor: Palette.blueAlice,
|
||||
templateNewTextColor: Palette.darkBlueCraiola,
|
||||
templateDottedBorderColor: Palette.moderateLavender,
|
||||
templateSelectedCurrencyBackgroundColor: Colors.white,
|
||||
templateSelectedCurrencyTitleColor: primaryColor,
|
||||
estimatedFeeColor: Colors.white.withOpacity(0.5),
|
||||
textFieldButtonIconColor: Colors.white,
|
||||
textFieldButtonColor: Colors.white.withOpacity(0.2),
|
||||
textFieldHintColor: Colors.white.withOpacity(0.5),
|
||||
textFieldBorderColor: Colors.white.withOpacity(0.5),
|
||||
secondGradientColor: Palette.blueGreyCraiola,
|
||||
firstGradientColor: Palette.blueCraiola,
|
||||
indicatorDotColor: PaletteDark.darkCyanBlue.withOpacity(0.67));
|
||||
|
||||
@override
|
||||
SeedWidgetTheme get seedWidgetTheme =>
|
||||
SeedWidgetTheme(hintTextColor: Palette.darkGray);
|
||||
|
||||
@override
|
||||
PlaceholderTheme get placeholderTheme =>
|
||||
PlaceholderTheme(color: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
TransactionTradeTheme get transactionTradeTheme => TransactionTradeTheme(
|
||||
detailsTitlesColor: Palette.darkGray, rowsColor: Palette.blueAlice);
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => CakeTextTheme(
|
||||
secondaryTextColor: PaletteDark.pigeonBlue,
|
||||
textfieldUnderlineColor: Palette.wildPeriwinkle,
|
||||
titleColor: Palette.violetBlue,
|
||||
addressButtonBorderColor: Palette.blueAlice,
|
||||
dateSectionRowColor: PaletteDark.darkCyanBlue);
|
||||
|
||||
@override
|
||||
AccountListTheme get accountListTheme => AccountListTheme(
|
||||
currentAccountBackgroundColor: dialogBackgroundColor,
|
||||
currentAccountTextColor: primaryColor,
|
||||
currentAccountAmountColor: receivePageTheme.iconsColor,
|
||||
tilesBackgroundColor: Colors.white,
|
||||
tilesAmountColor: receivePageTheme.iconsColor,
|
||||
tilesTextColor: Palette.violetBlue);
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => ReceivePageTheme(
|
||||
currentTileBackgroundColor: Palette.blueCraiola,
|
||||
currentTileTextColor: Colors.white,
|
||||
tilesBackgroundColor: Palette.blueAlice,
|
||||
tilesTextColor: Palette.darkBlueCraiola,
|
||||
iconsBackgroundColor: Palette.moderateLavender,
|
||||
iconsColor: PaletteDark.lightBlueGrey,
|
||||
amountBottomBorderColor: Palette.darkBlueCraiola,
|
||||
amountHintTextColor: Palette.darkBlueCraiola);
|
||||
|
||||
@override
|
||||
QRCodeTheme get qrCodeTheme => QRCodeTheme(
|
||||
qrCodeColor: Colors.white,
|
||||
qrWidgetCopyButtonColor: PaletteDark.lightBlueGrey);
|
||||
|
||||
@override
|
||||
ThemeData get themeData => super.themeData.copyWith(
|
||||
dividerColor: Palette.paleBlue,
|
||||
hintColor: Palette.gray,
|
||||
disabledColor: Palette.darkGray,
|
||||
dialogTheme:
|
||||
super.themeData.dialogTheme.copyWith(backgroundColor: Colors.white));
|
||||
}
|
||||
|
|
14
lib/themes/matrix_green_theme.dart
Normal file
14
lib/themes/matrix_green_theme.dart
Normal file
|
@ -0,0 +1,14 @@
|
|||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/themes/monero_dark_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MatrixGreenTheme extends MoneroDarkTheme {
|
||||
MatrixGreenTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.matrix_green_dark_theme;
|
||||
@override
|
||||
Color get primaryColor => PaletteDark.matrixGreen;
|
||||
}
|
||||
|
194
lib/themes/monero_dark_theme.dart
Normal file
194
lib/themes/monero_dark_theme.dart
Normal file
|
@ -0,0 +1,194 @@
|
|||
import 'package:cake_wallet/themes/dark_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/alert_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/info_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/pin_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MoneroDarkTheme extends DarkTheme {
|
||||
MoneroDarkTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.monero_dark_theme;
|
||||
@override
|
||||
Color get backgroundColor => Colors.black;
|
||||
@override
|
||||
Color get primaryColor => PaletteDark.moneroOrange;
|
||||
@override
|
||||
Color get containerColor => PaletteDark.moneroCard;
|
||||
@override
|
||||
Color get dialogBackgroundColor => containerColor;
|
||||
|
||||
@override
|
||||
CakeScrollbarTheme get scrollbarTheme =>
|
||||
super.scrollbarTheme.copyWith(thumbColor: Colors.grey);
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle =>
|
||||
super.syncIndicatorStyle.copyWith(
|
||||
textColor: Colors.white,
|
||||
notSyncedBackgroundColor: Colors.grey.withOpacity(0.2),
|
||||
syncedBackgroundColor: containerColor);
|
||||
|
||||
@override
|
||||
PinCodeTheme get pinCodeTheme => super
|
||||
.pinCodeTheme
|
||||
.copyWith(indicatorsColor: primaryColor, switchColor: Colors.grey);
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => super.exchangePageTheme.copyWith(
|
||||
hintTextColor: Colors.grey,
|
||||
qrCodeColor: primaryTextColor,
|
||||
buttonBackgroundColor: colorScheme.surfaceVariant,
|
||||
textFieldButtonColor: colorScheme.onInverseSurface,
|
||||
textFieldBorderBottomPanelColor: colorScheme.surfaceVariant,
|
||||
textFieldBorderTopPanelColor: colorScheme.surfaceVariant,
|
||||
secondGradientBottomPanelColor: containerColor,
|
||||
firstGradientBottomPanelColor: containerColor,
|
||||
secondGradientTopPanelColor: colorScheme.surface,
|
||||
firstGradientTopPanelColor: colorScheme.surface,
|
||||
receiveAmountColor: colorScheme.surfaceVariant);
|
||||
|
||||
@override
|
||||
NewWalletTheme get newWalletTheme => super
|
||||
.newWalletTheme
|
||||
.copyWith(hintTextColor: Colors.grey, underlineColor: Colors.grey);
|
||||
|
||||
@override
|
||||
AddressTheme get addressTheme =>
|
||||
super.addressTheme.copyWith(actionButtonColor: containerColor);
|
||||
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
pageTitleTextColor: primaryColor,
|
||||
mainActionsIconColor: primaryColor,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: colorScheme.secondaryContainer,
|
||||
activeIndicatorColor: colorScheme.inversePrimary));
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith(
|
||||
cardBorderColor: primaryColor.withOpacity(0.2),
|
||||
labelTextColor: Colors.grey,
|
||||
balanceAmountColor: primaryColor,
|
||||
assetTitleColor: primaryColor);
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme => super.menuTheme.copyWith(
|
||||
headerFirstGradientColor: containerColor,
|
||||
headerSecondGradientColor: containerColor,
|
||||
backgroundColor: containerColor,
|
||||
subnameTextColor: Colors.grey,
|
||||
dividerColor: colorScheme.secondaryContainer,
|
||||
iconColor: colorScheme.secondaryContainer,
|
||||
settingActionsIconColor: colorScheme.secondaryContainer);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme => super.filterTheme.copyWith(
|
||||
checkboxFirstGradientColor: colorScheme.secondaryContainer,
|
||||
checkboxSecondGradientColor: colorScheme.inversePrimary,
|
||||
checkboxBoundsColor: PaletteDark.wildVioletBlue,
|
||||
checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3),
|
||||
buttonColor: containerColor,
|
||||
iconColor: Colors.grey);
|
||||
|
||||
@override
|
||||
WalletListTheme get walletListTheme => super.walletListTheme.copyWith(
|
||||
restoreWalletButtonTextColor: Colors.white,
|
||||
createNewWalletButtonBackgroundColor: primaryColor);
|
||||
|
||||
@override
|
||||
InfoTheme get infoTheme => super.infoTheme.copyWith(textColor: Colors.grey);
|
||||
|
||||
@override
|
||||
PickerTheme get pickerTheme =>
|
||||
super.pickerTheme.copyWith(dividerColor: Colors.grey.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith(
|
||||
templateNewTextColor:
|
||||
dashboardPageTheme.indicatorDotTheme.activeIndicatorColor,
|
||||
templateTitleColor: primaryTextColor,
|
||||
templateBackgroundColor: containerColor,
|
||||
templateDottedBorderColor: colorScheme.primaryContainer,
|
||||
templateSelectedCurrencyTitleColor: Colors.black,
|
||||
textFieldButtonIconColor: colorScheme.inverseSurface,
|
||||
textFieldButtonColor: colorScheme.onInverseSurface,
|
||||
textFieldHintColor: Colors.grey.withOpacity(0.5),
|
||||
textFieldBorderColor: Colors.grey.withOpacity(0.5),
|
||||
secondGradientColor: containerColor,
|
||||
firstGradientColor: containerColor,
|
||||
indicatorDotColor: dashboardPageTheme.indicatorDotTheme.indicatorColor);
|
||||
|
||||
@override
|
||||
SeedWidgetTheme get seedWidgetTheme =>
|
||||
super.seedWidgetTheme.copyWith(hintTextColor: Colors.grey);
|
||||
|
||||
@override
|
||||
TransactionTradeTheme get transactionTradeTheme => super
|
||||
.transactionTradeTheme
|
||||
.copyWith(detailsTitlesColor: Colors.grey, rowsColor: containerColor);
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith(
|
||||
secondaryTextColor: Colors.grey,
|
||||
addressButtonBorderColor: primaryColor.withOpacity(0.2),
|
||||
dateSectionRowColor: Colors.grey,
|
||||
textfieldUnderlineColor: Colors.grey.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
AccountListTheme get accountListTheme =>
|
||||
super.accountListTheme.copyWith(tilesBackgroundColor: containerColor);
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith(
|
||||
currentTileBackgroundColor: primaryColor,
|
||||
currentTileTextColor: Colors.white,
|
||||
tilesBackgroundColor: containerColor,
|
||||
iconsBackgroundColor: colorScheme.onInverseSurface,
|
||||
iconsColor: colorScheme.inverseSurface,
|
||||
amountBottomBorderColor: Colors.grey,
|
||||
amountHintTextColor: Colors.grey);
|
||||
|
||||
@override
|
||||
QRCodeTheme get qrCodeTheme => QRCodeTheme(
|
||||
qrCodeColor: Colors.grey, qrWidgetCopyButtonColor: Colors.grey);
|
||||
|
||||
@override
|
||||
AlertTheme get alertTheme => super
|
||||
.alertTheme
|
||||
.copyWith(backdropColor: colorScheme.surface.withOpacity(0.75));
|
||||
|
||||
@override
|
||||
ThemeData get themeData => super.themeData.copyWith(
|
||||
dividerColor: pickerTheme.dividerColor,
|
||||
hintColor: Colors.grey,
|
||||
dialogTheme:
|
||||
super.themeData.dialogTheme.copyWith(backgroundColor: containerColor),
|
||||
appBarTheme: super.themeData.appBarTheme.copyWith(
|
||||
titleTextStyle: super
|
||||
.themeData
|
||||
.appBarTheme
|
||||
.titleTextStyle!
|
||||
.copyWith(color: primaryColor)));
|
||||
}
|
159
lib/themes/monero_light_theme.dart
Normal file
159
lib/themes/monero_light_theme.dart
Normal file
|
@ -0,0 +1,159 @@
|
|||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/alert_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/light_theme.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MoneroLightTheme extends LightTheme {
|
||||
MoneroLightTheme({required int raw}) : super(raw: raw);
|
||||
|
||||
@override
|
||||
String get title => S.current.monero_light_theme;
|
||||
@override
|
||||
Color get primaryColor => Palette.moneroOrange;
|
||||
@override
|
||||
Color get containerColor => Palette.moneroLightOrange;
|
||||
@override
|
||||
Color get primaryTextColor => colorScheme.onPrimaryContainer;
|
||||
@override
|
||||
Color get dialogBackgroundColor => containerColor;
|
||||
|
||||
@override
|
||||
SyncIndicatorTheme get syncIndicatorStyle =>
|
||||
super.syncIndicatorStyle.copyWith(
|
||||
textColor: primaryTextColor,
|
||||
syncedBackgroundColor: colorScheme.primaryContainer,
|
||||
notSyncedBackgroundColor: containerColor.withOpacity(0.75));
|
||||
|
||||
@override
|
||||
ExchangePageTheme get exchangePageTheme => super.exchangePageTheme.copyWith(
|
||||
qrCodeColor: primaryTextColor,
|
||||
buttonBackgroundColor: containerColor,
|
||||
secondGradientBottomPanelColor: primaryColor.withOpacity(0.7),
|
||||
firstGradientBottomPanelColor: colorScheme.primary.withOpacity(0.7),
|
||||
secondGradientTopPanelColor: primaryColor,
|
||||
firstGradientTopPanelColor: colorScheme.primary,
|
||||
textFieldBorderBottomPanelColor: colorScheme.surfaceVariant,
|
||||
textFieldBorderTopPanelColor: colorScheme.surfaceVariant,
|
||||
receiveAmountColor: colorScheme.surfaceVariant);
|
||||
|
||||
@override
|
||||
NewWalletTheme get newWalletTheme => super.newWalletTheme.copyWith(
|
||||
hintTextColor: colorScheme.secondary,
|
||||
underlineColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
AddressTheme get addressTheme =>
|
||||
super.addressTheme.copyWith(actionButtonColor: containerColor);
|
||||
|
||||
@override
|
||||
DashboardPageTheme get dashboardPageTheme =>
|
||||
super.dashboardPageTheme.copyWith(
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: colorScheme.secondaryContainer,
|
||||
activeIndicatorColor: colorScheme.inversePrimary));
|
||||
@override
|
||||
BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith(
|
||||
textColor: primaryTextColor.withOpacity(0.67),
|
||||
labelTextColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
CakeMenuTheme get menuTheme => super.menuTheme.copyWith(
|
||||
headerFirstGradientColor: colorScheme.primary,
|
||||
headerSecondGradientColor: primaryColor,
|
||||
dividerColor: colorScheme.secondaryContainer,
|
||||
iconColor: colorScheme.secondaryContainer,
|
||||
settingActionsIconColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
FilterTheme get filterTheme => super.filterTheme.copyWith(
|
||||
checkboxFirstGradientColor: colorScheme.secondaryContainer,
|
||||
checkboxSecondGradientColor: colorScheme.inversePrimary,
|
||||
checkboxBoundsColor: PaletteDark.wildVioletBlue,
|
||||
checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3),
|
||||
buttonColor: containerColor,
|
||||
iconColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
WalletListTheme get walletListTheme => super.walletListTheme.copyWith(
|
||||
restoreWalletButtonTextColor: Colors.white,
|
||||
createNewWalletButtonBackgroundColor: primaryColor);
|
||||
|
||||
@override
|
||||
SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith(
|
||||
templateTitleColor: primaryTextColor,
|
||||
templateBackgroundColor: containerColor,
|
||||
templateNewTextColor: primaryTextColor,
|
||||
templateDottedBorderColor: colorScheme.primaryContainer,
|
||||
secondGradientColor: primaryColor,
|
||||
firstGradientColor: colorScheme.primary,
|
||||
indicatorDotColor: dashboardPageTheme.indicatorDotTheme.indicatorColor);
|
||||
|
||||
@override
|
||||
SeedWidgetTheme get seedWidgetTheme =>
|
||||
super.seedWidgetTheme.copyWith(hintTextColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
TransactionTradeTheme get transactionTradeTheme =>
|
||||
super.transactionTradeTheme.copyWith(
|
||||
detailsTitlesColor: colorScheme.secondary, rowsColor: containerColor);
|
||||
|
||||
@override
|
||||
CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith(
|
||||
titleColor: primaryTextColor,
|
||||
secondaryTextColor: colorScheme.secondary,
|
||||
addressButtonBorderColor: primaryColor.withOpacity(0.2),
|
||||
dateSectionRowColor: colorScheme.secondary,
|
||||
textfieldUnderlineColor: colorScheme.secondary.withOpacity(0.5));
|
||||
|
||||
@override
|
||||
AccountListTheme get accountListTheme =>
|
||||
super.accountListTheme.copyWith(tilesBackgroundColor: containerColor);
|
||||
|
||||
@override
|
||||
ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith(
|
||||
currentTileBackgroundColor: primaryColor,
|
||||
tilesBackgroundColor: containerColor,
|
||||
tilesTextColor: primaryTextColor,
|
||||
iconsBackgroundColor: colorScheme.surfaceVariant,
|
||||
iconsColor: colorScheme.onSurfaceVariant,
|
||||
amountBottomBorderColor: primaryTextColor,
|
||||
amountHintTextColor: primaryTextColor,
|
||||
currentTileTextColor: Colors.white);
|
||||
|
||||
@override
|
||||
QRCodeTheme get qrCodeTheme => super
|
||||
.qrCodeTheme
|
||||
.copyWith(qrWidgetCopyButtonColor: colorScheme.secondary);
|
||||
|
||||
@override
|
||||
AlertTheme get alertTheme => super
|
||||
.alertTheme
|
||||
.copyWith(backdropColor: colorScheme.inverseSurface.withOpacity(0.75));
|
||||
|
||||
@override
|
||||
ThemeData get themeData => super.themeData.copyWith(
|
||||
dividerColor: pickerTheme.dividerColor,
|
||||
hintColor: colorScheme.secondary,
|
||||
dialogTheme: super
|
||||
.themeData
|
||||
.dialogTheme
|
||||
.copyWith(backgroundColor: containerColor));
|
||||
}
|
|
@ -1,17 +1,157 @@
|
|||
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/address_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/alert_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/info_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/order_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/pin_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/support_page_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
|
||||
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
enum ThemeType {light, bright, dark}
|
||||
enum ThemeType { bright, light, dark }
|
||||
|
||||
abstract class ThemeBase {
|
||||
ThemeBase({required this.raw});
|
||||
ThemeBase({required this.raw}) {
|
||||
colorScheme = ColorScheme.fromSeed(
|
||||
brightness: brightness,
|
||||
seedColor: primaryColor,
|
||||
background: backgroundColor);
|
||||
}
|
||||
|
||||
final int raw;
|
||||
String get title;
|
||||
ThemeData get themeData;
|
||||
ThemeType get type;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return title;
|
||||
}
|
||||
}
|
||||
|
||||
Brightness get brightness;
|
||||
Color get backgroundColor;
|
||||
Color get primaryColor;
|
||||
Color get primaryTextColor;
|
||||
Color get containerColor;
|
||||
Color get dialogBackgroundColor;
|
||||
|
||||
ColorScheme colorScheme = ColorScheme.light();
|
||||
|
||||
ThemeData get generatedThemeData => ThemeData.from(
|
||||
colorScheme: colorScheme,
|
||||
textTheme: TextTheme().apply(fontFamily: 'Lato'));
|
||||
|
||||
DashboardPageTheme get dashboardPageTheme => DashboardPageTheme(
|
||||
firstGradientBackgroundColor: backgroundColor,
|
||||
secondGradientBackgroundColor: backgroundColor,
|
||||
thirdGradientBackgroundColor: backgroundColor,
|
||||
textColor: primaryTextColor,
|
||||
indicatorDotTheme: IndicatorDotTheme(
|
||||
indicatorColor: primaryColor, activeIndicatorColor: backgroundColor));
|
||||
|
||||
CakeScrollbarTheme get scrollbarTheme;
|
||||
|
||||
SyncIndicatorTheme get syncIndicatorStyle;
|
||||
|
||||
KeyboardTheme get keyboardTheme;
|
||||
|
||||
PinCodeTheme get pinCodeTheme;
|
||||
|
||||
SupportPageTheme get supportPageTheme;
|
||||
|
||||
ExchangePageTheme get exchangePageTheme;
|
||||
|
||||
NewWalletTheme get newWalletTheme;
|
||||
|
||||
BalancePageTheme get balancePageTheme;
|
||||
|
||||
AddressTheme get addressTheme;
|
||||
|
||||
CakeMenuTheme get menuTheme;
|
||||
|
||||
FilterTheme get filterTheme;
|
||||
|
||||
WalletListTheme get walletListTheme;
|
||||
|
||||
InfoTheme get infoTheme;
|
||||
|
||||
PickerTheme get pickerTheme;
|
||||
|
||||
AlertTheme get alertTheme;
|
||||
|
||||
OrderTheme get orderTheme;
|
||||
|
||||
SendPageTheme get sendPageTheme;
|
||||
|
||||
SeedWidgetTheme get seedWidgetTheme;
|
||||
|
||||
PlaceholderTheme get placeholderTheme;
|
||||
|
||||
TransactionTradeTheme get transactionTradeTheme;
|
||||
|
||||
CakeTextTheme get cakeTextTheme;
|
||||
|
||||
AccountListTheme get accountListTheme;
|
||||
|
||||
ReceivePageTheme get receivePageTheme;
|
||||
|
||||
QRCodeTheme get qrCodeTheme;
|
||||
|
||||
ThemeData get themeData => generatedThemeData.copyWith(
|
||||
primaryColor: primaryColor,
|
||||
cardColor: containerColor,
|
||||
dialogBackgroundColor: dialogBackgroundColor,
|
||||
extensions: [
|
||||
dashboardPageTheme,
|
||||
scrollbarTheme,
|
||||
syncIndicatorStyle,
|
||||
keyboardTheme,
|
||||
pinCodeTheme,
|
||||
supportPageTheme,
|
||||
exchangePageTheme,
|
||||
newWalletTheme,
|
||||
balancePageTheme,
|
||||
addressTheme,
|
||||
menuTheme,
|
||||
filterTheme,
|
||||
walletListTheme,
|
||||
infoTheme,
|
||||
pickerTheme,
|
||||
alertTheme,
|
||||
orderTheme,
|
||||
sendPageTheme,
|
||||
seedWidgetTheme,
|
||||
placeholderTheme,
|
||||
transactionTradeTheme,
|
||||
cakeTextTheme,
|
||||
accountListTheme,
|
||||
receivePageTheme,
|
||||
qrCodeTheme,
|
||||
],
|
||||
scrollbarTheme: generatedThemeData.scrollbarTheme.copyWith(
|
||||
thumbColor: MaterialStateProperty.all(scrollbarTheme.thumbColor),
|
||||
trackColor: MaterialStateProperty.all(scrollbarTheme.trackColor),
|
||||
radius: Radius.circular(3),
|
||||
thickness: MaterialStateProperty.all(6),
|
||||
thumbVisibility: MaterialStateProperty.all(true),
|
||||
crossAxisMargin: 6),
|
||||
appBarTheme: generatedThemeData.appBarTheme.copyWith(
|
||||
titleTextStyle: TextStyle(color: cakeTextTheme.titleColor)));
|
||||
}
|
||||
|
|
|
@ -1,14 +1,36 @@
|
|||
import 'package:cake_wallet/themes/bright_theme.dart';
|
||||
import 'package:cake_wallet/themes/dark_theme.dart';
|
||||
import 'package:cake_wallet/themes/light_theme.dart';
|
||||
import 'package:cake_wallet/themes/monero_light_theme.dart';
|
||||
import 'package:cake_wallet/themes/monero_dark_theme.dart';
|
||||
import 'package:cake_wallet/themes/matrix_green_theme.dart';
|
||||
import 'package:cake_wallet/themes/bitcoin_dark_theme.dart';
|
||||
import 'package:cake_wallet/themes/bitcoin_light_theme.dart';
|
||||
import 'package:cake_wallet/themes/high_contrast_theme.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
|
||||
class ThemeList {
|
||||
static final all = [brightTheme, lightTheme, darkTheme];
|
||||
static final all = [
|
||||
brightTheme,
|
||||
lightTheme,
|
||||
darkTheme,
|
||||
moneroDarkTheme,
|
||||
moneroLightTheme,
|
||||
matrixGreenTheme,
|
||||
bitcoinDarkTheme,
|
||||
bitcoinLightTheme,
|
||||
highContrastTheme
|
||||
];
|
||||
|
||||
static final lightTheme = LightTheme(raw: 0);
|
||||
static final brightTheme = BrightTheme(raw: 1);
|
||||
static final darkTheme = DarkTheme(raw: 2);
|
||||
static final moneroDarkTheme = MoneroDarkTheme(raw: 3);
|
||||
static final moneroLightTheme = MoneroLightTheme(raw: 4);
|
||||
static final matrixGreenTheme = MatrixGreenTheme(raw: 5);
|
||||
static final bitcoinDarkTheme = BitcoinDarkTheme(raw: 6);
|
||||
static final bitcoinLightTheme = BitcoinLightTheme(raw: 7);
|
||||
static final highContrastTheme = HighContrastTheme(raw: 8);
|
||||
|
||||
static ThemeBase deserialize({required int raw}) {
|
||||
switch (raw) {
|
||||
|
@ -18,8 +40,21 @@ class ThemeList {
|
|||
return brightTheme;
|
||||
case 2:
|
||||
return darkTheme;
|
||||
case 3:
|
||||
return moneroDarkTheme;
|
||||
case 4:
|
||||
return moneroLightTheme;
|
||||
case 5:
|
||||
return matrixGreenTheme;
|
||||
case 6:
|
||||
return bitcoinDarkTheme;
|
||||
case 7:
|
||||
return bitcoinLightTheme;
|
||||
case 8:
|
||||
return highContrastTheme;
|
||||
default:
|
||||
throw Exception('Unexpected token raw: $raw for deserialization of ThemeBase');
|
||||
throw Exception(
|
||||
'Unexpected token raw: $raw for deserialization of ThemeBase');
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue