CSS Container Query
Gere CSS container queries para componentes que se adaptam ao tamanho do contêiner, não da tela. Defina o breakpoint e copie o código pronto para usar.
CSS
—
Container Queries: responsividade por componente, não por página
Media queries comandam o design responsivo desde 1995, mas elas só reagem ao viewport. Isso significa que um card colocado em uma sidebar e o mesmo card colocado na área principal herdam breakpoints pensados para a janela inteira — ainda que a sidebar tenha 280px e a área principal 960px. As container queries corrigem esse descompasso: permitem que um componente reaja ao container pai em vez da tela. Um único .card pode trocar de layout empilhado para grade horizontal no instante em que o pai cruza 400px — independente de onde esse pai esteja na página.
O suporte nos navegadores chegou entre o fim de 2022 e o início de 2023: Chrome 105+, Safari 16+, Firefox 110+. Em 2026 isso cobre mais de 92% do tráfego global, então a maior parte das aplicações em produção já pode adotar sem polyfill. Para navegadores antigos existe o container-query-polyfill, mas ele é pesado; a estratégia recomendada é progressive enhancement.
Sintaxe em duas partes
Primeiro, declare o contexto de contenção no pai. Depois, escreva a query contra esse contexto:
.card-container {
container-type: inline-size;
container-name: card;
}
@container card (min-width: 400px) {
.card {
display: grid;
grid-template-columns: 1fr 2fr;
}
}
container-type aceita três valores: inline-size (somente o eixo inline — em geral a largura — é consultável; é a escolha mais comum), size (os dois eixos — mais caro porque força contenção total de layout) e normal (padrão, sem contenção). O @container usa a mesma sintaxe de condição do @media, mas com escopo no container ancestral mais próximo que casar com o nome informado.
Unidades de container query
Junto da at-rule, o CSS ganhou unidades relativas ao container: cqw (1% da largura do container), cqh (altura), cqi (inline), cqb (block), cqmin e cqmax. Funcionam como vw/vh, mas com escopo no container e não na janela — ideais para tipografia fluida dentro de um card que não deveria depender do tamanho da tela.
Onde brilham
- Cards que alternam entre layout empilhado e lado a lado;
- Padrões de navegação que viram hambúrguer conforme a sidebar encolhe;
- Widgets de sidebar reusados em dashboards e modais;
- Cards de post em grades multi-coluna gerenciadas por CMS;
- Primitivas de design system entregues sem saber o layout do consumidor.
Perguntas frequentes
Container queries substituem media queries? Não — elas se complementam. Mantenha @media para layout de página (uma coluna vs duas, drawer vs barra de navegação) e use @container para variantes de componente que precisam se adaptar a qualquer slot.
Quando escolher @container em vez de @media? Uma regra prática: media = página, container = componente. Se a regra depende do dispositivo ou da janela toda, é media query. Se depende do espaço que o componente ocupa, é container query.
E quem usa Tailwind? Desde o Tailwind 3.2 existe o plugin @container, permitindo escrever @container <div class="@md:flex"> direto no HTML. Styled Components, Emotion e a maioria das libs CSS-in-JS já expõem helpers equivalentes.
Tem custo de performance? A contenção é otimizada: o navegador só re-avalia as regras quando a dimensão relevante do container muda. Evite container-type: size a não ser que precise dos dois eixos — ele força contenção total de layout, que é mais cara do que inline-size.
Ferramentas Relacionadas
Gerador de clip-path Shape
Gera clip-path CSS para formas comuns: triângulo, losango, hexágono, estrela, seta, círculo, balão de fala.
Paleta como CSS Variables
Recebe paleta hex e exporta como bloco de CSS variables (:root { --primary-50: ... }) pronto para usar.
Gerador CSS Padrão Xadrez (Checker)
Gere um padrão xadrez (checkerboard) em CSS puro com gradientes, sem usar imagens. Ajuste cores e tamanho, veja a prévia e copie o código pronto para o seu site.