import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; class FikoThemeConstants { FikoThemeConstants(); /// /Colors static const Color primary = Colors.blueAccent; static final Color scaffoldBackgroundColor = Colors.grey.shade200; static final Color backgroundColor = Colors.grey.shade200; static final Color collapsedHeaderBackgroundColor = Colors.grey.shade300; /// / static const double kMinInteractiveDimension = 48.0; static const double kToolbarHeight = 56.0; static const double kBottomNavigationBarHeight = 56.0; static const double kTextTabBarHeight = kMinInteractiveDimension; static const Duration kThemeChangeDuration = Duration(milliseconds: 200); static const double kRadialReactionRadius = 20.0; static const Duration kRadialReactionDuration = Duration(milliseconds: 100); static const int kRadialReactionAlpha = 0x1F; static const Duration kTabScrollDuration = Duration(milliseconds: 300); static const EdgeInsets kTabLabelPadding = EdgeInsets.symmetric(horizontal: 16.0); static const EdgeInsets kMaterialListPadding = EdgeInsets.symmetric(vertical: 8.0); /// / Defult Header Widget static const double widgetHeaderHeight = 296.0; } class FikoTheme { static ThemeData get lightTheme { return ThemeData( primaryColor: FikoThemeConstants.primary, scaffoldBackgroundColor: FikoThemeConstants.scaffoldBackgroundColor, splashColor: Colors.black.withOpacity(0.15), // backgroundColor: FikoThemeConstants.backgroundColor, fontFamily: GoogleFonts.robotoFlex().fontFamily, // textTheme: GoogleFonts.truculentaTextTheme(), useMaterial3: true, visualDensity: const VisualDensity(horizontal: 0, vertical: -4), textButtonTheme: TextButtonThemeData( style: TextButton.styleFrom( foregroundColor: Colors.black, iconColor: Colors.blueGrey.shade200, padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 5), minimumSize: const Size(12, 12), tapTargetSize: MaterialTapTargetSize.shrinkWrap, alignment: Alignment.centerLeft, visualDensity: const VisualDensity(horizontal: 0, vertical: -4), // textStyle: GoogleFonts.truculenta().getTextStyle(), ), // minimumSize: Size(14, 14), ), outlinedButtonTheme: OutlinedButtonThemeData( style: TextButton.styleFrom( padding: const EdgeInsets.only(left: 3, right: 3), // minimumSize: Size(14, 14), ), ), textTheme: GoogleFonts.robotoFlexTextTheme( const TextTheme( labelLarge: TextStyle( fontSize: 14, ), labelMedium: TextStyle(fontSize: 12), labelSmall: TextStyle(fontSize: 10), bodyLarge: TextStyle(fontSize: 14), bodyMedium: TextStyle(fontSize: 12), bodySmall: TextStyle(fontSize: 10), headlineLarge: TextStyle(fontSize: 14), headlineMedium: TextStyle(fontSize: 12), headlineSmall: TextStyle(fontSize: 10), displayLarge: TextStyle(fontSize: 14), displayMedium: TextStyle(fontSize: 12), displaySmall: TextStyle(fontSize: 10), ), ), sliderTheme: SliderThemeData( trackHeight: 2.0, trackShape: const RoundedRectSliderTrackShape(), activeTrackColor: Colors.purple.shade800, inactiveTrackColor: Colors.purple.shade100, thumbShape: const RoundSliderThumbShape( enabledThumbRadius: 8.0, pressedElevation: 6.0, ), thumbColor: Colors.blueAccent, overlayColor: Colors.pink.withOpacity(0.2), overlayShape: const RoundSliderOverlayShape(overlayRadius: 16.0), tickMarkShape: const RoundSliderTickMarkShape(), activeTickMarkColor: Colors.pinkAccent, inactiveTickMarkColor: Colors.white, valueIndicatorShape: const PaddleSliderValueIndicatorShape(), valueIndicatorColor: Colors.black, valueIndicatorTextStyle: const TextStyle( color: Colors.white, fontSize: 20.0, ), ), listTileTheme: ListTileThemeData( contentPadding: const EdgeInsets.all(5), dense: true, horizontalTitleGap: 0, minLeadingWidth: 0, minVerticalPadding: 0, visualDensity: const VisualDensity( horizontal: 0, vertical: -4, ), selectedColor: Colors.white, selectedTileColor: Colors.blue.shade200, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5), ), ), iconTheme: const IconThemeData(size: 12), iconButtonTheme: IconButtonThemeData( style: IconButton.styleFrom(iconSize: 12), ), inputDecorationTheme: const InputDecorationTheme( floatingLabelBehavior: FloatingLabelBehavior.never, contentPadding: EdgeInsets.all(10.0), labelStyle: TextStyle(fontSize: 12), isDense: true, border: OutlineInputBorder( borderRadius: BorderRadius.all( Radius.circular(5), ), ), ), popupMenuTheme: PopupMenuThemeData( textStyle: const TextStyle(fontSize: 14), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5), ), ), menuButtonTheme: const MenuButtonThemeData( style: ButtonStyle( iconSize: MaterialStatePropertyAll(24), ), ), dividerTheme: const DividerThemeData( thickness: 1, space: 1, ), // timePickerTheme: const TimePickerThemeData( // dialTextStyle: TextStyle(),helpTextStyle: TextStyle(),dayPeriodTextStyle: TextStyle(),hourMinuteTextStyle: TextStyle(fontSize: 18) // ), ); } /// /// /// /// static ThemeData get darkTheme { return ThemeData( primaryColor: Colors.white, scaffoldBackgroundColor: Colors.grey.shade900, // backgroundColor: FikoThemeConstants.backgroundColor, fontFamily: GoogleFonts.averiaLibre().fontFamily, useMaterial3: false, visualDensity: const VisualDensity(horizontal: 0, vertical: -4), textButtonTheme: TextButtonThemeData( style: TextButton.styleFrom( padding: EdgeInsets.zero, minimumSize: const Size(24, 24), tapTargetSize: MaterialTapTargetSize.shrinkWrap, alignment: Alignment.center, ), // minimumSize: Size(14, 14), ), outlinedButtonTheme: OutlinedButtonThemeData( style: TextButton.styleFrom( side: const BorderSide(color: Colors.white), padding: const EdgeInsets.only(left: 3, right: 3), // minimumSize: Size(14, 14), ), ), textTheme: GoogleFonts.robotoFlexTextTheme( const TextTheme( labelLarge: TextStyle(fontSize: 12, color: Colors.white), labelMedium: TextStyle(fontSize: 10, color: Colors.white), labelSmall: TextStyle(fontSize: 8, color: Colors.white), bodyLarge: TextStyle(fontSize: 12, color: Colors.white), bodyMedium: TextStyle(fontSize: 10, color: Colors.white), bodySmall: TextStyle(fontSize: 8, color: Colors.white), ), ), listTileTheme: ListTileThemeData( contentPadding: EdgeInsets.zero, dense: true, horizontalTitleGap: 0, minLeadingWidth: 0, minVerticalPadding: 0, visualDensity: const VisualDensity( horizontal: 0, vertical: -4, ), textColor: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5.0), // side: BorderSide(color: Colors.white), ), ), iconTheme: const IconThemeData(size: 12), iconButtonTheme: const IconButtonThemeData( style: ButtonStyle(), ), inputDecorationTheme: const InputDecorationTheme( floatingLabelBehavior: FloatingLabelBehavior.never, contentPadding: EdgeInsets.all(10.0), labelStyle: TextStyle(fontSize: 10), isDense: true, border: OutlineInputBorder( borderSide: BorderSide(color: Colors.white), borderRadius: BorderRadius.all( Radius.circular(5), ), ), ), shadowColor: Colors.white, ); } }