import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'core/router/app_router.dart'; import 'core/settings/settings_provider.dart'; import 'core/theme/app_theme.dart'; import 'l10n/generated/app_localizations.dart'; class LeafItToMeApp extends ConsumerWidget { const LeafItToMeApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final settings = ref.watch(settingsProvider); final router = ref.watch(appRouterProvider); return MaterialApp.router( routerConfig: router, onGenerateTitle: (context) => AppLocalizations.of(context).appTitle, theme: buildAppTheme( brightness: Brightness.light, highContrast: settings.highContrast, ), darkTheme: buildAppTheme( brightness: Brightness.dark, highContrast: settings.highContrast, ), themeMode: settings.themeMode, localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, builder: (context, child) { // App-Schriftgröße wird ZUSÄTZLICH zur System-Schriftgröße angewendet, // damit die Systemeinstellung des Nutzers respektiert bleibt. final systemScale = MediaQuery.textScalerOf(context).scale(1.0); return MediaQuery( data: MediaQuery.of(context).copyWith( textScaler: TextScaler.linear(systemScale * settings.textSize.factor), ), child: child!, ); }, ); } }