Pular para o conteúdo
FluidClamp
Idioma: Português

Tipografia fluida com CSS clamp(): guia e gerador

A tipografia fluida escala o texto suavemente entre uma tela pequena e uma grande, em vez de saltar nos breakpoints. Use o gerador e depois veja como escolher tamanhos legíveis e acessíveis.

Unidade de entrada
Unidade de saída

Predefinições comuns

Seu valor clamp()

clamp(1.125rem, 0.8333rem + 1.4583vw, 2rem)

Inclinação: 1,4583vw · Intercepto: 0.8333rem

CSS
clamp(1.125rem, 0.8333rem + 1.4583vw, 2rem)
Propriedade personalizada CSS
--fluid-size: clamp(1.125rem, 0.8333rem + 1.4583vw, 2rem);
Classe do Tailwind
text-[clamp(1.125rem,0.8333rem_+_1.4583vw,2rem)]

O máximo é 1,78× o mínimo – dentro da diretriz de 2,5× para o critério WCAG 1.4.4 Redimensionar texto.

Tamanho renderizado por viewport
ViewportTamanho (px)Tamanho (rem)
320px181,125
375px18,81,1751
768px24,531,5333
1024px28,271,7667
1280px322
1440px322
1920px322

Suas configurações ficam salvas na URL, então você pode favoritar ou compartilhar exatamente este resultado.

Prévia ao vivo

28,27px em um viewport de 1024px

A tipografia fluida cresce suavemente com a tela.

O que é tipografia fluida

A tipografia responsiva clássica escolhe alguns tamanhos fixos e os troca com media queries: 16px no celular, 18px no tablet, 20px no desktop. A tipografia fluida substitui esses degraus por uma função contínua da largura do viewport. Com o CSS clamp(), a regra inteira cabe em uma linha e o navegador calcula o tamanho certo para cada largura entre os seus dois extremos.

A fórmula por trás do clamp()

Um tamanho fluido é uma reta que passa por dois pontos: (viewport mínimo, tamanho mínimo) e (viewport máximo, tamanho máximo). A inclinação é (tamanho máximo − tamanho mínimo) ÷ (viewport máximo − viewport mínimo); multiplique por 100 para obter o coeficiente em vw. O intercepto é tamanho mínimo − inclinação × viewport mínimo. O resultado é clamp(tamanho mínimo, intercepto + inclinação·100vw, tamanho máximo). O gerador acima faz exatamente isso e arredonda para o número de casas decimais escolhido.

Como escolher bons tamanhos

O texto corrido raramente precisa mudar muito: de 16 a 18 ou de 16 a 20 pixels atende à maioria dos layouts de leitura. Os títulos são os que mais ganham com o tamanho fluido, porque um título de 48px que fica ótimo no notebook ocupa meia tela do celular. Comece pelo maior título e vá descendo, com uma proporção entre mínimo e máximo menor quanto menor for o texto.

Defina a faixa de viewport a partir do seu layout, não de listas de aparelhos. O mínimo costuma ser 320 ou 360 px. O máximo é a largura em que o contêiner de conteúdo atinge o seu max-width; depois disso o comprimento da linha não cresce mais, então o tamanho da fonte também não deveria crescer.

Checklist de acessibilidade

Mantenha o mínimo, o máximo e o intercepto em rem para que as preferências de fonte do usuário continuem valendo. Teste o critério WCAG 1.4.4 com zoom de 200%: se o máximo passar de cerca de 2,5 vezes o mínimo, o zoom pode não ampliar o texto o suficiente, e a ferramenta avisa. Use altura de linha relativa (por exemplo 1.5) para que ela acompanhe a fonte e teste as palavras mais longas na tela mais estreita.

Perguntas frequentes

A tipografia fluida prejudica a acessibilidade?

Não, se for feita com rem e uma proporção moderada. Os problemas aparecem com tamanhos só em vw ou que crescem mais de cerca de 2,5 vezes entre o viewport mínimo e o máximo, porque aí o zoom do navegador tem menos efeito.

Ainda preciso de media queries?

Para tamanho de fonte, em geral não. Guarde as media queries para mudanças de layout, como passar de uma para duas colunas.

Quais navegadores suportam clamp()?

Chrome, Edge, Firefox e Safari suportam clamp() desde 2020, então ele é seguro em produção. Navegadores antigos simplesmente ignoram a declaração, por isso você pode colocar antes um tamanho fixo de reserva.

A altura da linha também deve ser fluida?

Use uma altura de linha sem unidade, como 1.2 nos títulos e 1.5 no texto corrido. Assim ela acompanha automaticamente o tamanho de fonte fluido.