Co-authored-by: MENDOZA BALLARDO GAEL RICARDO <gael-meb123@users.noreply.github.com>

Co-authored-by: Azareth-Tr <Azareth-Tr@users.noreply.github.com>
Co-authored-by: eddgranados12 <eddgranados12@users.noreply.github.com>

primeras vistas para el frontend, configuracion para firebase
This commit is contained in:
shinra32
2026-05-22 17:45:54 -06:00
parent ba5e5ea12c
commit 9e6bd04755
26 changed files with 322 additions and 108 deletions

View File

@@ -0,0 +1,124 @@
import 'package:flutter/material.dart';
class AppTheme {
// ── Colores principales ──────────────────────────────────────────────────
static const Color primary = Color(0xFF1D9E75);
static const Color primaryDark = Color(0xFF0F6E56);
static const Color primaryLight = Color(0xFFE1F5EE);
static const Color primaryMid = Color(0xFF9FE1CB);
static const Color blue = Color(0xFF185FA5);
static const Color blueLight = Color(0xFFE6F1FB);
static const Color amber = Color(0xFF854F0B);
static const Color amberLight = Color(0xFFFAEEDA);
static const Color danger = Color(0xFFE24B4A);
static const Color dangerLight = Color(0xFFFCEBEB);
static const Color textPrimary = Color(0xFF1A1A1A);
static const Color textSecondary = Color(0xFF6B7280);
static const Color textHint = Color(0xFFAAAAAA);
static const Color surface = Color(0xFFFFFFFF);
static const Color background = Color(0xFFF5F7F5);
static const Color border = Color(0xFFE5E7EB);
static const Color borderLight = Color(0xFFF0F2F0);
// ── Radios ───────────────────────────────────────────────────────────────
static const double radiusSm = 8.0;
static const double radiusMd = 12.0;
static const double radiusLg = 16.0;
static const double radiusXl = 24.0;
static const double radiusFull = 100.0;
// ── Sombras ──────────────────────────────────────────────────────────────
static List<BoxShadow> get cardShadow => [
BoxShadow(
color: Colors.black.withOpacity(0.06),
blurRadius: 12,
offset: const Offset(0, 4),
),
];
static List<BoxShadow> get softShadow => [
BoxShadow(
color: Colors.black.withOpacity(0.04),
blurRadius: 8,
offset: const Offset(0, 2),
),
];
// ── ThemeData ────────────────────────────────────────────────────────────
static ThemeData get lightTheme => ThemeData(
useMaterial3: true,
fontFamily: 'SF Pro Display',
colorScheme: ColorScheme.fromSeed(
seedColor: primary,
primary: primary,
secondary: primaryDark,
surface: surface,
background: background,
),
scaffoldBackgroundColor: background,
appBarTheme: const AppBarTheme(
backgroundColor: primary,
foregroundColor: Colors.white,
elevation: 0,
centerTitle: false,
titleTextStyle: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primary,
foregroundColor: Colors.white,
elevation: 0,
minimumSize: const Size(double.infinity, 52),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(radiusMd),
),
textStyle: const TextStyle(
fontSize: 15,
fontWeight: FontWeight.w600,
),
),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: Colors.white,
side: const BorderSide(color: Colors.white54, width: 1.5),
minimumSize: const Size(double.infinity, 52),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(radiusMd),
),
textStyle: const TextStyle(
fontSize: 15,
fontWeight: FontWeight.w600,
),
),
),
inputDecorationTheme: InputDecorationTheme(
filled: true,
fillColor: surface,
contentPadding: const EdgeInsets.symmetric(horizontal: 14, vertical: 12),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(radiusSm),
borderSide: const BorderSide(color: border),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(radiusSm),
borderSide: const BorderSide(color: border),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(radiusSm),
borderSide: const BorderSide(color: primary, width: 1.5),
),
labelStyle: const TextStyle(color: textSecondary, fontSize: 13),
hintStyle: const TextStyle(color: textHint, fontSize: 13),
),
);
}