import 'package:flutter/material.dart'; /// 健康管家主题 —— 暖茶绿 · Soft Clinical /// 深青碧色主调 + 暖白基底 + 琥珀点缀 避开传统医疗蓝/紫 class AppTheme { AppTheme._(); // ── 品牌色 ── static const Color primary = Color(0xFF0E8C7D); // 深青碧 · 专业信赖 static const Color primaryLight = Color(0xFFE3F4F0); // 浅青底 static const Color primaryDark = Color(0xFF0A6B5F); // 深青 // ── 背景 ── static const Color bg = Color(0xFFFAF6F1); // 暖白 · 不冰冷 static const Color surface = Color(0xFFFFFCF9); // 卡片白 // ── 文字 ── static const Color text = Color(0xFF2D2B32); static const Color textSub = Color(0xFF7B797F); static const Color textHint = Color(0xFFB0ADB5); // ── 功能色 ── static const Color success = Color(0xFF43A047); static const Color error = Color(0xFFE05D5D); static const Color warning = Color(0xFFF0984A); static const Color accent = Color(0xFFF0984A); // 琥珀 · 高亮/操作 // ── 边框 & 分割 ── static const Color border = Color(0xFFE8E4DF); static const Color divider = Color(0xFFF0ECE7); static ThemeData get lightTheme => ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed( seedColor: primary, primary: primary, surface: bg, brightness: Brightness.light, ), scaffoldBackgroundColor: bg, // AppBar appBarTheme: const AppBarTheme( backgroundColor: surface, foregroundColor: text, elevation: 0, centerTitle: true, titleTextStyle: TextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: text), ), // 卡片 cardTheme: CardThemeData( color: surface, elevation: 0, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(18)), margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), ), // 输入框 inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: surface, contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), border: OutlineInputBorder( borderRadius: BorderRadius.circular(14), borderSide: const BorderSide(color: border), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(14), borderSide: const BorderSide(color: border), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(14), 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, 50), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(26)), textStyle: const TextStyle(fontSize: 17, fontWeight: FontWeight.w600), elevation: 0, ), ), // 圆角 Dialog dialogTheme: DialogThemeData( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), backgroundColor: surface, ), // 总体圆角 chipTheme: ChipThemeData( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), backgroundColor: primaryLight, ), // 字体层级 textTheme: const TextTheme( headlineLarge: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: text, letterSpacing: -0.5), titleLarge: TextStyle(fontSize: 20, fontWeight: FontWeight.w600, color: text), titleMedium: TextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: text), bodyLarge: TextStyle(fontSize: 16, fontWeight: FontWeight.w400, color: text, height: 1.5), bodyMedium: TextStyle(fontSize: 15, fontWeight: FontWeight.w400, color: textSub, height: 1.4), labelLarge: TextStyle(fontSize: 14, fontWeight: FontWeight.w500, color: textSub), labelMedium: TextStyle(fontSize: 13, fontWeight: FontWeight.w400, color: textSub), labelSmall: TextStyle(fontSize: 11, fontWeight: FontWeight.w400, color: textHint), ), ); }