Calculadora de clamp() CSS

Insira um tamanho para telas pequenas e grandes e obtenha um valor clamp() fluido que escala suavemente entre elas — para fontes, paddings, margins ou gaps.

Tamanhos
Mínimo
Máximo
Valor de clamp()
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

O resultado mantém uma parte em rem no termo central, garantindo que o texto ainda aumente quando o usuário aplicar zoom de 200% — um valor baseado apenas na viewport não permitiria isso.

Visualização

Texto fluido, no tamanho ideal.

Ajuste os tamanhos e as larguras de tela para moldar o valor.

O cálculo é feito inteiramente no seu navegador. Nada do que você digita aqui é enviado para o BroBroGo.

FAQ

Como a calculadora monta o valor de clamp()?

Você define dois pontos: um tamanho para uma tela pequena e outro para uma tela grande. A ferramenta traça uma linha reta entre eles para que o tamanho cresça de forma fluida conforme a tela aumenta, e então o envolve na função clamp() para que nunca fique menor que o tamanho mínimo ou maior que o máximo. Entre as duas larguras, o tamanho escala de forma fluida; fora delas, ele se mantém no limite mais próximo.

Por que o resultado é em rem e vw em vez de pixels?

Os limites são definidos em rem e a parte dinâmica do meio mantém um componente em rem, garantindo que o texto cresça quando o leitor usar o zoom ou aumentar a fonte padrão do navegador — valores baseados apenas em pixels ou viewport podem impedir isso. Você digita os tamanhos em pixels porque é mais intuitivo, e a ferramenta converte para rem usando o tamanho da fonte raiz.

Posso usar isso para espaçamento e não apenas para tamanho de fonte?

Sim. O mesmo valor funciona para padding, margin, gap, width ou height — em qualquer lugar que aceite uma medida de comprimento. Mude a visualização para Caixa para ver o espaçamento crescer em vez do texto. Se os tamanhos mínimo e máximo forem iguais, o resultado se reduz a um comprimento fixo simples, já que não há o que escalar.

Todos os navegadores suportam clamp()?

Sim — todos os navegadores modernos suportam clamp() desde 2020, então você pode usar o valor diretamente sem precisar de fallback. Caso use um valor máximo muito alto ou uma taxa de variação rápida, vale a pena testar com zoom de 200% para garantir que o texto continue legível para quem precisa.

Entendendo o funcionamento do CSS clamp() na responsividade

A função clamp() do CSS é um recurso para o desenvolvimento de layouts responsivos, permitindo que propriedades de tamanho variem de forma fluida entre um limite mínimo e um limite máximo. Em vez de criar regras rígidas com múltiplos breakpoints e media queries, o desenvolvedor define uma faixa de variação onde o valor se ajusta automaticamente de acordo com a largura da tela do usuário.

Essa técnica é aplicada em propriedades de comprimento como tamanhos de fonte (tipografia fluida), espaçamentos internos (padding), margens (margin), lacunas de grelhas (gap), além de dimensões físicas como largura (width) e altura (height). O cálculo matemático por trás dessa variação utiliza interpolação linear para traçar uma linha reta entre o ponto menor e o ponto maior. Fora dos limites de tela definidos, o navegador interrompe a escala e mantém o valor fixado no mínimo ou no máximo estabelecido.

Como funciona o cálculo de conversão

Para gerar a função clamp(), a ferramenta utiliza os valores inseridos para calcular a taxa de variação e o ponto de partida ideal. O processo baseia-se nos seguintes parâmetros de entrada:

  • Tamanho Mínimo: O tamanho desejado para a propriedade na menor largura de tela.
  • Largura da tela menor: O ponto de partida onde a escala fluida deve começar.
  • Tamanho Máximo: O tamanho desejado para a propriedade na maior largura de tela.
  • Largura da tela maior: O ponto final onde a escala fluida deve parar de crescer.
  • Tamanho da fonte raiz: O valor em pixels (geralmente 16px) utilizado para converter as entradas de pixels para a unidade rem.

A estrutura matemática do resultado final é composta por três termos: clamp(mínimo, preferencial, máximo). Os limites mínimo e máximo são convertidos e expressos em rem. O termo central (preferencial) combina uma parte fixa em rem com uma parte dinâmica baseada na largura da viewport (vw), garantindo que a transição ocorra de maneira linear e proporcional ao espaço disponível na tela.

Regras de validação e estados de funcionamento

Para que o cálculo seja executado corretamente, a ferramenta aplica regras estritas aos dados inseridos:

  • Validação de números: Todos os campos de entrada exigem números válidos. Caso contrário, a mensagem de erro "Insira um número válido em todos os campos." é exibida.
  • Relação de larguras de tela: A largura da tela menor deve ser um número positivo menor do que a da tela maior. Se essa regra for violada, o resultado do cálculo exibirá acompanhado do erro "A largura da tela menor deve ser um número positivo menor do que a da tela maior.".
  • Tamanhos idênticos: Se o tamanho mínimo for igual ao tamanho máximo, o comportamento fluido deixa de existir. O resultado se reduz a um comprimento fixo simples e a ferramenta exibe o status "Ambos os tamanhos são iguais, gerando um valor fixo, não fluido.".
  • Escalonamento reverso: Se o tamanho mínimo configurado for maior do que o tamanho máximo, ocorre uma inversão física onde o tamanho diminui à medida que a tela aumenta, ativando o aviso "Escalonamento reverso — o tamanho diminui à medida que a tela aumenta.".

Durante a interação com a área de visualização, o sistema monitora a largura simulada e exibe mensagens de status em tempo real para indicar o comportamento do elemento:

  • limitado ao mínimo: Exibido quando a largura simulada está abaixo do limite da tela menor.
  • limitado ao máximo: Exibido quando a largura simulada supera o limite da tela maior.
  • escalando de forma fluida: Exibido quando o tamanho está variando ativamente entre os dois extremos.

Se nenhuma condição especial ou erro estiver ativo, a ferramenta exibe a mensagem padrão: "Ajuste os tamanhos e as larguras de tela para moldar o valor.".

Acessibilidade e o uso de unidades relativas

O uso de unidades como rem e vw no resultado gerado pela calculadora é fundamental para manter a acessibilidade do site. Quando um desenvolvedor define tamanhos de fonte utilizando apenas unidades de viewport (como vw), o texto ignora as configurações de acessibilidade do navegador. Se um usuário com limitação visual tentar aplicar o zoom de 200% ou alterar o tamanho padrão da fonte do sistema, o texto baseado puramente em vw não aumentará de tamanho.

A fórmula gerada por esta ferramenta resolve esse problema ao incluir obrigatoriamente um componente em rem no termo central da função clamp(). Isso garante que o navegador respeite a escala de zoom do usuário, permitindo que o texto cresça de forma adequada e mantenha a legibilidade, cumprindo as diretrizes de acessibilidade web.

Processamento local e privacidade

O funcionamento desta calculadora ocorre de maneira descentralizada. Todo o processamento matemático e a renderização da visualização dinâmica são executados diretamente no navegador do usuário. Nenhuma informação digitada nos campos de configuração é enviada para servidores externos ou para o BroBroGo, garantindo a privacidade dos dados inseridos durante o desenvolvimento do projeto.

Perguntas Frequentes

Como a calculadora monta o valor de clamp()? Você define dois pontos: um tamanho para uma tela pequena e outro para uma tela grande. A ferramenta traça uma linha reta entre eles para que o tamanho cresça de forma fluida conforme a tela aumenta, e então o envolve na função clamp() para que nunca fique menor que o tamanho mínimo ou maior que o máximo. Entre as duas larguras, o tamanho escala de forma fluida; fora delas, ele se mantém no limite mais próximo.

Por que o resultado é em rem e vw em vez de pixels? Os limites são definidos em rem e a parte dinâmica do meio mantém um componente em rem, garantindo que o texto cresça quando o leitor usar o zoom ou aumentar a fonte padrão do navegador — valores baseados apenas em pixels ou viewport podem impedir isso. Você digita os tamanhos em pixels porque é mais intuitivo, e a ferramenta converte para rem usando o tamanho da fonte raiz.

Posso usar isso para espaçamento e não apenas para tamanho de fonte? Sim. O mesmo valor funciona para padding, margin, gap, width ou height — em qualquer lugar que aceite uma medida de comprimento. Mude a visualização para Caixa para ver o espaçamento crescer em vez do texto. Se os tamanhos mínimo e máximo forem iguais, o resultado se reduz a um comprimento fixo simples, já que não há o que escalar.

Todos os navegadores suportam clamp()? Sim — todos os navegadores modernos suportam clamp() desde 2020, então você pode usar o valor diretamente sem precisar de fallback. Caso use um valor máximo muito alto ou uma taxa de variação rápida, vale a pena testar com zoom de 200% para garantir que o texto continue legível para quem precisa.