Tipografía

Tipografía fluida generada con clamp(): escala automática entre viewport mínimo y máximo, sin media queries.


Cómo funciona la escala

La escala tipográfica se genera a partir de cuatro knobs:

:root {
  --ft-text-min: 1rem;         /* 16px en viewport mínimo (410px) */
  --ft-text-max: 1.125rem;     /* 18px en viewport máximo (1280px) */
  --ft-type-step-min: 1.125;   /* ratio en móvil */
  --ft-type-step-max: 1.2;     /* ratio en desktop */
}

De esos cuatro valores, FDS deriva toda la escala: --text-xs a --text-9xl, cada uno con su clamp() propio.

--text-baseclamp(1rem, fluid, 1.125rem)
--text-lg--text-base * --ft-type-step
--text-xl--text-lg   * --ft-type-step
/* ... hasta --text-9xl */

El resultado: text-2xl en 410 px no es lo mismo que en 1280 px, pero no hay un salto brusco en ningún breakpoint.

Escala disponible

TokenUso típico
text-xsLabels, metadatos
text-smTexto secundario
text-baseCuerpo de texto
text-lgTexto destacado
text-xlSubtítulos pequeños
text-2xlSubtítulos
text-3xltext-4xlTítulos secundarios
text-5xltext-6xlTítulos principales
text-7xltext-9xlDisplays y heroes

Clases tipográficas semánticas

FDS añade clases con intención visual, independientes del elemento HTML:

<h1 class="display">Hero de impacto máximo</h1>
<h1 class="display-lg">Display grande</h1>
<h2 class="heading">Título de sección</h2>
<h3 class="subheading">Subtítulo</h3>
<p class="text-large">Lead o párrafo destacado</p>
<p class="text-medium">Cuerpo estándar</p>
<small class="text-small">Nota o pie</small>

Tabla completa:

ClaseEscala baseUso
.displaytext-9xlHero de máximo impacto
.display-lgtext-9xlDisplay grande
.display-mdtext-8xlDisplay estándar
.display-smtext-7xlDisplay controlado
.display-singletext-7xlDisplay de una línea
.heading-lgtext-6xlTítulo principal
.headingtext-5xlTítulo de sección
.heading-mdtext-5xlTítulo medio
.heading-smtext-4xlSubdivisión
.subheading-lgtext-3xlSubtítulo grande
.subheadingtext-2xlSubtítulo estándar
.subheading-smtext-xlSubtítulo pequeño
.text-largetext-lgLead o párrafo destacado
.text-mediumtext-baseCuerpo estándar
.text-smalltext-smNotas, pies, metadatos

Familias tipográficas

FDS no impone una familia concreta. Declara tus fuentes en el @theme del proyecto:

@theme {
  --font-display: "Inter", system-ui, sans-serif;
  --font-body:    "Inter", system-ui, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, monospace;
}

Preflight compatible

FDS convive con el preflight de Tailwind. Los estilos de h1h6 y .prose del layer base aplican la tipografía fluida por defecto, pero nunca contradicen al preflight.

Responsive sin media queries

Ajustar el ratio:

:root {
  --ft-type-step-min: 1.15;   /* más agresivo en móvil */
  --ft-type-step-max: 1.25;   /* más impacto en desktop */
}

Un único cambio y toda la escala tipográfica se recalibra.