206 lines
9.0 KiB
Dart
206 lines
9.0 KiB
Dart
|
|
import 'package:daily_challenge/ui/pages/award/trophy_exhibit_widget.dart';
|
||
|
|
import 'package:daily_challenge/ui/pages/calendar/challenge_calendar_page.dart';
|
||
|
|
import 'package:daily_challenge/ui/pages/congratulations/congratulations_page.dart';
|
||
|
|
import 'package:example/theme/assetbar/custom_asset_bar_theme.dart';
|
||
|
|
import 'package:example/theme/button/custom_standard_button_theme.dart';
|
||
|
|
import 'package:flutter/material.dart';
|
||
|
|
import 'package:guru_widgets/theme/guru_theme.dart';
|
||
|
|
import 'package:guru_widgets/assetbar/guru_asset_bar.dart';
|
||
|
|
import 'package:guru_widgets/banner/purchase_banner.dart';
|
||
|
|
import 'package:guru_widgets/gem_overlay/guru_gem_overlay.dart';
|
||
|
|
|
||
|
|
import 'tabbar/custom_tab_bar_theme.dart';
|
||
|
|
|
||
|
|
/// Created by KernelTea on 2021/12/14
|
||
|
|
|
||
|
|
mixin GuruAssetBarThemeMixin {
|
||
|
|
static const GuruAssetBarStyle joker = GuruAssetBarStyle.create("joker");
|
||
|
|
}
|
||
|
|
|
||
|
|
class ExampleThemes {
|
||
|
|
static const _primaryColor = Color(0xFF7B6CDC);
|
||
|
|
|
||
|
|
static ThemeData get theme => defaultLightTheme;
|
||
|
|
|
||
|
|
static GuruThemeData defaultGuruTheme = GuruThemeData(
|
||
|
|
iconScheme: const GuruIconScheme(
|
||
|
|
dialogCloseIcon: "assets/images/ic_close.png",
|
||
|
|
closeIcon: "assets/images/ic_close.png",
|
||
|
|
entranceIcon: "assets/images/arrow.png",
|
||
|
|
switchOffIcon: "assets/images/off.png",
|
||
|
|
switchOnIcon: "assets/images/on.png",
|
||
|
|
adsVideoIcon: "assets/images/ic_ads.png",
|
||
|
|
leftArrowIcon: "assets/images/ic_arrow_left.png",
|
||
|
|
rightArrowIcon: "assets/images/ic_arrow_right.png",
|
||
|
|
backIcon: "assets/images/ic_back.png",
|
||
|
|
tipsIcon: "assets/images/ic_tips.png"),
|
||
|
|
colorScheme: const GuruColorScheme(
|
||
|
|
primaryColor: _primaryColor,
|
||
|
|
secondaryColor: Color(0xffa2a2a2),
|
||
|
|
primaryContentColor: Colors.white,
|
||
|
|
secondaryContentColor: white40,
|
||
|
|
backgroundColor: Color(0xFF121212),
|
||
|
|
containerColor: Color(0xFF1D1D1D),
|
||
|
|
overlayColors: GuruOverlayColorScheme(
|
||
|
|
backgroundColor: Colors.white,
|
||
|
|
textColor: _primaryColor,
|
||
|
|
expressiveColor: Colors.black)),
|
||
|
|
buttonTheme: CustomStandardButtonTheme(),
|
||
|
|
dialogTheme: const GuruDialogTheme(
|
||
|
|
titleColor: Color(0xFF181B36),
|
||
|
|
subtitleColor: Color(0xFF6C6D71),
|
||
|
|
summaryColor: Colors.black,
|
||
|
|
backgroundColor: Colors.white),
|
||
|
|
appBarTheme: const GuruAppBarTheme(backgroundColor: Colors.blue, hasStatusBar: true),
|
||
|
|
tabBarTheme: const GuruTabBarTheme(
|
||
|
|
backgroundColor: Color(0xFFF1F1F1),
|
||
|
|
selectedColor: Colors.white,
|
||
|
|
selectedBackgroundColor: Color(0xFF5067ED),
|
||
|
|
unSelctedColor: Color(0x66000000),
|
||
|
|
unSelectedBackgroundColor: Colors.transparent,
|
||
|
|
indicator: CustomTabBarDecoration()),
|
||
|
|
navigationBarTheme: const GuruNavigationBarTheme(
|
||
|
|
backgroundColor: Colors.white,
|
||
|
|
selectedColor: Color(0xFF5067ED),
|
||
|
|
unSelctedColor: Colors.black26),
|
||
|
|
assetBarTheme: const GuruAssetBarTheme(styles: {
|
||
|
|
GuruAssetBarStyle.igc: GuruAssetBarStyleTheme(
|
||
|
|
"assets/images/ic_coin.png",
|
||
|
|
backgroundDecoration: CustomAssetBarDecoration(),
|
||
|
|
balanceColor: Colors.white,
|
||
|
|
trailingIcon: "assets/images/ic_add.png"),
|
||
|
|
GuruAssetBarThemeMixin.joker: GuruAssetBarStyleTheme(
|
||
|
|
sizeSpec: GuruAssetBarSizeSpec.s2,
|
||
|
|
"assets/images/ic_coin.png",
|
||
|
|
backgroundDecoration:
|
||
|
|
GuruAssetBarSolidDecoration(color: Colors.blueGrey, sizeSpec: GuruAssetBarSizeSpec.s2),
|
||
|
|
balanceColor: Colors.black,
|
||
|
|
trailingIcon: "assets/images/ic_add.png"),
|
||
|
|
}),
|
||
|
|
sliderBarTheme: const GuruSliderBarTheme(
|
||
|
|
anchorIcon: 'assets/images/slider_bar/pic_select.png',
|
||
|
|
curve: Cubic(.71,.1,.29,.9),
|
||
|
|
duration: Duration(milliseconds: 1400)
|
||
|
|
),
|
||
|
|
gemsOverlayTheme: const GuruGemsOverlayTheme(
|
||
|
|
icon: "assets/images/ic_coin.png"
|
||
|
|
),
|
||
|
|
customTheme: GuruCustomTheme(themes: [
|
||
|
|
ChallengeCalendarTheme(
|
||
|
|
primaryColor: Colors.blue,
|
||
|
|
dateTextColor: Colors.black,
|
||
|
|
selectedDateTextColor: Colors.white,
|
||
|
|
disabledDateTextColor: Colors.grey.withOpacity(0.65),
|
||
|
|
daysOfWeekTextColor: const Color(0xFF999999),
|
||
|
|
calendarBackgroundColor: Colors.white,
|
||
|
|
animatedTrophyBackground: LottieAsset(
|
||
|
|
"assets/lottie/animated_trophy_bg.json",
|
||
|
|
const Duration(seconds: 14)),
|
||
|
|
closeIcon: "assets/images/close.png",
|
||
|
|
markerIcon: "assets/images/ic_crown.png",
|
||
|
|
nextMonthArrowIcon:
|
||
|
|
"assets/images/daily_challenge/ic_arrow_right.png",
|
||
|
|
previousMonthArrowIcon:
|
||
|
|
"assets/images/daily_challenge/ic_arrow_left.png",
|
||
|
|
awardIcon: "assets/images/daily_challenge/ic_awards.png"),
|
||
|
|
TrophyExhibitTheme(
|
||
|
|
yearColor: Colors.black,
|
||
|
|
monthNameColor: Colors.black,
|
||
|
|
headerGradient: const LinearGradient(
|
||
|
|
begin: Alignment.topCenter,
|
||
|
|
end: Alignment.bottomCenter,
|
||
|
|
colors: [Color(0xFFE9ECFF), Colors.white],
|
||
|
|
)),
|
||
|
|
CongratulationTheme(
|
||
|
|
summaryColor: Colors.white,
|
||
|
|
buttonStyle: CustomStandardButtonTheme.collectTrophy,
|
||
|
|
animatedTrophyBackground: LottieAsset(
|
||
|
|
"assets/lottie/congrats_trophy_bg.json",
|
||
|
|
const Duration(seconds: 14))),
|
||
|
|
const PurchaseBannerTheme(
|
||
|
|
removeAdsBackGround: 'assets/images/pic_radial_light.png',
|
||
|
|
removeAdsImage: 'assets/images/pic_remove_ads.png'
|
||
|
|
),
|
||
|
|
]));
|
||
|
|
|
||
|
|
static ThemeData defaultLightTheme = ThemeData(
|
||
|
|
brightness: Brightness.light,
|
||
|
|
primaryColor: _primaryColor,
|
||
|
|
fontFamily: "EncodeSansExpanded",
|
||
|
|
dialogBackgroundColor: const Color(0xFFFFFEFC),
|
||
|
|
canvasColor: Colors.transparent,
|
||
|
|
backgroundColor: Colors.white,
|
||
|
|
scaffoldBackgroundColor: Colors.white,
|
||
|
|
unselectedWidgetColor: _primaryColor,
|
||
|
|
/* timePickerTheme: TimePickerThemeData(
|
||
|
|
// dayPeriodColor: Colors.green,
|
||
|
|
entryModeIconColor: Colors.deepPurple,
|
||
|
|
hourMinuteColor: Colors.blueAccent,
|
||
|
|
hourMinuteTextColor: Colors.orangeAccent,
|
||
|
|
),*/
|
||
|
|
radioTheme: RadioThemeData(
|
||
|
|
overlayColor:
|
||
|
|
MaterialStateProperty.all(_primaryColor.withOpacity(0.3)),
|
||
|
|
fillColor: MaterialStateProperty.all(_primaryColor)),
|
||
|
|
switchTheme: SwitchThemeData(
|
||
|
|
thumbColor: MaterialStateColor.resolveWith((Set<MaterialState> states) {
|
||
|
|
if (states.contains(MaterialState.selected)) {
|
||
|
|
return _primaryColor;
|
||
|
|
}
|
||
|
|
return Colors.white;
|
||
|
|
}),
|
||
|
|
trackColor: MaterialStateColor.resolveWith((Set<MaterialState> states) {
|
||
|
|
if (states.contains(MaterialState.selected)) {
|
||
|
|
return _primaryColor.withOpacity(0.2);
|
||
|
|
}
|
||
|
|
return const Color(0xFFB9B9B9);
|
||
|
|
}),
|
||
|
|
overlayColor:
|
||
|
|
MaterialStateColor.resolveWith((Set<MaterialState> states) {
|
||
|
|
if (states.contains(MaterialState.selected)) {
|
||
|
|
return _primaryColor.withOpacity(0.2);
|
||
|
|
}
|
||
|
|
return Colors.black12;
|
||
|
|
}),
|
||
|
|
),
|
||
|
|
iconTheme: const IconThemeData(color: Colors.black));
|
||
|
|
|
||
|
|
static const FontWeight fwThin = FontWeight.w100; // 纤细体
|
||
|
|
static const FontWeight fwExtraLight = FontWeight.w200; // 加细体
|
||
|
|
static const FontWeight fwLight = FontWeight.w300; // 细体
|
||
|
|
static const FontWeight fwRegular = FontWeight.w400; // 常规体
|
||
|
|
static const FontWeight fwMedium = FontWeight.w500; // 中黑体
|
||
|
|
static const FontWeight fwSemiBold = FontWeight.w600; // 中粗体
|
||
|
|
static const FontWeight fwBold = FontWeight.w700; // 粗体
|
||
|
|
static const FontWeight fwExtraBold = FontWeight.w800; // 加粗体
|
||
|
|
static const FontWeight fwBlack = FontWeight.w900; // 黑体
|
||
|
|
|
||
|
|
static const Color white17 = Color(0x23FFFFFF);
|
||
|
|
static const Color white22 = Color(0x38FFFFFF);
|
||
|
|
static const Color white40 = Color(0x66FFFFFF);
|
||
|
|
static const Color white44 = Color(0x70FFFFFF);
|
||
|
|
static const Color white48 = Color(0x7AFFFFFF);
|
||
|
|
static const Color white50 = Color(0x7FFFFFFF);
|
||
|
|
static const Color white60 = Color(0x99FFFFFF);
|
||
|
|
static const Color white70 = Colors.white70;
|
||
|
|
static const Color white80 = Color(0xCCFFFFFF);
|
||
|
|
static const Color white90 = Color(0xE5FFFFFF);
|
||
|
|
static const Color white94 = Color(0xF0FFFFFF);
|
||
|
|
|
||
|
|
static const Color black17 = Color(0x23000000);
|
||
|
|
static const Color black22 = Color(0x38000000);
|
||
|
|
static const Color black40 = Color(0x66000000);
|
||
|
|
static const Color black44 = Color(0x70000000);
|
||
|
|
static const Color black48 = Color(0x7A000000);
|
||
|
|
static const Color black50 = Color(0x7F000000);
|
||
|
|
static const Color black60 = Color(0x99000000);
|
||
|
|
static const Color black70 = Color(0xB3000000);
|
||
|
|
static const Color black80 = Color(0xCC000000);
|
||
|
|
static const Color black90 = Color(0xE5000000);
|
||
|
|
static const Color black94 = Color(0xF0000000);
|
||
|
|
|
||
|
|
static TextStyle mergeTextStyle(BuildContext context, TextStyle style) {
|
||
|
|
return DefaultTextStyle.of(context).style.merge(style);
|
||
|
|
}
|
||
|
|
}
|