This commit is contained in:
2025-12-30 23:20:50 -06:00
parent 9f8eab4a31
commit ec923c906e
26 changed files with 2234 additions and 53 deletions

View File

@@ -38,14 +38,14 @@ class AppColors {
/// App theme configuration
class AppTheme {
static ThemeData get lightTheme {
static ThemeData getLightTheme(Color accentColor) {
return ThemeData(
useMaterial3: true,
brightness: Brightness.light,
// Color Scheme
colorScheme: const ColorScheme.light(
primary: AppColors.sageGreen,
colorScheme: ColorScheme.light(
primary: accentColor,
secondary: AppColors.rose,
tertiary: AppColors.lavender,
surface: AppColors.cream,
@@ -139,7 +139,7 @@ class AppTheme {
// Button Themes
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.sageGreen,
backgroundColor: accentColor,
foregroundColor: Colors.white,
elevation: 2,
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
@@ -155,8 +155,8 @@ class AppTheme {
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: AppColors.sageGreen,
side: const BorderSide(color: AppColors.sageGreen, width: 1.5),
foregroundColor: accentColor,
side: BorderSide(color: accentColor, width: 1.5),
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
@@ -192,7 +192,7 @@ class AppTheme {
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: const BorderSide(color: AppColors.sageGreen, width: 2),
borderSide: BorderSide(color: accentColor, width: 2),
),
contentPadding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 14),
@@ -205,7 +205,7 @@ class AppTheme {
// Bottom Navigation
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: Colors.white,
selectedItemColor: AppColors.sageGreen,
selectedItemColor: accentColor,
unselectedItemColor: AppColors.warmGray,
type: BottomNavigationBarType.fixed,
elevation: 8,
@@ -220,18 +220,18 @@ class AppTheme {
),
// Floating Action Button
floatingActionButtonTheme: const FloatingActionButtonThemeData(
backgroundColor: AppColors.sageGreen,
floatingActionButtonTheme: FloatingActionButtonThemeData(
backgroundColor: accentColor,
foregroundColor: Colors.white,
elevation: 4,
),
// Slider Theme
sliderTheme: SliderThemeData(
activeTrackColor: AppColors.sageGreen,
activeTrackColor: accentColor,
inactiveTrackColor: AppColors.lightGray.withOpacity(0.3),
thumbColor: AppColors.sageGreen,
overlayColor: AppColors.sageGreen.withOpacity(0.2),
thumbColor: accentColor,
overlayColor: accentColor.withOpacity(0.2),
trackHeight: 4,
),
@@ -244,14 +244,14 @@ class AppTheme {
);
}
static ThemeData get darkTheme {
static ThemeData getDarkTheme(Color accentColor) {
return ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
// Color Scheme
colorScheme: ColorScheme.dark(
primary: AppColors.sageGreen,
primary: accentColor,
secondary: AppColors.rose,
tertiary: AppColors.lavender,
surface: const Color(0xFF1E1E1E),
@@ -348,7 +348,7 @@ class AppTheme {
// Button Themes
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.sageGreen,
backgroundColor: accentColor,
foregroundColor: Colors.white,
elevation: 0,
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
@@ -364,8 +364,8 @@ class AppTheme {
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: AppColors.sageGreen,
side: BorderSide(color: AppColors.sageGreen.withOpacity(0.5), width: 1.5),
foregroundColor: accentColor,
side: BorderSide(color: accentColor.withOpacity(0.5), width: 1.5),
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
@@ -391,7 +391,7 @@ class AppTheme {
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: const BorderSide(color: AppColors.sageGreen, width: 2),
borderSide: BorderSide(color: accentColor, width: 2),
),
contentPadding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 14),
@@ -404,7 +404,7 @@ class AppTheme {
// Bottom Navigation
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: const Color(0xFF1E1E1E),
selectedItemColor: AppColors.sageGreen,
selectedItemColor: accentColor,
unselectedItemColor: Colors.white38,
type: BottomNavigationBarType.fixed,
elevation: 0,
@@ -420,10 +420,10 @@ class AppTheme {
// Slider Theme
sliderTheme: SliderThemeData(
activeTrackColor: AppColors.sageGreen,
activeTrackColor: accentColor,
inactiveTrackColor: Colors.white.withOpacity(0.1),
thumbColor: AppColors.sageGreen,
overlayColor: AppColors.sageGreen.withOpacity(0.2),
thumbColor: accentColor,
overlayColor: accentColor.withOpacity(0.2),
trackHeight: 4,
tickMarkShape: const RoundSliderTickMarkShape(),
activeTickMarkColor: Colors.white24,