feat(j0.3): socle transverse (Result/Failure, theme, router, DI)

- core/error : Result<S> maison (Ok/Err) + Failure scellee avec egalite de valeur
- core/theme : AppTheme Material 3 (palette coucher, cibles tactiles enfant)
- core/router : routes nommees child/parentGate/parent (Navigator 1, placeholders)
- core/di : conventions providers
- CLAUDE.md §7 : Result maison & Navigator 1 actes (YAGNI)
- ROADMAP : 0.3 cochee, Jalon 0 termine
- corrections code review : egalite Failure, assertions tests, Map.unmodifiable

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vincent Bourdon
2026-06-19 17:30:45 +02:00
parent f9cdabfe98
commit 02a121703f
10 changed files with 325 additions and 15 deletions
+26
View File
@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
/// Thème de l'application Storytime.
///
/// Palette « coucher » : violet/indigo doux, faible luminosité, contrastes
/// lisibles dans la pénombre. Composants tactiles surdimensionnés (cible enfant).
abstract final class AppTheme {
// Couleur de seed : indigo doux, hue ~250 — dans le spectre bleu-violet.
static const Color _seed = Color(0xFF5C6BC0); // indigo 400
/// Thème clair (utilisé en mode normal ; le mode sombre viendra si besoin).
static ThemeData light() => ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: _seed,
brightness: Brightness.light,
),
// Boutons larges pour les doigts d'enfant.
filledButtonTheme: FilledButtonThemeData(
style: FilledButton.styleFrom(minimumSize: const Size(64, 56)),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(minimumSize: const Size(64, 56)),
),
);
}