1. O Problema que Container Queries Resolve
Durante anos, a unica forma de criar layouts responsivos em CSS eram as Media Queries, que respondem ao tamanho do viewport. O problema: um componente como um card pode aparecer em uma grade de 3 colunas (onde fica pequeno) ou em destaque em largura total. Com Media Queries, e impossivel fazer o card se adaptar ao espaco que ocupa — ele so pode responder ao viewport inteiro.
Container Queries resolvem isso ao permitir que o card responda ao tamanho do seu elemento pai, tornando cada componente verdadeiramente autonomo e reutilizavel.
2. Sintaxe e Como Funciona
Para usar Container Queries, voce precisa de dois passos: declarar o conteiner pai e depois escrever a query. O conteiner pai precisa ter container-type definido:
.wrapper { container-type: inline-size; }— habilita queries de largura@container (min-width: 500px) { .child { ... } }— a query propriamente dita
3. Tipos de container-type
inline-size e o mais usado — habilita apenas consultas de largura, que e o caso mais comum. size habilita tanto largura quanto altura, mas tem impacto maior na performance. normal e para style queries, um recurso ainda mais novo que permite consultar valores de propriedades CSS customizadas.
4. Conteiners com Nome
Quando voce tem conteiners aninhados, pode precisar especificar qual conteiner a query deve consultar. Isso e feito nomeando o conteiner: .sidebar { container: sidebar / inline-size; }. Depois, a query referencia o nome: @container sidebar (min-width: 300px) { ... }.
"Container Queries finalmente permitem criar componentes verdadeiramente autonomos — um sonho da comunidade CSS que levou mais de uma decada para se tornar realidade."
5. Casos de Uso Praticos
Container Queries brilham em varios cenarios de UI moderno:
- Cards de produto: exibir layout horizontal quando o card e largo, vertical quando estreito
- Sidebar: mostrar apenas icones quando a sidebar esta colapsada
- Componentes de formulario: adaptar o layout de campos dependendo do espaco disponivel
- Artigos em grid: ajustar tipografia e espacamento conforme a coluna
6. Perguntas Frequentes
Container Queries substituem Media Queries?
Nao — eles sao complementares. Media Queries continuam sendo o lugar certo para mudancas de layout de nivel de pagina (como mudar de 1 para 3 colunas). Container Queries sao para adaptar componentes ao espaco que ocupam dentro desses layouts.
Ha impacto de performance?
Container Queries com inline-size tem impacto minimo de performance. Use size com cautela, pois exige que o browser rastreie tanto largura quanto altura do conteiner, o que pode impactar o reflow em layouts complexos.