Files
hackathon-acapulquitos-boys…/lib/core/theme/app_theme.dart

79 lines
2.8 KiB
Dart

// 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,
};
}
}