import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; class TemaApp { static const colorFondo = Color(0xFF121212); static const colorSuperficie = Color(0xFF1E1E1E); static const colorTarjeta = Color(0xFF2A2A2A); static const colorAcento = Color(0xFFE53935); // Rojo impostor static const colorAcentoClaro = Color(0xFFFF6F61); static const colorNaranja = Color(0xFFFF9800); static const colorVerde = Color(0xFF4CAF50); static const colorTexto = Color(0xFFFFFFFF); static const colorTextoSecundario = Color(0xFFB0B0B0); static ThemeData obtenerTema() { return ThemeData( useMaterial3: true, brightness: Brightness.dark, scaffoldBackgroundColor: colorFondo, colorScheme: const ColorScheme.dark( primary: colorAcento, secondary: colorNaranja, surface: colorSuperficie, error: colorAcento, ), textTheme: GoogleFonts.poppinsTextTheme( const TextTheme( headlineLarge: TextStyle( color: colorTexto, fontWeight: FontWeight.bold, fontSize: 28, ), headlineMedium: TextStyle( color: colorTexto, fontWeight: FontWeight.bold, fontSize: 22, ), titleLarge: TextStyle( color: colorTexto, fontWeight: FontWeight.w600, fontSize: 18, ), titleMedium: TextStyle( color: colorTexto, fontWeight: FontWeight.w500, fontSize: 16, ), bodyLarge: TextStyle(color: colorTexto, fontSize: 16), bodyMedium: TextStyle(color: colorTextoSecundario, fontSize: 14), ), ), cardTheme: CardThemeData( color: colorTarjeta, elevation: 4, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: colorAcento, foregroundColor: colorTexto, padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), textStyle: GoogleFonts.poppins( fontWeight: FontWeight.w600, fontSize: 16, ), ), ), outlinedButtonTheme: OutlinedButtonThemeData( style: OutlinedButton.styleFrom( foregroundColor: colorTexto, side: const BorderSide(color: colorAcento), padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: colorTarjeta, border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide.none, ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: colorAcento), ), labelStyle: const TextStyle(color: colorTextoSecundario), hintStyle: const TextStyle(color: colorTextoSecundario), ), appBarTheme: AppBarTheme( backgroundColor: colorFondo, foregroundColor: colorTexto, elevation: 0, titleTextStyle: GoogleFonts.poppins( color: colorTexto, fontWeight: FontWeight.bold, fontSize: 20, ), ), switchTheme: SwitchThemeData( thumbColor: WidgetStateProperty.resolveWith((states) { if (states.contains(WidgetState.selected)) return colorAcento; return colorTextoSecundario; }), trackColor: WidgetStateProperty.resolveWith((states) { if (states.contains(WidgetState.selected)) { return colorAcento.withValues(alpha: 0.5); } return colorTarjeta; }), ), ); } }