import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import '../../core/theme/app_colors.dart'; /// XtremFlow Mobile Theme /// /// Adapted from AppTheme for touch-first screens. class MobileTheme { MobileTheme._(); // ============ SPACING ============ static const double spacing4 = 4.0; static const double spacing8 = 8.0; static const double spacing12 = 12.0; static const double spacing16 = 16.0; static const double spacing24 = 24.0; // ============ RADIUS ============ static const double radiusSm = 8.0; static const double radiusMd = 12.0; static const double radiusLg = 16.0; // ============ DARK THEME (Mobile Main) ============ static ThemeData get darkTheme { final baseTheme = ThemeData.dark(useMaterial3: true); return baseTheme.copyWith( colorScheme: AppColors.darkColorScheme, scaffoldBackgroundColor: Colors.black, // Enforce Pure Black // Typography: Scaled down for mobile textTheme: TextTheme( displayLarge: GoogleFonts.inter(fontSize: 32, fontWeight: FontWeight.w700, letterSpacing: -1.0, color: Colors.white), displayMedium: GoogleFonts.inter(fontSize: 28, fontWeight: FontWeight.w700, letterSpacing: -0.5, color: Colors.white), displaySmall: GoogleFonts.inter(fontSize: 24, fontWeight: FontWeight.w600, color: Colors.white), headlineMedium: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white), titleLarge: GoogleFonts.inter(fontSize: 18, fontWeight: FontWeight.w600, color: Colors.white), titleMedium: GoogleFonts.inter(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), bodyLarge: GoogleFonts.inter(fontSize: 14, fontWeight: FontWeight.w400, color: const Color(0xFF9E9E9E)), bodyMedium: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w400, color: const Color(0xFF9E9E9E)), labelLarge: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white), ), // AppBar: Transparent / Glass appBarTheme: AppBarTheme( backgroundColor: Colors.transparent, // Fully transparent for gradient overlay foregroundColor: Colors.white, elevation: 0, centerTitle: true, scrolledUnderElevation: 0, titleTextStyle: GoogleFonts.inter( fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, ), ), // Bottom Navigation Bar bottomNavigationBarTheme: BottomNavigationBarThemeData( backgroundColor: const Color(0xFF1C1C1E).withOpacity(0.95), // Darker surface selectedItemColor: Colors.white, unselectedItemColor: const Color(0xFF9E9E9E), selectedLabelStyle: GoogleFonts.inter(fontSize: 10, fontWeight: FontWeight.w600), unselectedLabelStyle: GoogleFonts.inter(fontSize: 10, fontWeight: FontWeight.w500), type: BottomNavigationBarType.fixed, elevation: 0, ), // Inputs inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: const Color(0xFF1C1C1E), // Dark Grey Surface contentPadding: const EdgeInsets.symmetric(horizontal: spacing16, vertical: spacing12), border: OutlineInputBorder( borderRadius: BorderRadius.circular(radiusMd), borderSide: BorderSide.none, ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(radiusMd), borderSide: BorderSide.none, ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(radiusMd), borderSide: const BorderSide(color: Colors.white, width: 1), // White border focus ), hintStyle: GoogleFonts.inter(color: const Color(0xFF616161), fontSize: 14), ), // Buttons filledButtonTheme: FilledButtonThemeData( style: FilledButton.styleFrom( backgroundColor: Colors.white, // White buttons foregroundColor: Colors.black, elevation: 0, padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(radiusMd)), textStyle: GoogleFonts.inter(fontWeight: FontWeight.w600, fontSize: 14), ), ), ); } }