Actualizado 15 de julio de 2026

Cómo calcular una escala tipográfica fluida paso a paso

Abre la hoja de estilos de muchos sitios fluidos y encontrarás treinta expresiones clamp(): una por tamaño, cada una con su propia pendiente e intercepto, y todas deben concordar para que la escala se mantenga coherente. Abre la hoja de estilos de un sistema fluido basado en la raíz y encontrarás una.

Una escala tipográfica fluida necesita cuatro decisiones —el tamaño base en el viewport más pequeño, el tamaño base en el más grande y los dos anchos de viewport— más la razón que ya tienes. Calcula una pendiente y un intercepto para el tamaño de fuente de la raíz, define todos los demás tamaños en rem y la escala entera se desliza con sus proporciones intactas. Este artículo recorre ese cálculo una vez, por completo. Forma parte de nuestra guía de tipografía fluida; la alternativa por tamaño también se cubre más abajo, porque te la encontrarás en la práctica.

¿Qué cuatro entradas necesita una escala tipográfica fluida?

El modelo de cuatro entradas es la metodología popularizada por Utopia, que planteó la tipografía fluida como el diseño de dos estados —una escala para pantalla pequeña y una escala para pantalla grande— dejando que el navegador interpole. Los mismos cuatro números impulsan la arquitectura de clamp en la raíz que se muestra aquí:

  • base-min — el tamaño del cuerpo en el extremo pequeño. 16px es el suelo habitual; bajar de ahí cambia legibilidad por espacio.
  • base-max — el tamaño del cuerpo en el extremo grande. 18px da un deslizamiento suave; valores mayores convienen a diseños centrados en la lectura que se ven desde más lejos.
  • vp-min — el viewport donde empieza el deslizamiento, normalmente un teléfono pequeño (aquí 360px).
  • vp-max — el viewport donde termina el deslizamiento, normalmente donde el contenedor de tu diseño llega a su tope (aquí 1280px).

16→18 a lo largo de 360→1280 es un punto de partida razonable: suficiente crecimiento para que las pantallas grandes resulten cómodas, y lo bastante sutil como para que nadie lo note.

¿Cómo se calcula el clamp de la raíz?

Dos números derivados convierten las cuatro entradas en una expresión clamp(). La pendiente es el crecimiento sobre el rango:

slope = (18 − 16) / (1280 − 360) = 2 / 920 ≈ 0.002174   → ×100 ≈ 0.2174vw

El intercepto ancla la recta en un punto conocido:

intercept = 16 − 0.002174 × 360 ≈ 15.22px

Ensamblado y aplicado a la raíz:

html {
  font-size: clamp(16px, 15.22px + 0.2174vw, 18px);
}

Verifica ambos extremos: a 360px, 15,22 + 0,2174 × 3,6 ≈ 15,22 + 0,78 = 16px ✓; a 1280px, 15,22 + 0,2174 × 12,8 ≈ 15,22 + 2,78 = 18px ✓. Ese es todo el cálculo: no volverás a necesitarlo para ningún otro tamaño.

¿Por qué no necesita cada tamaño su propio cálculo?

Porque rem se define en relación con la raíz, y la raíz es lo que se desliza. Un encabezado definido como 2.369rem (tres pasos por encima en una escala de razón 1,333) se renderiza a 2,369 × 16 ≈ 37,9px cuando la raíz está en su mínimo y a 2,369 × 18 ≈ 42,6px en su máximo: sin un segundo clamp, sin una segunda pendiente. Cada paso de la escala hereda el deslizamiento de la misma manera:

PasoTamaño (rem)A 360px (raíz 16)A 1280px (raíz 18)
−1 (leyenda)0,75rem12px13,5px
0 (cuerpo)1rem16px18px
+1 (entradilla)1,333rem≈21,3px≈24,0px
+2 (h3)1,777rem≈28,4px≈32,0px
+3 (h2)2,369rem≈37,9px≈42,6px

Lee la tabla en vertical y la razón se mantiene en ambos extremos: cada fila es 1,333× la anterior. Léela en horizontal y cada fila crece el mismo 12,5%, porque todas montan sobre la misma raíz. Proporciones intactas, una sola pendiente, sin deriva entre tamaños. Por eso tampoco hace falta una sesión de calculadora de escala tipográfica fluida por cada tamaño: los cuatro parámetros son toda la entrada. En el modo fluido de Scale Composer puedes verlo directamente — abre el conjunto completo de parámetros y la tabla de la escala muestra el valor en píxeles de cada paso en ambos extremos del viewport, recalculado a medida que arrastras cualquiera de las cuatro entradas.

Los parámetros fluidos de Scale Composer —base de 16 a 18 a lo largo de viewports de 360 a 1280— con la tabla de escala resultante en ambos extremos

La exportación de tokens DTCG lleva los mismos cuatro parámetros fluidos en su sección de escala, de modo que las herramientas posteriores pueden reconstruir el clamp en lugar de tener que parsear CSS.

¿Cuándo son los clamps por tamaño la mejor herramienta?

El modelo de clamp en la raíz da a cada tamaño el mismo crecimiento relativo. La salida al estilo de Utopia da a cada tamaño su propio clamp —su propio mínimo, máximo y pendiente—, lo que compra un poder legítimo: la pendiente por nivel. Un titular de display puede deslizarse de 40px a 64px (60% de crecimiento) mientras el texto del cuerpo se desliza de 16 a 18 (12,5%):

font-size: clamp(2.5rem, 1.913rem + 2.6087vw, 4rem); /* 40px @360 → 64px @1280 */

Verificado: 30,61 + 2,6087 × 3,6 ≈ 40px ✓; 30,61 + 2,6087 × 12,8 ≈ 64px ✓ (intercepto ≈30,61px ≈ 1,913rem). Si tu diseño quiere que la jerarquía se ensanche en pantallas grandes —cabeceras editoriales, secciones hero de marketing—, ese deslizamiento diferencial es la razón honesta para pagar el coste. El coste es superficie: una hoja de estilos que crece con el número de tamaños por clamp, donde treinta expresiones deben mantenerse mutuamente consistentes, y donde cambiar el rango de viewport significa regenerarlas todas en lugar de editar una sola línea.

¿Cómo se vuelve fluido el espaciado en la misma pasada?

Si la tipografía se desliza y el espaciado no, la composición se descuadra: el texto crece mientras el espacio a su alrededor se queda quieto. En la arquitectura de clamp en la raíz, el espaciado no necesita su propio clamp: los tokens de espaciado son simples valores en rem, y rem monta sobre la raíz deslizante exactamente igual que los tamaños de fuente. La exportación envuelve cada uno en un paso de redondeo:

--space-md: round(nearest, calc(1.5rem * var(--spacing-density)), 0.5rem); /* 24→27px (fluido) */

El token de 1,5rem se renderiza a 24px cuando la raíz está en 16 y a 27px cuando llega a 18 —el mismo 12,5% que gana la tipografía, manteniendo el espaciado y la tipografía en proporción— y round(nearest, …, 0.5rem) ajusta el valor en movimiento al medio rem más cercano, de modo que el espaciado fluido sigue cayendo sobre la rejilla de espaciado en lugar de derivar hacia valores fraccionarios. La exportación CSS comenta cada valor de espaciado fluido con su rango en píxeles, así los extremos diseñados siguen visibles en el código.

Prueba con tus propios números

Las cuatro entradas son decisiones sobre tu diseño, y la forma más rápida de hacerlas tuyas es cambiarlas: parte de los parámetros por defecto, ajusta base-max al tamaño del cuerpo en tu pantalla grande, mueve vp-max al tope de tu contenedor y lee la tabla de la escala en ambos extremos. Si el paso superior se ve bien en ambos anchos, los treinta clamps que no escribiste eran los treinta clamps correctos que había que ahorrarse.

Seguir leyendo

  • CSS clamp() explicado con números reales

    CSS clamp() explicado calculando por completo un ejemplo real — pendiente, intersección y el valor preferido vw + rem — verificado a 360px, 800px y 1280px.

  • ¿Qué es la tipografía fluida?

    La tipografía fluida convierte los tamaños de fuente en una función del ancho del viewport: un mínimo, un máximo y un deslizamiento suave entre ambos. La fórmula, el sistema y lo que permanece fijo.

  • Cómo elegir el viewport mínimo y máximo

    Cómo elegir el rango de viewport de la tipografía fluida: dónde empieza y termina el deslizamiento, por qué los clamps se mantienen planos fuera de él, y tres pendientes reales calculadas en su totalidad.