lightTheme property
Creates the light theme for the application.
Implementation
static ThemeData get lightTheme {
return ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: primaryColor,
brightness: Brightness.light,
),
// Set primary text color for input fields.
primaryColor: primaryColor,
primaryColorDark: Colors.black87,
primaryColorLight: Colors.black87,
scaffoldBackgroundColor: Colors.grey[50],
appBarTheme: AppBarTheme(
backgroundColor: Colors.white,
elevation: 1,
shadowColor: Colors.grey[300],
iconTheme: const IconThemeData(color: Colors.black87),
titleTextStyle: const TextStyle(
color: Colors.black87,
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: Colors.white,
selectedItemColor: primaryColor,
unselectedItemColor: Colors.grey[600],
elevation: 8,
),
textTheme: TextTheme(
displayLarge: const TextStyle(
color: Colors.black87,
fontSize: 32,
fontWeight: FontWeight.bold,
),
displayMedium: const TextStyle(
color: Colors.black87,
fontSize: 28,
fontWeight: FontWeight.bold,
),
displaySmall: const TextStyle(
color: Colors.black87,
fontSize: 24,
fontWeight: FontWeight.bold,
),
headlineMedium: const TextStyle(
color: Colors.black87,
fontSize: 20,
fontWeight: FontWeight.bold,
),
bodyLarge: const TextStyle(color: Colors.black87, fontSize: 16),
bodyMedium: TextStyle(color: Colors.grey[700], fontSize: 14),
labelLarge: const TextStyle(
color: Colors.black87,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
cardTheme: CardThemeData(
color: Colors.white,
elevation: 2,
shadowColor: Colors.grey[300],
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(defaultBorderRadius),
),
),
inputDecorationTheme: InputDecorationTheme(
filled: true,
fillColor: Colors.grey[100],
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(defaultBorderRadius),
borderSide: BorderSide(color: Colors.grey[300]!),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(defaultBorderRadius),
borderSide: BorderSide(color: Colors.grey[300]!),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(defaultBorderRadius),
borderSide: BorderSide(color: primaryColor, width: 2),
),
hintStyle: TextStyle(color: Colors.grey[600]),
// Ensure proper text color for light background.
labelStyle: const TextStyle(color: Colors.black87),
helperStyle: const TextStyle(color: Colors.black87),
counterStyle: const TextStyle(color: Colors.black87),
errorStyle: TextStyle(color: Colors.red[700]),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primaryColor,
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(
horizontal: defaultPadding,
vertical: defaultPadding / 2,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(defaultBorderRadius),
),
),
),
);
}