import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; /// UnionFlow Mobile App - Typographie Globale /// Roboto (Google Fonts) — cohérence cross-platform class AppTypography { static const String _fontFamily = 'Roboto'; // --- Display / Titres principaux (Roboto via GoogleFonts) --- static TextStyle get displayLarge => GoogleFonts.roboto( fontSize: 32.0, fontWeight: FontWeight.w700, letterSpacing: -0.5, height: 1.2, ); static TextStyle get displayMedium => GoogleFonts.roboto( fontSize: 28.0, fontWeight: FontWeight.w700, letterSpacing: -0.25, height: 1.25, ); static TextStyle get displaySmall => GoogleFonts.roboto( fontSize: 24.0, fontWeight: FontWeight.w600, letterSpacing: 0, height: 1.3, ); // --- Titres de sections (Inter SemiBold) --- static const TextStyle headerLarge = TextStyle( fontFamily: _fontFamily, fontSize: 22.0, fontWeight: FontWeight.w700, letterSpacing: -0.2, height: 1.27, ); /// Alias historique — conservé pour compatibilité static const TextStyle headerSmall = TextStyle( fontFamily: _fontFamily, fontSize: 18.0, fontWeight: FontWeight.w700, letterSpacing: -0.2, height: 1.3, ); static const TextStyle titleMedium = TextStyle( fontFamily: _fontFamily, fontSize: 16.0, fontWeight: FontWeight.w600, letterSpacing: 0.1, height: 1.5, ); static const TextStyle titleSmall = TextStyle( fontFamily: _fontFamily, fontSize: 14.0, fontWeight: FontWeight.w600, letterSpacing: 0.1, height: 1.43, ); // --- Corps de texte --- static const TextStyle bodyLarge = TextStyle( fontFamily: _fontFamily, fontSize: 16.0, fontWeight: FontWeight.w400, letterSpacing: 0.3, height: 1.5, ); static const TextStyle bodyMedium = TextStyle( fontFamily: _fontFamily, fontSize: 14.0, fontWeight: FontWeight.w400, letterSpacing: 0.25, height: 1.43, ); /// Alias historique — conservé pour compatibilité static const TextStyle bodyTextSmall = TextStyle( fontFamily: _fontFamily, fontSize: 13.0, fontWeight: FontWeight.w400, letterSpacing: 0.2, height: 1.4, ); // --- Actions et boutons --- static const TextStyle actionText = TextStyle( fontFamily: _fontFamily, fontSize: 15.0, fontWeight: FontWeight.w600, letterSpacing: 0.1, ); static const TextStyle buttonLabel = TextStyle( fontFamily: _fontFamily, fontSize: 16.0, fontWeight: FontWeight.w700, letterSpacing: 0.1, ); // --- Sous-titres et labels --- /// Alias historique — conservé pour compatibilité static const TextStyle subtitleSmall = TextStyle( fontFamily: _fontFamily, fontSize: 12.0, fontWeight: FontWeight.w400, letterSpacing: 0.2, height: 1.4, ); static const TextStyle labelMedium = TextStyle( fontFamily: _fontFamily, fontSize: 12.0, fontWeight: FontWeight.w500, letterSpacing: 0.4, height: 1.33, ); // --- Badges, métriques denses --- /// Alias historique — conservé pour compatibilité static const TextStyle badgeText = TextStyle( fontFamily: _fontFamily, fontSize: 11.0, fontWeight: FontWeight.w500, letterSpacing: 0.3, ); static const TextStyle caption = TextStyle( fontFamily: _fontFamily, fontSize: 11.0, fontWeight: FontWeight.w400, letterSpacing: 0.4, height: 1.45, ); // --- Navigation --- static const TextStyle navLabel = TextStyle( fontFamily: _fontFamily, fontSize: 11.0, fontWeight: FontWeight.w500, letterSpacing: 0.3, ); static const TextStyle navLabelSelected = TextStyle( fontFamily: _fontFamily, fontSize: 11.0, fontWeight: FontWeight.w700, letterSpacing: 0.3, ); }