lightTheme property
The light theme configuration for the application.
Implementation
static ThemeData get lightTheme {
return ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: primaryColor,
brightness: Brightness.light,
primary: primaryColor,
secondary: secondaryColor,
error: errorColor,
background: backgroundColor,
surface: surfaceColor,
),
scaffoldBackgroundColor: backgroundColor,
appBarTheme: const AppBarTheme(
backgroundColor: primaryColor,
foregroundColor: Colors.white,
elevation: 0,
centerTitle: true,
titleTextStyle: TextStyle(
fontSize: AppFontSizes.lg,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
cardTheme: CardThemeData(
color: cardColor,
elevation: 2,
shadowColor: Colors.black12,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primaryColor,
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
textStyle: const TextStyle(
fontSize: AppFontSizes.base,
fontWeight: FontWeight.w600,
),
),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: primaryColor,
side: const BorderSide(color: primaryColor),
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
),
textButtonTheme: TextButtonThemeData(
style: TextButton.styleFrom(
foregroundColor: primaryColor,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
),
),
inputDecorationTheme: InputDecorationTheme(
filled: true,
fillColor: Colors.grey[50],
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: BorderSide(color: Colors.grey[300]!),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: BorderSide(color: Colors.grey[300]!),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: primaryColor, width: 2),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: errorColor),
),
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
),
drawerTheme: const DrawerThemeData(
backgroundColor: surfaceColor,
elevation: 4,
),
listTileTheme: ListTileThemeData(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4),
),
textTheme: const TextTheme(
headlineLarge: TextStyle(fontSize: AppFontSizes.xxl, fontWeight: FontWeight.bold, color: textPrimary),
headlineMedium: TextStyle(fontSize: AppFontSizes.xl, fontWeight: FontWeight.w600, color: textPrimary),
headlineSmall: TextStyle(fontSize: AppFontSizes.lg, fontWeight: FontWeight.w600, color: textPrimary),
titleLarge: TextStyle(fontSize: AppFontSizes.md, fontWeight: FontWeight.w600, color: textPrimary),
titleMedium: TextStyle(fontSize: AppFontSizes.base, fontWeight: FontWeight.w500, color: textPrimary),
bodyLarge: TextStyle(fontSize: AppFontSizes.base, color: textPrimary),
bodyMedium: TextStyle(fontSize: AppFontSizes.sm, color: textPrimary),
bodySmall: TextStyle(fontSize: AppFontSizes.xs, color: textSecondary),
labelLarge: TextStyle(fontSize: AppFontSizes.sm, fontWeight: FontWeight.w500, color: textPrimary),
),
);
}