import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'screens/ar_view_screen.dart'; import 'screens/beranda_screen.dart'; import 'screens/dashboard_screen.dart'; import 'screens/detail_destination_screen.dart'; import 'screens/forgot_password_screen.dart'; import 'screens/home_screen.dart'; import 'screens/login_screen.dart'; import 'screens/register_screen.dart'; import 'screens/reset_password_screen.dart'; import 'screens/splash_screen.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(const ExploreLumajangApp()); } class ExploreLumajangApp extends StatelessWidget { const ExploreLumajangApp({super.key}); @override Widget build(BuildContext context) { const seed = Color(0xFF0F4C81); final baseScheme = ColorScheme.fromSeed( seedColor: seed, brightness: Brightness.light, ); return MaterialApp( title: 'Explore Lumajang', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true, textTheme: GoogleFonts.interTextTheme(), colorScheme: baseScheme.copyWith( primary: seed, secondary: const Color(0xFF14B8C4), tertiary: const Color(0xFFF59E0B), surface: const Color(0xFFFFFFFF), surfaceContainerHighest: const Color(0xFFEAF3F8), ), scaffoldBackgroundColor: const Color(0xFFF4F8FB), appBarTheme: const AppBarTheme( centerTitle: false, surfaceTintColor: Colors.transparent, backgroundColor: Color(0xFFF4F8FB), foregroundColor: Color(0xFF0F172A), elevation: 0, ), snackBarTheme: SnackBarThemeData( behavior: SnackBarBehavior.floating, backgroundColor: const Color(0xFF0F172A), contentTextStyle: GoogleFonts.inter( color: Colors.white, fontWeight: FontWeight.w700, ), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(18), ), ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: Colors.white, contentPadding: const EdgeInsets.symmetric(horizontal: 18, vertical: 18), border: OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: BorderSide.none, ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: BorderSide( color: const Color(0xFFE2E8F0).withValues(alpha: 0.95), ), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: const BorderSide(color: seed, width: 1.6), ), errorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(20), borderSide: const BorderSide(color: Color(0xFFDC2626)), ), ), filledButtonTheme: FilledButtonThemeData( style: FilledButton.styleFrom( backgroundColor: seed, foregroundColor: Colors.white, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), ), navigationBarTheme: NavigationBarThemeData( backgroundColor: Colors.white, indicatorColor: const Color(0xFFD9EEF8), elevation: 0, labelTextStyle: WidgetStateProperty.resolveWith( (states) => TextStyle( fontSize: 12, fontWeight: states.contains(WidgetState.selected) ? FontWeight.w800 : FontWeight.w600, ), ), ), ), initialRoute: SplashScreen.routeName, routes: { SplashScreen.routeName: (_) => const SplashScreen(), LoginScreen.routeName: (_) => const LoginScreen(), RegisterScreen.routeName: (_) => const RegisterScreen(), ForgotPasswordScreen.routeName: (_) => const ForgotPasswordScreen(), ResetPasswordScreen.routeName: (_) => const ResetPasswordScreen(), DashboardScreen.routeName: (_) => const DashboardScreen(), HomeScreen.routeName: (_) => const HomeScreen(), BerandaScreen.routeName: (_) => const BerandaScreen(), DetailDestinationScreen.routeName: (_) => const DetailDestinationScreen(), ArViewScreen.routeName: (_) => const ArViewScreen(), }, ); } }