import 'package:flutter/material.dart'; import 'app_colors.dart'; class AppTheme { static const String fontFamily = 'Poppins'; static ThemeData get lightTheme { return ThemeData( useMaterial3: true, fontFamily: fontFamily, scaffoldBackgroundColor: AppColors.background, colorScheme: ColorScheme.fromSeed( seedColor: AppColors.primary, primary: AppColors.primary, secondary: AppColors.secondary, surface: AppColors.surface, error: AppColors.error, brightness: Brightness.light, ), appBarTheme: const AppBarTheme( backgroundColor: AppColors.surface, foregroundColor: AppColors.textPrimary, elevation: 0, centerTitle: false, titleTextStyle: TextStyle( fontFamily: fontFamily, fontSize: 18, fontWeight: FontWeight.w600, color: AppColors.textPrimary, ), ), cardTheme: CardThemeData( color: AppColors.cardBg, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), side: const BorderSide(color: AppColors.border), ), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: AppColors.primary, foregroundColor: Colors.white, elevation: 0, padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 14), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), textStyle: const TextStyle( fontFamily: fontFamily, fontSize: 14, fontWeight: FontWeight.w600, ), ), ), outlinedButtonTheme: OutlinedButtonThemeData( style: OutlinedButton.styleFrom( foregroundColor: AppColors.primary, side: const BorderSide(color: AppColors.primary, width: 1.5), padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 14), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), textStyle: const TextStyle( fontFamily: fontFamily, fontSize: 14, fontWeight: FontWeight.w600, ), ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: Colors.white, contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), border: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: const BorderSide(color: AppColors.border), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: const BorderSide(color: AppColors.border), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: const BorderSide(color: AppColors.primary, width: 2), ), errorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: const BorderSide(color: AppColors.error), ), labelStyle: const TextStyle( fontFamily: fontFamily, fontSize: 14, color: AppColors.textSecondary, ), hintStyle: const TextStyle( fontFamily: fontFamily, fontSize: 14, color: AppColors.textMuted, ), ), dividerTheme: const DividerThemeData( color: AppColors.divider, thickness: 1, space: 1, ), dialogTheme: DialogThemeData( backgroundColor: Colors.white, surfaceTintColor: Colors.transparent, elevation: 10, shadowColor: Colors.black.withValues(alpha: 0.16), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), side: const BorderSide(color: AppColors.border, width: 1), ), titleTextStyle: const TextStyle( fontFamily: fontFamily, fontSize: 17, fontWeight: FontWeight.w700, color: AppColors.textPrimary, ), contentTextStyle: const TextStyle( fontFamily: fontFamily, fontSize: 13, color: AppColors.textSecondary, ), ), snackBarTheme: SnackBarThemeData( backgroundColor: AppColors.textPrimary, contentTextStyle: const TextStyle( fontFamily: fontFamily, fontSize: 13, fontWeight: FontWeight.w500, color: Colors.white, ), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), behavior: SnackBarBehavior.floating, ), ); } }