
CSS clamp(): tipografía fluida sin dramas
clamp()es uno de los recursos modernos más útiles de CSS. Con una sola línea obtienes texto fluido, legible y controlado en todo rango de pantallas.Esta línea dice: “nunca seas más chico que 1.9rem, intenta ser 3vw (fluido) y nunca pases de 2.4rem”.
- styles.cssCSS
font-size: clamp(1.9rem, 3vw, 2.4rem); ¿Qué es
clamp()?- SintaxisCSS
clamp(MIN, IDEAL, MAX) - IdeaTEXT
clamp(a, b, c) = min( max(b, a), c ) Traducción: se toma el valor IDEAL; si es menor que MIN, usa MIN; si es mayor que MAX, usa MAX. Solo acota el valor a un rango lógico.
Desglose del ejemplo
• Mínimo: 1.9rem → garantiza legibilidad.
• Fluido: 3vw → escala con el ancho de pantalla.
• Máximo: 2.4rem → evita tamaños desproporcionados en monitores grandes.¿Cuándo cambia cada tramo?
Asumiendo 1rem = 16px: 1.9rem ≈ 30.4px y 2.4rem ≈ 38.4px.
• Por debajo de ~1013px de ancho, 3vw es menor al mínimo → 1.9rem.
• Entre ~1013px y ~1280px, el tamaño fluye con 3vw.
• Por encima de ~1280px, se fija en 2.4rem.Ventajas
Reduce media queries, mantiene accesibilidad y ofrece una escala tipográfica predecible entre móvil y desktop.
Antes vs. ahora
- antes.cssCSS
h2 { font-size: 1.9rem; } @media (min-width: 1000px) { h2 { font-size: 3vw; } } @media (min-width: 1280px) { h2 { font-size: 2.4rem; } } - ahora.cssCSS
h2 { font-size: clamp(1.9rem, 3vw, 2.4rem); } Buenas prácticas
• Define MIN y MAX en rem (accesibilidad).
• Usa vw/vh en el valor central para fluidez.
• Elige conscientemente: mínimo legible, ideal que escala, máximo cómodo.Recetas listas
- patterns.cssCSS
/* Título hero */ .heroTitle { font-size: clamp(2rem, 6vw, 4rem); } /* Subtítulo */ .subTitle { font-size: clamp(1.25rem, 3.5vw, 2rem); } /* Párrafo base */ .bodyText { font-size: clamp(1rem, 2.2vw, 1.125rem); }