import 'package:flutter/material.dart'; import 'package:cake_wallet/themes/core/material_base_theme.dart'; class LightTheme extends MaterialThemeBase { @override Brightness get brightness => Brightness.light; @override ThemeMode get themeMode => ThemeMode.light; @override Color get primaryColor => const Color(0xFF4EBEFF); @override Color get secondaryColor => const Color(0xFF625C64); @override Color get tertiaryColor => const Color(0xFFBFCBDE); @override Color get errorColor => const Color(0xFFBA1A1A); @override Color get surfaceColor => const Color(0xFFEFEFF8); @override ColorScheme get colorScheme => ColorScheme.light( primary: primaryColor, onPrimary: const Color(0xFFFFFFFF), primaryContainer: const Color(0xFF403747), onPrimaryContainer: const Color(0xFFD5C8DC), secondary: secondaryColor, onSecondary: const Color(0xFFFFFFFF), secondaryContainer: const Color(0xFFE1E4EA), onSecondaryContainer: const Color(0xFF4C474E), tertiary: tertiaryColor, onTertiary: const Color(0xFFFFFFFF), tertiaryContainer: const Color(0xFF35404A), onTertiaryContainer: const Color(0xFFC5D7E5), error: errorColor, onError: const Color(0xFFFFFFFF), errorContainer: const Color(0xFFFFBDBD), onErrorContainer: const Color(0xFFE43D3D), surface: surfaceColor, onSurface: const Color(0xFF312938), onSurfaceVariant: const Color(0xFF6C6772), surfaceContainerLowest: Color(0xFFE4E4E4), surfaceContainerLow: Color(0xFFECECED), surfaceContainer: Color(0xFFFBFBFD), surfaceContainerHigh: Color(0xFFFDFDFE), surfaceContainerHighest: Color(0xFFFFFFFF), outline: const Color(0xFF7B757C), outlineVariant: const Color(0xFFCBC4CB), ); @override TextTheme get textTheme => TextTheme( displayLarge: TextStyle( fontSize: 57, fontWeight: FontWeight.w400, letterSpacing: -0.25, color: colorScheme.onSurface, ), displayMedium: TextStyle( fontSize: 45, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), displaySmall: TextStyle( fontSize: 36, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), headlineLarge: TextStyle( fontSize: 32, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), headlineMedium: TextStyle( fontSize: 28, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), headlineSmall: TextStyle( fontSize: 24, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), titleLarge: TextStyle( fontSize: 22, fontWeight: FontWeight.w400, letterSpacing: 0, color: colorScheme.onSurface, ), titleMedium: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, letterSpacing: 0.15, color: colorScheme.onSurface, ), titleSmall: TextStyle( fontSize: 14, fontWeight: FontWeight.w500, letterSpacing: 0.1, color: colorScheme.onSurface, ), bodyLarge: TextStyle( fontSize: 16, fontWeight: FontWeight.w400, letterSpacing: 0.5, color: colorScheme.onSurface, ), bodyMedium: TextStyle( fontSize: 14, fontWeight: FontWeight.w400, letterSpacing: 0.25, color: colorScheme.onSurface, ), bodySmall: TextStyle( fontSize: 12, fontWeight: FontWeight.w400, letterSpacing: 0.4, color: colorScheme.onSurface, ), labelLarge: TextStyle( fontSize: 14, fontWeight: FontWeight.w500, letterSpacing: 0.1, color: colorScheme.onSurface, ), labelMedium: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, letterSpacing: 0.5, color: colorScheme.onSurface, ), labelSmall: TextStyle( fontSize: 11, fontWeight: FontWeight.w500, letterSpacing: 0.5, color: colorScheme.onSurface, ), ); static const String fontFamily = 'Lato'; @override ThemeData get themeData => ThemeData( useMaterial3: true, brightness: brightness, colorScheme: colorScheme, fontFamily: fontFamily, textTheme: textTheme, appBarTheme: AppBarTheme( backgroundColor: colorScheme.surface, foregroundColor: colorScheme.onSurface, elevation: 0, ), cardTheme: CardTheme( color: colorScheme.surface, elevation: 1, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ElevatedButton.styleFrom( backgroundColor: colorScheme.primary, foregroundColor: colorScheme.onPrimary, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), ), outlinedButtonTheme: OutlinedButtonThemeData( style: OutlinedButton.styleFrom( foregroundColor: colorScheme.primary, side: BorderSide(color: colorScheme.outline), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), ), textButtonTheme: TextButtonThemeData( style: TextButton.styleFrom( foregroundColor: colorScheme.primary, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: colorScheme.surfaceContainer, border: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide.none, ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide.none, ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide(color: colorScheme.primary), ), errorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide(color: colorScheme.error), ), focusedErrorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide(color: colorScheme.error), ), ), ); @override String get title => 'Light Theme'; @override ThemeType get type => ThemeType.light; @override int get raw => 0; }