// lib/core/theme/app_theme.dart // Persona C importa este archivo también. // Un solo lugar para colores, tipografía y estilos. import 'package:flutter/material.dart'; class AppTheme { AppTheme._(); // ── Paleta de categorías ───────────────────────────────────────── static const organicosColor = Color(0xFF4CAF50); static const reciclabesColor = Color(0xFF2196F3); static const sanitariosColor = Color(0xFFFF5722); static const especialesColor = Color(0xFFFF9800); // ── Paleta general ─────────────────────────────────────────────── static const primaryColor = Color(0xFF1B5E20); // verde oscuro static const secondaryColor = Color(0xFF2E7D32); static const backgroundColor = Color(0xFFF5F5F5); static const surfaceColor = Color(0xFFFFFFFF); static const errorColor = Color(0xFFD32F2F); static ThemeData get lightTheme => ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed( seedColor: primaryColor, surface: surfaceColor, error: errorColor, ), scaffoldBackgroundColor: backgroundColor, appBarTheme: const AppBarTheme( backgroundColor: primaryColor, foregroundColor: Colors.white, elevation: 0, centerTitle: true, titleTextStyle: TextStyle( fontSize: 18, fontWeight: FontWeight.w600, color: Colors.white, ), ), cardTheme: CardTheme( color: surfaceColor, elevation: 2, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), ), chipTheme: ChipThemeData( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: surfaceColor, border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide.none, ), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), ), ); // ── Colores por id de categoría ────────────────────────────────── static Color colorDeCategoriaId(String id) { return switch (id) { 'organicos' => organicosColor, 'reciclables' => reciclabesColor, 'sanitarios' => sanitariosColor, 'especiales' => especialesColor, _ => primaryColor, }; } }