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.