feat(ui): identité visuelle Court Blazer sur toute l'app (ticket #17)

Ajoute le thème centralisé (presentation/theme.dart) basé sur les
polices Anton/Archivo et l'applique à tous les écrans (accueil,
bibliothèque d'exercices, programme, séance-modèle, exécution de
séance, historique). flutter analyze propre, 27/27 tests verts, build
APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 23:46:26 +02:00
parent 202e9d8db3
commit 2686c175f3
10 changed files with 535 additions and 81 deletions

View File

@ -2,21 +2,32 @@ import 'package:flutter/material.dart';
import '../application/app_bootstrap.dart';
import 'home_screen.dart';
import 'theme.dart';
final class GameTimeApp extends StatelessWidget {
final class GameTimeApp extends StatefulWidget {
const GameTimeApp({required this.bootstrap, super.key});
final AppBootstrap bootstrap;
@override
State<GameTimeApp> createState() => _GameTimeAppState();
}
final class _GameTimeAppState extends State<GameTimeApp> {
var _themeMode = ThemeMode.system;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'GameTime',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFF0E7C66)),
useMaterial3: true,
theme: courtBlazerLightTheme(),
darkTheme: courtBlazerDarkTheme(),
themeMode: _themeMode,
home: HomeScreen(
bootstrap: widget.bootstrap,
themeMode: _themeMode,
onThemeModeChanged: (mode) => setState(() => _themeMode = mode),
),
home: HomeScreen(bootstrap: bootstrap),
);
}
}