Ir al contenido

Tipografía

La app mezcla dos fuentes, cada una con un rol específico:

  1. Inter Bold (700), cargada en runtime vía Google Fonts Provider — es la “brand display face”: títulos de barra superior y subtítulos de sección, siempre en mayúsculas.
  2. La fuente de sistema por defecto (FontFamily.Default, Roboto en la mayoría de dispositivos Android) — para todo el texto de lectura (bodyLarge y, por herencia, el resto de la escala de Material 3 que no se sobreescribe explícitamente).
private val fontProvider = GoogleFont.Provider(
providerAuthority = "com.google.android.gms.fonts",
providerPackage = "com.google.android.gms",
certificates = R.array.com_google_android_gms_fonts_certs,
)
val InterFontFamily = FontFamily(
Font(GoogleFont("Inter"), fontProvider, weight = FontWeight.Bold),
)

GoogleFont.Provider descarga la tipografía a través de Google Play Services en el propio dispositivo del usuario (no está empaquetada en el APK), validada contra las huellas en res/values/font_certs.xml.

Sólo se sobreescriben 2 de los estilos de Material 3; el resto hereda los valores por defecto del tema:

val Typography = Typography(
bodyLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
fontSize = 16.sp, lineHeight = 24.sp, letterSpacing = 0.5.sp,
),
titleLarge = TextStyle( // títulos de CenterAlignedTopAppBar
fontFamily = InterFontFamily,
fontWeight = FontWeight.Bold,
fontSize = 22.sp, lineHeight = 28.sp,
),
titleSmall = TextStyle( // SectionTitle ("Performance", "Card"…)
fontFamily = InterFontFamily,
fontWeight = FontWeight.Bold,
fontSize = 14.sp, lineHeight = 20.sp, letterSpacing = 0.1.sp,
),
)
Estilo Familia Peso Tamaño Dónde se usa
titleLarge Inter Bold 22sp Títulos de CenterAlignedTopAppBar ("MY CARDS", "CARD DETAILS"…), siempre en .uppercase()
titleSmall Inter Bold 14sp SectionTitle — subtítulos como "PERFORMANCE", "CARD", "APPEARANCE"
bodyLarge Sistema Normal 16sp Texto de lectura general
resto de la escala Sistema Heredado de Material 3 por defecto (labelSmall/Medium/Large, headlineMedium para el nombre en la carta, etc.)
  • Mayúsculas + Inter Bold = “esto es una etiqueta de sistema”: se aplica consistentemente a títulos de pantalla, subtítulos de sección, chips (ClassChip, TierChip), y a los labels de campos (FieldLabel, en labelMedium con letterSpacing = 1.sp).
  • El nombre del auto sobre la carta no usa Inter: usa headlineMedium/titleMedium (fuente de sistema) en FontWeight.Black, para diferenciarse visualmente de las etiquetas de UI.
  • Los valores numéricos (velocidad, potencia…) usan bodyMedium/labelLarge con FontWeight.SemiBold o Black según el contexto — nunca Inter, que queda reservado exclusivamente para el rol “título/etiqueta de marca”.

MY CARDS

titleLarge · Inter Bold 22sp

Ferrari 499P

headlineMedium · fuente de sistema · Black