Files
Bahla-Front/lib/main.dart
2025-07-15 21:32:32 +02:00

125 lines
4.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:bahla_front/app/app.bottomsheets.dart';
import 'package:bahla_front/app/app.dialogs.dart';
import 'package:bahla_front/app/app.locator.dart';
import 'package:bahla_front/app/app.router.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await setupLocator();
setupDialogUi();
setupBottomSheetUi();
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: Routes.startupView,
onGenerateRoute: StackedRouter().onGenerateRoute,
navigatorKey: StackedService.navigatorKey,
navigatorObservers: [
StackedService.routeObserver,
],
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.blueAccent,
brightness: Brightness.dark,
primary: const Color.fromARGB(255, 64, 175, 255),
secondary: const Color.fromARGB(255, 255, 139, 6),
background: const Color.fromARGB(255, 15, 14, 23),
onPrimary: Colors.white,
onSecondary: Colors.white,
onBackground: Colors.white,
onSurface: Colors.black,
onPrimaryContainer: Colors.black,
onSecondaryContainer: Colors.black,
onTertiaryContainer: Colors.black,
surfaceBright: Colors.black,
),
iconTheme: const IconThemeData(
color: Colors.white,
),
textTheme: TextTheme(
displayLarge: GoogleFonts.firaSans(
fontSize: 96,
fontWeight: FontWeight.normal,
color: Colors.white),
displayMedium: GoogleFonts.firaSans(
fontSize: 60,
fontWeight: FontWeight.normal,
color: Colors.white),
displaySmall: GoogleFonts.firaSans(
fontSize: 48,
fontWeight: FontWeight.normal,
color: Colors.white),
headlineLarge: GoogleFonts.firaSans(
fontSize: 40,
fontWeight: FontWeight.normal,
color: Colors.white),
headlineMedium: GoogleFonts.firaSans(
fontSize: 34,
fontWeight: FontWeight.normal,
color: Colors.white),
headlineSmall: GoogleFonts.firaSans(
fontSize: 24,
fontWeight: FontWeight.normal,
color: Colors.white),
titleLarge: GoogleFonts.firaSans(
fontSize: 20,
fontWeight: FontWeight.normal,
color: Colors.white),
titleMedium: GoogleFonts.firaSans(
fontSize: 16,
fontWeight: FontWeight.normal,
color: Colors.white),
titleSmall: GoogleFonts.firaSans(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Colors.white),
bodyLarge: GoogleFonts.firaSans(
fontSize: 20,
fontWeight: FontWeight.normal,
color: Colors.white),
bodyMedium: GoogleFonts.firaSans(
fontSize: 16,
fontWeight: FontWeight.normal,
color: Colors.white),
bodySmall: GoogleFonts.firaSans(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Colors.white),
labelLarge: GoogleFonts.firaSans(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Colors.white),
labelMedium: GoogleFonts.firaSans(
fontSize: 12,
fontWeight: FontWeight.normal,
color: Colors.white),
labelSmall: GoogleFonts.firaSans(
fontSize: 10,
fontWeight: FontWeight.normal,
color: Colors.white),
)),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: const [
Locale('en'),
Locale('fr'),
Locale('ch'),
],
);
}
}