import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/theme/colors.dart'; import 'package:flutter/material.dart'; class AppTheme { static ThemeData getTheme(bool isArabic) => ThemeData( useMaterial3: true, // Added Material 3 support fontFamily: isArabic ? 'Cairo' : 'Poppins', colorScheme: ColorScheme.fromSeed( seedColor: Colors.red, brightness: Brightness.light, secondary: MyColors.backgroundColor, // Replaces accentColor error: const Color.fromRGBO(235, 80, 60, 1.0), ), visualDensity: VisualDensity.adaptivePlatformDensity, pageTransitionsTheme: const PageTransitionsTheme( builders: { TargetPlatform.android: ZoomPageTransitionsBuilder(), TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), }, ), hintColor: Colors.grey[400], disabledColor: Colors.grey[300], scaffoldBackgroundColor: MyColors.backgroundColor, textSelectionTheme: const TextSelectionThemeData( cursorColor: Colors.grey, selectionColor: Color.fromRGBO(80, 100, 253, 0.5), selectionHandleColor: Colors.grey, ), canvasColor: Colors.white, highlightColor: Colors.grey[100]!.withOpacity(0.4), splashColor: Colors.transparent, indicatorColor: secondaryColor, bottomSheetTheme: const BottomSheetThemeData( backgroundColor: Color(0xFFE0E0E0), surfaceTintColor: Colors.transparent, // Added for Material 3 ), iconTheme: const IconThemeData(color: MyColors.darkIconColor), textTheme: const TextTheme( bodyLarge: TextStyle(color: Colors.black, letterSpacing: 0.6), // Updated from bodyText1 bodyMedium: TextStyle(color: Colors.black, letterSpacing: 0.6), // Added for better coverage displayLarge: TextStyle(color: Colors.white, letterSpacing: 0.6), // Updated from headline1 displayMedium: TextStyle(color: Colors.white, letterSpacing: 0.6), // Updated from headline2 ), floatingActionButtonTheme: const FloatingActionButtonThemeData( highlightElevation: 2, disabledElevation: 0, elevation: 2, ), appBarTheme: AppBarTheme( backgroundColor: const Color(0xff515A5D), surfaceTintColor: Colors.transparent, // Added for Material 3 elevation: 0.0, actionsIconTheme: IconThemeData( color: Colors.grey[800], ), iconTheme: IconThemeData( color: Colors.grey[800], ), ), checkboxTheme: CheckboxThemeData( fillColor: MaterialStateProperty.resolveWith((Set states) { if (states.contains(MaterialState.disabled)) { return null; } if (states.contains(MaterialState.selected)) { return secondaryColor; } return null; }), ), radioTheme: RadioThemeData( fillColor: MaterialStateProperty.resolveWith((Set states) { if (states.contains(MaterialState.disabled)) { return null; } if (states.contains(MaterialState.selected)) { return secondaryColor; } return null; }), ), switchTheme: SwitchThemeData( thumbColor: MaterialStateProperty.resolveWith((Set states) { if (states.contains(MaterialState.disabled)) { return null; } if (states.contains(MaterialState.selected)) { return secondaryColor; } return null; }), trackColor: MaterialStateProperty.resolveWith((Set states) { if (states.contains(MaterialState.disabled)) { return null; } if (states.contains(MaterialState.selected)) { return secondaryColor; } return null; }), ), ); static Color get primaryColor => Colors.red; static Color get secondaryColor => MyColors.backgroundColor; } extension ExtendedRevoCheckTheme on TextTheme { //add custom styles and colors here //taken from https://medium.com/@crizantlai/flutter-how-to-extend-themedata-b5b987a95bb5 TextStyle get price => const TextStyle(color: Colors.redAccent); }