2026 · HTML · CSS · clamp() · Modular scale · Typography · Design tokens

Escala de tipografia responsiva com CSS clamp(), sem media queries

Uma escala modular fluida que se redimensiona entre dois viewports com uma única declaração clamp() por título. Escolhe base + razão, copia CSS + config Tailwind.

Ver no GitHub
Escala de tipografia responsiva com CSS clamp(), sem media queries

Duas formas que a maior parte das equipas trata tipografia responsiva são más. A primeira é fixar o body em 16px e esquecer — a tipografia fica minúscula num monitor 4K e apertada num telemóvel. A segunda é empilhar cinco media queries por título — o ficheiro CSS duplica, e os gaps entre breakpoints parecem uma escadaria.

A forma certa em 2025 é CSS clamp(). Uma declaração por título. Resize fluido entre dois viewports. Sem media queries. O truque é calcular slope e intercept corretamente para que a tipografia bata exatamente no teu mínimo no viewport mais pequeno e exatamente no teu máximo no maior.

O que te dá

A fórmula clamp()

Para um título que deve ser 20px a 360px de viewport e 32px a 1400px, queres:

font-size: clamp(20px, slope·vw + intercept, 32px);

Onde slope = (32 − 20) / (1400 − 360) = 0,01154, expresso como 1.154vw. E intercept = 20 − 0,01154 × 360 = 15,85px. Logo:

font-size: clamp(20px, 1.154vw + 15.85px, 32px);

Fazer essa aritmética sete vezes por projeto é chato. Esta ferramenta fá-lo por ti, em todos os níveis de título, para qualquer tamanho base e razão.

Escolher uma razão

As razões não são intercambiáveis. Uma 1,125 (segunda maior) parece editorial — jornais de leitura longa, posts de journal, qualquer coisa onde queres desaparecer. Uma 1,333 (quarta perfeita) parece confiante — sites de marketing, páginas de produto, decks. Uma 1,618 (dourada) parece teatral — páginas hero, museus, moda. Escolhe a razão que combina com o espaço onde vais pôr a tipografia, não a que soa mais prestigiada.

Se não sabes qual escolher, começa em 1,25 (terceira maior). Funciona para quase tudo e não sinaliza nada em particular.

Porque tem classes utilitárias

CSS custom properties sozinhas deixam a conversa de line-height por terminar. Cozinhámos line-heights combinados nas classes utilitárias — 1,05 para h1, a subir até 1,55 para body. Títulos devem respirar menos do que parágrafos. Os defaults da ferramenta estão afinados para sans-serif na razão default; vais querer ajustar para serif ou para escalas invulgarmente apertadas.

Usa-a

Ficheiro HTML único. Abrir no GitHub →. Abre num browser. Desliza os controlos. Copia o output. Cola no teu design system.