miler map

This commit is contained in:
2026-09-09 12:55:23 +05:30
parent 074cc0eccf
commit 127fa062ed
143 changed files with 4315 additions and 2291 deletions

View File

@@ -3,41 +3,26 @@ import 'package:flutter/material.dart';
class FontConstants {
/// ── The app's typeface ──
///
/// Poppins: geometric, OFL-licensed, and the one every screen now reads from.
/// It replaced Manrope, which was itself a stand-in for Uber Move.
/// Manrope: a free, OFL-licensed geometric sans, bundled as a single
/// variable font (`assets/fonts/Manrope/Manrope-VF.ttf`) and chosen as the
/// closest legal stand-in for Uber Move, which is proprietary.
///
/// **Read this before changing it.** The family was already declared in
/// `pubspec.yaml` as `poppins`, with a lowercase path on every one of its
/// seven assets, while the files on disk are `assets/fonts/Poppins/Poppins-*`.
/// Asset bundling is case-sensitive on both platforms, so not one of them
/// resolved: anything asking for the family fell back to Roboto and no error
/// was raised anywhere. The declaration is fixed and all seven static weights
/// are registered — Poppins ships as separate files rather than a variable
/// font, and without explicit 800/900 entries Flutter synthesises them by
/// smearing SemiBold, which is what makes a heading look muddy at exactly the
/// size it is meant to be read from.
/// ── The weight scale is calibrated for THIS family ──
/// **Poppins was tried here and reverted.** It is declared in `pubspec.yaml`
/// and its seven static weights do resolve, so it is one string away if it is
/// ever wanted again — but it runs optically far heavier than Manrope at
/// every grade: geometric, wide bowls, thick stems. Swapping the family
/// alone turned the whole app bold, headings especially, and stepping the
/// weight scale down a grade to compensate was not enough to undo it.
///
/// Poppins runs optically heavier than Manrope at every grade: it is
/// geometric, its bowls are wide and its stems thick, so `w800` here is far
/// darker on the page than `w800` was in a variable Manrope. The whole scale
/// was tuned against Manrope and came across a grade too heavy — headings
/// read as shouting and body copy as bold.
///
/// Every weight in `lib/` (outside `lib/xpress`, which is Proxima Nova) was
/// stepped down one grade: 900→800, 800→700, 700→600, 600→500. The *relative*
/// hierarchy is untouched — each level is still one step from its neighbour —
/// so nothing lost its rank; the whole run just sits where it should for this
/// typeface.
///
/// **If the family changes again, re-tune this.** A weight is a number, not a
/// design: what it looks like belongs to the font.
static const String fontFamily = 'Poppins';
/// **The weight scale below is calibrated for THIS family.** If the family
/// changes again, re-tune it — a weight is a number, not a design; what it
/// looks like belongs to the font.
static const String fontFamily = 'Manrope';
/// Only ever reached for a glyph Poppins does not carry. Manrope covers the
/// Only ever reached for a glyph Manrope does not carry. Manrope covers the
/// Latin and currency sets the app uses, so this is a safety net rather than
/// a second typeface in the design.
static String fontFamilyFallback = 'Manrope';
static String fontFamilyFallback = 'PlusJakartaSans';
// Typography scale
static const double displayLg = 32.0;
@@ -50,21 +35,21 @@ class FontConstants {
static TextStyle displayLgStyle = const TextStyle(
fontSize: 32,
fontWeight: FontWeight.w600,
fontWeight: FontWeight.w700,
letterSpacing: -0.64,
fontFamily: fontFamily,
);
static TextStyle headlineMdStyle = const TextStyle(
fontSize: 24,
fontWeight: FontWeight.w600,
fontWeight: FontWeight.w700,
letterSpacing: -0.24,
fontFamily: fontFamily,
);
static TextStyle headlineSmStyle = const TextStyle(
fontSize: 20,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
letterSpacing: -0.2,
fontFamily: fontFamily,
);
@@ -83,7 +68,7 @@ class FontConstants {
static TextStyle labelBoldStyle = const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
fontWeight: FontWeight.w700,
fontFamily: fontFamily,
);