import 'package:flutter/material.dart'; import 'colors.dart'; final ThemeData appTheme = ThemeData( primarySwatch: primarySwatch, primaryColor: primarySwatch[500], scaffoldBackgroundColor: lightBackground, // App Bar Theme appBarTheme: const AppBarTheme( backgroundColor: primarySwatch, elevation: 2, titleTextStyle: TextStyle( color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold), ), // Text Theme textTheme: const TextTheme( displayLarge: TextStyle(fontSize: 57, fontWeight: FontWeight.bold, color: fontDark), displayMedium: TextStyle(fontSize: 45, fontWeight: FontWeight.bold, color: fontDark), displaySmall: TextStyle(fontSize: 36, fontWeight: FontWeight.bold, color: fontDark), headlineLarge: TextStyle(fontSize: 32, fontWeight: FontWeight.bold, color: fontDark), headlineMedium: TextStyle(fontSize: 28, fontWeight: FontWeight.bold, color: fontDark), headlineSmall: TextStyle(fontSize: 24, fontWeight: FontWeight.bold, color: fontDark), titleLarge: TextStyle(fontSize: 22, fontWeight: FontWeight.bold, color: fontDark), titleMedium: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: fontDark), titleSmall: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: fontDark), bodyLarge: TextStyle(fontSize: 16, color: fontDark), // Default body text bodyMedium: TextStyle(fontSize: 14, color: fontDark), bodySmall: TextStyle(fontSize: 12, color: fontDark), labelLarge: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: fontDark), labelMedium: TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: fontDark), labelSmall: TextStyle(fontSize: 11, fontWeight: FontWeight.bold, color: fontDark), ), // Button Theme elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: primarySwatch[500], foregroundColor: Colors.white, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), ), // Color Scheme colorScheme: ColorScheme.fromSwatch( primarySwatch: primarySwatch, ).copyWith( secondary: secondarySwatch[500], surface: lightSurface, error: semanticRed, onPrimary: Colors.white, onSecondary: Colors.white, onSurface: fontDark, ), ); final ThemeData darkTheme = ThemeData( brightness: Brightness.dark, primarySwatch: darkPrimarySwatch, primaryColor: darkPrimarySwatch[500], scaffoldBackgroundColor: darkBackground, // App Bar Theme appBarTheme: const AppBarTheme( backgroundColor: darkPrimarySwatch, elevation: 2, titleTextStyle: TextStyle( color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold), ), // Text Theme textTheme: const TextTheme( displayLarge: TextStyle(fontSize: 57, fontWeight: FontWeight.bold, color: fontLight), displayMedium: TextStyle(fontSize: 45, fontWeight: FontWeight.bold, color: fontLight), displaySmall: TextStyle(fontSize: 36, fontWeight: FontWeight.bold, color: fontLight), headlineLarge: TextStyle(fontSize: 32, fontWeight: FontWeight.bold, color: fontLight), headlineMedium: TextStyle(fontSize: 28, fontWeight: FontWeight.bold, color: fontLight), headlineSmall: TextStyle(fontSize: 24, fontWeight: FontWeight.bold, color: fontLight), titleLarge: TextStyle(fontSize: 22, fontWeight: FontWeight.bold, color: fontLight), titleMedium: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: fontLight), titleSmall: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: fontLight), bodyLarge: TextStyle(fontSize: 16, color: fontLight), // Default body text bodyMedium: TextStyle(fontSize: 14, color: fontLight), bodySmall: TextStyle(fontSize: 12, color: fontLight), labelLarge: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: fontLight), labelMedium: TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: fontLight), labelSmall: TextStyle(fontSize: 11, fontWeight: FontWeight.bold, color: fontLight), ), // Button Theme elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: darkPrimarySwatch[500], foregroundColor: Colors.white, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), ), // Color Scheme colorScheme: ColorScheme.fromSwatch( primarySwatch: darkPrimarySwatch, brightness: Brightness.dark, ).copyWith( secondary: darkSecondarySwatch[500], surface: darkSurface, error: semanticRed, onPrimary: Colors.white, onSecondary: Colors.white, onSurface: fontLight, ), );