CSS: Entendendo a função CLAMP
CSS
Vamos ficar por dentro da função clamp() do CSS. Essa função parece ser pouco conhecida, mesmo entre programadores front-end, a ideia desse conteúdo é começar com um exemplo básico para entender como ela pode ser usada para ajustar dinamicamente o tamanho da fonte com base na largura da tela.

Definindo um Título e Texto

Vamos colocar um título e um parágrafo de texto para contextualizar:
<h1>Title Here</h1> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

Usando Media Queries para Ajustar font-size

Normalmente, para ajustar o tamanho da fonte de acordo com a largura da página, usamos media queries. Por exemplo:
@media (min-width: 300px) { h1 { font-size: 2rem; } }

Mas, agora vamos simplificar esse processo introduzindo a clamp()

Essa função permite definir um valor mínimo, um valor ideal e um valor máximo para uma propriedade CSS em uma única linha. Aqui está um exemplo aplicado ao font-size do nosso <h1>:
h1 { font-size: clamp(1rem, 2vw + 1rem, 3rem); }

Vamos entender o que está acontecendo

O que cada valor faz:
  1. Valor Mínimo: O menor valor que a fonte pode ter (1rem).
  1. Valor Ideal: Um cálculo dinâmico que depende da largura da viewport (2vw + 1rem).
  1. Valor Máximo: O maior valor que a fonte pode ter (3rem).
Isso significa que o tamanho da fonte:
  • Nunca será menor que 1rem.
  • Será calculado como 2vw + 1rem dentro dos limites mínimo e máximo.
  • Nunca será maior que 3rem.

Funcionamento Prático

  1. Se a largura da viewport for pequena, a fonte terá o tamanho mínimo de 1rem.
  1. À medida que a largura aumenta, o tamanho da fonte será calculado dinamicamente.
  1. Se a largura for muito grande, a fonte não ultrapassará o tamanho máximo de 3rem.
/* Exemplo de ajuste */ h1 { font-size: clamp(1rem, 2vw + 1rem, 3rem); }

Outros Usos do clamp()

O clamp() não é restrito ao font-size; ele também pode ser usado para definir margens, padding, larguras e alturas de caixas, entre outras propriedades CSS. Ele é uma maneira eficiente de estabelecer limites mínimos e máximos para várias propriedades.
/* Exemplo de uso para margin */ .container { margin: clamp(10px, 2vw, 50px); }

Compatibilidade com Navegadores

A boa notícia é que todos os navegadores modernos suportam clamp(). Aqui está a lista de compatibilidade:
  • Chrome
  • Firefox
  • Safari
  • Edge
Infelizmente, o Internet Explorer 🫠 não suporta essa função, mas como ele está cada vez menos utilizado, isso não deve ser um problema para a maioria dos desenvolvedores.
O clamp() é uma ferramenta poderosa para criar designs responsivos de maneira mais simples e eficiente. Ele elimina a necessidade de múltiplas media queries, tornando o código mais limpo e fácil de manter.
Referência:
Espero que essa introdução ao clamp() tenha sido útil. Qualquer dúvida, utilize nossas redes sociais para perguntar!

Aprenda programação do zero e DE GRAÇA

No Discover você vai descomplicar a programação, aprender a criar seu primeiro site com a mão na massa e iniciar sua transição de carreira.

COMECE A ESTUDAR AGORA