import 'package:flutter/material.dart'; import 'package:sk_base_mobile/util/screen_adaper_util.dart'; class AppTheme { AppTheme._(); static const Color primaryColor = Color(0xFFC89607); static const Color primaryColorLight = Color.fromARGB(255, 255, 206, 70); static const Color primaryColorDark = Color.fromARGB(255, 163, 120, 0); static const Color secondPrimaryColor = Color(0xFFc12a3a); static const Color secondPrimaryColorLight = Color.fromARGB(255, 230, 79, 94); static const Color secondPrimaryColorDark = Color.fromARGB(255, 141, 12, 25); static const Color white = Color(0xFFFFFFFF); static const Color nearlyWhite = Color(0xFFFEFEFE); static const Color black = Color(0xFF000000); static const Color nearlyBlack = Color(0xFF213333); static const Color grey = Color(0xFF3A5160); static const Color snackbarErrorBackgroudColor = Colors.red; static const Color snackbarSuccessBackgroudColor = Colors.green; static const Color snackbarWarningBackgroudColor = Colors.orange; static Color barrierColor = Colors.black.withOpacity(0.5); static const String fontName = 'NotoSans'; static const Color activeNavigationBarColor = primaryColor; static const Color notActiveNavigationBarColor = Colors.grey; static const Color dividerColor = Color.fromARGB(255, 224, 224, 224); } final theme = ThemeData( primarySwatch: MaterialColor(AppTheme.primaryColor.value, const { 50: AppTheme.primaryColorLight, 100: AppTheme.primaryColorLight, 200: AppTheme.primaryColorLight, 300: AppTheme.primaryColorLight, 400: AppTheme.primaryColorLight, 500: AppTheme.primaryColor, 600: AppTheme.primaryColorDark, 700: AppTheme.primaryColorDark, 800: AppTheme.primaryColorDark, 900: AppTheme.primaryColorDark, }), fontFamily: AppTheme.fontName, datePickerTheme: DatePickerThemeData( confirmButtonStyle: ButtonStyle( textStyle: MaterialStateProperty.resolveWith( (Set states) { return TextStyle(color: AppTheme.primaryColor); }, ), ), todayBorder: const BorderSide(color: AppTheme.primaryColor), todayBackgroundColor: MaterialStateProperty.resolveWith( (Set states) { if (states.contains(MaterialState.selected)) { return AppTheme.primaryColor; } return null; }, ), rangeSelectionBackgroundColor: AppTheme.primaryColor, dayBackgroundColor: MaterialStateProperty.resolveWith( (Set states) { if (states.contains(MaterialState.selected)) { return AppTheme.primaryColor; } return null; }, ), ), visualDensity: VisualDensity.adaptivePlatformDensity, primaryColor: AppTheme.primaryColor, primaryColorDark: AppTheme.primaryColorDark, progressIndicatorTheme: const ProgressIndicatorThemeData(color: AppTheme.primaryColor), dividerColor: AppTheme.dividerColor, cardColor: AppTheme.white, scaffoldBackgroundColor: AppTheme.nearlyWhite, bottomNavigationBarTheme: BottomNavigationBarThemeData( backgroundColor: AppTheme.nearlyWhite, unselectedLabelStyle: TextStyle(fontSize: ScreenAdaper.sp(20)), selectedLabelStyle: TextStyle(fontSize: ScreenAdaper.sp(20)), selectedItemColor: AppTheme.primaryColor), tabBarTheme: const TabBarTheme( indicator: BoxDecoration( border: Border(bottom: BorderSide(width: 3, color: AppTheme.primaryColorDark)), )), appBarTheme: AppBarTheme( centerTitle: true, iconTheme: const IconThemeData(color: Colors.black), backgroundColor: AppTheme.primaryColor, titleTextStyle: TextStyle( color: Colors.black, fontSize: ScreenAdaper.sp(25), fontWeight: FontWeight.bold), ), inputDecorationTheme: InputDecorationTheme( floatingLabelStyle: TextStyle( color: AppTheme.primaryColor, fontSize: ScreenAdaper.sp(30), ), labelStyle: TextStyle( fontSize: ScreenAdaper.sp(25), ), border: OutlineInputBorder( borderRadius: BorderRadius.circular(ScreenAdaper.sp(15))), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(ScreenAdaper.sp(15)), borderSide: const BorderSide( color: AppTheme.primaryColorLight, width: 2), // 选中时的边框颜色和宽度 ), ), );