import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import '../core/constants.dart'; ThemeData buildAppTheme() { final base = ThemeData.dark(useMaterial3: true); final textTheme = GoogleFonts.poppinsTextTheme(base.textTheme).apply( bodyColor: AppColors.textPrimary, displayColor: AppColors.textPrimary, ); return base.copyWith( textTheme: textTheme, scaffoldBackgroundColor: AppColors.background, colorScheme: const ColorScheme.dark( surface: AppColors.surface, primary: AppColors.accent, secondary: AppColors.accent, onPrimary: Colors.white, onSurface: AppColors.textPrimary, ), cardTheme: CardThemeData( color: AppColors.surface, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), margin: EdgeInsets.zero, ), appBarTheme: AppBarTheme( backgroundColor: AppColors.background, elevation: 0, centerTitle: false, titleTextStyle: GoogleFonts.poppins( color: AppColors.textPrimary, fontSize: 20, fontWeight: FontWeight.w600, ), iconTheme: const IconThemeData(color: AppColors.textPrimary), ), navigationBarTheme: NavigationBarThemeData( backgroundColor: AppColors.surface, indicatorColor: AppColors.accent.withOpacity(0.2), labelTextStyle: WidgetStateProperty.resolveWith((states) { if (states.contains(WidgetState.selected)) { return GoogleFonts.poppins( color: AppColors.accent, fontSize: 12, fontWeight: FontWeight.w600, ); } return GoogleFonts.poppins( color: AppColors.textSecondary, fontSize: 12, ); }), iconTheme: WidgetStateProperty.resolveWith((states) { if (states.contains(WidgetState.selected)) { return const IconThemeData(color: AppColors.accent); } return const IconThemeData(color: AppColors.textSecondary); }), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: AppColors.surface, border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: AppColors.divider), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: AppColors.divider), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: AppColors.accent, width: 1.5), ), labelStyle: const TextStyle(color: AppColors.textSecondary), hintStyle: const TextStyle(color: AppColors.textSecondary), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: AppColors.accent, foregroundColor: Colors.white, minimumSize: const Size(double.infinity, 52), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(14), ), textStyle: GoogleFonts.poppins( fontSize: 16, fontWeight: FontWeight.w600, ), ), ), dividerTheme: const DividerThemeData( color: AppColors.divider, thickness: 1, ), ); }