import 'package:flutter/material.dart'; /// 健康管家 — Fresh Air 清新风 /// 薄荷绿主调 · 轻透白底 · 珊瑚点缀 class AppTheme { AppTheme._(); static const Color primary = Color(0xFF14B8A6); // 薄荷绿 static const Color primaryLight = Color(0xFFE6FAF6); // 极浅薄荷 static const Color primaryDark = Color(0xFF0F9D8E); // 深薄荷 static const Color bg = Color(0xFFF6F9FB); // 清透底 static const Color surface = Color(0xFFFFFFFF); // 卡片白 static const Color text = Color(0xFF1C2B33); static const Color textSub = Color(0xFF6B7C85); static const Color textHint = Color(0xFFA5B4BD); static const Color success = Color(0xFF10B981); static const Color error = Color(0xFFF56C6C); static const Color warning = Color(0xFFF59E0B); static const Color accent = Color(0xFFFF7B6B); // 珊瑚 static const Color border = Color(0xFFE5EBF0); static const Color divider = Color(0xFFEEF2F6); static ThemeData get lightTheme => ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed( seedColor: primary, primary: primary, surface: bg, brightness: Brightness.light, ), scaffoldBackgroundColor: bg, appBarTheme: const AppBarTheme( backgroundColor: surface, foregroundColor: text, elevation: 0, centerTitle: true, scrolledUnderElevation: 0, ), cardTheme: CardThemeData( color: surface, elevation: 0, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), margin: EdgeInsets.zero, ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: const Color(0xFFF2F6F9), contentPadding: const EdgeInsets.symmetric(horizontal: 14, vertical: 12), border: OutlineInputBorder(borderRadius: BorderRadius.circular(12), borderSide: BorderSide.none), enabledBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(12), borderSide: BorderSide.none), focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: primary, width: 1.5)), hintStyle: const TextStyle(color: textHint, fontSize: 15), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: primary, foregroundColor: Colors.white, minimumSize: const Size(double.infinity, 48), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)), textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600), elevation: 0, ), ), dialogTheme: DialogThemeData( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(22)), ), textTheme: const TextTheme( headlineLarge: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: text), titleLarge: TextStyle(fontSize: 20, fontWeight: FontWeight.w600, color: text), titleMedium: TextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: text), bodyLarge: TextStyle(fontSize: 16, color: text, height: 1.5), bodyMedium: TextStyle(fontSize: 15, color: textSub, height: 1.4), labelMedium: TextStyle(fontSize: 13, color: textSub), labelSmall: TextStyle(fontSize: 11, color: textHint), ), ); }