Files
2026-03-31 09:14:47 +00:00

163 lines
3.8 KiB
Dart

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,
);
}