import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'constants.dart'; class AppTheme { static ThemeData get lightTheme { return ThemeData( useMaterial3: true, colorScheme: ColorScheme.light( primary: AppColors.primary, secondary: AppColors.secondary, surface: AppColors.surface, error: AppColors.critical, ), scaffoldBackgroundColor: AppColors.background, appBarTheme: const AppBarTheme( elevation: 0, centerTitle: true, backgroundColor: AppColors.primary, foregroundColor: Colors.white, systemOverlayStyle: SystemUiOverlayStyle.light, titleTextStyle: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white, ), ), cardTheme: CardThemeData( elevation: 2, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(AppSizes.radiusM), ), color: AppColors.surface, ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: AppColors.primary, foregroundColor: Colors.white, elevation: 2, padding: const EdgeInsets.symmetric( horizontal: AppSizes.paddingL, vertical: AppSizes.paddingM, ), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(AppSizes.radiusM), ), textStyle: AppTextStyles.button, ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: AppColors.surface, contentPadding: const EdgeInsets.symmetric( horizontal: AppSizes.paddingM, vertical: AppSizes.paddingM, ), border: OutlineInputBorder( borderRadius: BorderRadius.circular(AppSizes.radiusM), borderSide: const BorderSide(color: AppColors.textLight), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(AppSizes.radiusM), borderSide: const BorderSide(color: AppColors.textLight), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(AppSizes.radiusM), borderSide: const BorderSide(color: AppColors.primary, width: 2), ), ), textTheme: const TextTheme( displayLarge: AppTextStyles.h1, displayMedium: AppTextStyles.h2, displaySmall: AppTextStyles.h3, bodyLarge: AppTextStyles.bodyLarge, bodyMedium: AppTextStyles.bodyMedium, bodySmall: AppTextStyles.bodySmall, ), ); } static ThemeData get darkTheme { return ThemeData( useMaterial3: true, brightness: Brightness.dark, colorScheme: ColorScheme.dark( primary: AppColors.primaryLight, secondary: AppColors.secondaryLight, surface: AppColors.surfaceDark, error: AppColors.critical, ), ); } }