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: AppColors.background, // Typography: Scaled down for mobile textTheme: TextTheme( displayLarge: GoogleFonts.inter(fontSize: 32, fontWeight: FontWeight.w700, letterSpacing: -1.0, color: AppColors.textPrimary), displayMedium: GoogleFonts.inter(fontSize: 28, fontWeight: FontWeight.w700, letterSpacing: -0.5, color: AppColors.textPrimary), displaySmall: GoogleFonts.inter(fontSize: 24, fontWeight: FontWeight.w600, color: AppColors.textPrimary), headlineMedium: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.w600, color: AppColors.textPrimary), titleLarge: GoogleFonts.inter(fontSize: 18, fontWeight: FontWeight.w600, color: AppColors.textPrimary), titleMedium: GoogleFonts.inter(fontSize: 16, fontWeight: FontWeight.w600, color: AppColors.textPrimary), bodyLarge: GoogleFonts.inter(fontSize: 14, fontWeight: FontWeight.w400, color: AppColors.textSecondary), bodyMedium: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w400, color: AppColors.textSecondary), labelLarge: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w600, color: AppColors.textPrimary), ), // AppBar: Transparent / Glass appBarTheme: AppBarTheme( backgroundColor: AppColors.surface.withOpacity(0.8), // Slight background for mobile foregroundColor: AppColors.textPrimary, elevation: 0, centerTitle: true, scrolledUnderElevation: 0, titleTextStyle: GoogleFonts.inter( fontSize: 16, fontWeight: FontWeight.w600, color: AppColors.textPrimary, ), ), // Bottom Navigation Bar bottomNavigationBarTheme: BottomNavigationBarThemeData( backgroundColor: AppColors.surface.withOpacity(0.9), selectedItemColor: AppColors.primary, unselectedItemColor: AppColors.textSecondary, 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: AppColors.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: AppColors.focusColor, width: 2), ), hintStyle: GoogleFonts.inter(color: AppColors.textTertiary, fontSize: 14), ), // Buttons filledButtonTheme: FilledButtonThemeData( style: FilledButton.styleFrom( backgroundColor: AppColors.focusColor, 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), ), ), ); } }