134 lines
4.0 KiB
Dart
134 lines
4.0 KiB
Dart
/*import 'package:flutter/material.dart';
|
|
import 'theme_type.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
|
class AppThemes {
|
|
static ThemeData getLightTheme(ThemeType type) {
|
|
final Color seedColor;
|
|
switch (type) {
|
|
case ThemeType.green:
|
|
seedColor = Colors.green;
|
|
break;
|
|
case ThemeType.orange:
|
|
seedColor = Colors.orange;
|
|
break;
|
|
case ThemeType.blue:
|
|
seedColor = Colors.blue;
|
|
break;
|
|
case ThemeType.violet:
|
|
seedColor = Colors.deepPurple;
|
|
break;
|
|
}
|
|
|
|
final colorScheme = ColorScheme.fromSeed(
|
|
seedColor: seedColor,
|
|
brightness: Brightness.light, // Explicitly set for a light theme
|
|
);
|
|
|
|
return ThemeData.from(
|
|
colorScheme: colorScheme,
|
|
useMaterial3: true, // Recommended for modern Flutter apps
|
|
textTheme: GoogleFonts.rubikTextTheme())
|
|
.copyWith(
|
|
scaffoldBackgroundColor: Colors.white,
|
|
bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
|
backgroundColor: colorScheme.surface,
|
|
),
|
|
);
|
|
}
|
|
}*/
|
|
|
|
import 'dart:developer';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'theme_type.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
|
class AppThemes {
|
|
static ThemeData getLightTheme(ThemeType type) {
|
|
final Color seedColor = _getSeedColor(type);
|
|
final colorScheme = ColorScheme.fromSeed(
|
|
seedColor: seedColor,
|
|
brightness: Brightness.light,
|
|
);
|
|
return ThemeData.from(
|
|
colorScheme: colorScheme,
|
|
useMaterial3: true,
|
|
textTheme: GoogleFonts.rubikTextTheme(),
|
|
);
|
|
// .copyWith(
|
|
// scaffoldBackgroundColor: Colors.white,
|
|
// bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
|
// backgroundColor: colorScheme.surface,
|
|
// ),
|
|
// );
|
|
}
|
|
|
|
static ThemeData getDarkTheme(ThemeType type) {
|
|
final Color seedColor = _getSeedColor(type);
|
|
log(seedColor.toString());
|
|
final colorScheme = ColorScheme.fromSeed(
|
|
seedColor: seedColor,
|
|
brightness: Brightness.dark,
|
|
// Define custom background and surface colors for better contrast
|
|
// background: const Color(0xFF121212), // A common dark theme background c
|
|
// surface: const Color(0xFF1E1E1E), // A slightly lighter surface color
|
|
);
|
|
|
|
return ThemeData.from(
|
|
colorScheme: colorScheme,
|
|
useMaterial3: true,
|
|
textTheme: GoogleFonts.rubikTextTheme(
|
|
ThemeData(brightness: Brightness.dark).textTheme,
|
|
),
|
|
);
|
|
|
|
// .copyWith(
|
|
// Explicitly set scaffold background color
|
|
// scaffoldBackgroundColor: colorScheme.background,
|
|
// // Customize card theme for dark mode
|
|
// cardTheme: CardTheme(
|
|
// elevation: 2,
|
|
// color: colorScheme.surface,
|
|
// surfaceTintColor: colorScheme.surface,
|
|
// ),
|
|
// // Customize text input fields
|
|
// inputDecorationTheme: InputDecorationTheme(
|
|
// filled: true,
|
|
// fillColor: colorScheme.surface,
|
|
// border: OutlineInputBorder(
|
|
// borderRadius: BorderRadius.circular(8),
|
|
// borderSide: BorderSide.none,
|
|
// ),
|
|
// focusedBorder: OutlineInputBorder(
|
|
// borderRadius: BorderRadius.circular(8),
|
|
// borderSide: BorderSide(color: colorScheme.primary),
|
|
// ),
|
|
// ),
|
|
// Ensure icons have a contrasting color
|
|
// iconTheme: IconThemeData(color: colorScheme.onSurface),
|
|
// Adjust bottom navigation bar
|
|
// bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
|
// backgroundColor: colorScheme.surface,
|
|
// selectedItemColor: colorScheme.primary,
|
|
// unselectedItemColor: colorScheme.onSurface.withOpacity(0.6),
|
|
// ),
|
|
// );
|
|
}
|
|
|
|
static Color _getSeedColor(ThemeType type) {
|
|
switch (type) {
|
|
case ThemeType.green:
|
|
return Colors.green;
|
|
case ThemeType.orange:
|
|
return Colors.orange;
|
|
case ThemeType.blue:
|
|
return Colors.blue;
|
|
case ThemeType.violet:
|
|
return Colors.deepPurple;
|
|
case ThemeType.yellow:
|
|
return Colors.yellow;
|
|
}
|
|
}
|
|
}
|