Pular para o conteúdo
Beta

Novo layout em fase de testes.

Versão beta

Nova versão do layout do Doug Design

Estamos validando uma nova versão visual do site, com navegação reformulada, leitura mais confortável e foco em desempenho, principalmente em celulares.

O que não muda
Conteúdo editorial, endereços (URLs) das publicações, a Política de Privacidade e as suas preferências de cookies.
O que pode mudar
Por ser uma versão beta, ajustes de visual, acessibilidade e desempenho serão aplicados de forma contínua, com base em medições e no retorno dos leitores.

Encontrou erro de exibição, texto difícil de ler ou lentidão? Conte pela página de contato, informando o endereço da página, o aparelho e o navegador usados.

Web Design•4 min de leitura

Como CSS Container Style Queries Permite Criar Micro-Temas Modulares

Guia de implementação de Container Style Queries em CSS para aplicar estilos condicionais baseados em variáveis personalizadas declaradas no container pai.

Maya Pixel

Modular UI card layouts showing dynamic CSS style query variations with neon highlights
Neste artigo
  1. Qual a diferença entre Media, Container Size e Style Queries?
  2. A sintaxe das Container Style Queries na prática
  3. Criando micro-temas modulares de componentes sem JavaScript
  4. Limites atuais de suporte nos navegadores e o que esperar
  5. Leia também

A arquitetura de componentes moderna exige modularidade. No passado, aplicar temas específicos ou variações visuais a um componente dependia de gerenciar classes adicionais via JavaScript (ex: .card--dark ou .card--featured). Com a chegada das Container Style Queries, agora podemos fazer com que componentes filhos alterem seus estilos dinamicamente consultando variáveis customizadas declaradas em seus elementos pai, criando um sistema de estilização desacoplado e nativo.

Qual a diferença entre Media, Container Size e Style Queries?

A evolução dos seletores condicionais em CSS nos trouxe até este ponto de flexibilidade máxima:

  1. Media Queries: Consultam o tamanho da viewport geral do navegador.
  2. Container Size Queries (CQ): Consultam a largura ou altura física do container pai mais próximo.
  3. Container Style Queries (CSQ): Consultam o valor de variáveis personalizadas (--custom-properties) ou estilos aplicados ao container pai, independentemente do seu tamanho físico.

Isso significa que um componente pode se ajustar visualmente não porque ficou menor na tela, mas porque o bloco pai mudou seu estado semântico de estilização.

A sintaxe das Container Style Queries na prática

A estrutura básica envolve definir um elemento como container e atribuir uma variável customizada a ele. Os elementos filhos então utilizam a regra @container style() para consultar o valor dessa variável.

Veja este exemplo simplificado:

/* Definindo o pai como container */
.product-card {
  container-name: card-theme;
  --card-style: elegant;
}

/* Consultando a variável no filho */
@container card-theme style(--card-style: elegant) {
  .product-title {
    font-family: "Playfair Display", serif;
    font-size: 1.5rem;
    color: #2c3e50;
  }
  
  .product-badge {
    background-color: #d4af37; /* Dourado */
  }
}

Caso alteremos o valor de --card-style para playful no container pai, as regras internas do seletor @container não serão aplicadas, e o componente filho cairá de volta para seu visual padrão ou para a regra playful correspondente.

Criando micro-temas modulares de componentes sem JavaScript

Essa abordagem é ideal para construir Design Systems resilientes. Imagine um widget de feed que pode ser renderizado em três seções diferentes do site: no rodapé escuro, na barra lateral cinza ou na área principal clara.

Em vez de escrever seletores acoplados como .footer .widget ou passar propriedades de classe complexas via React/Astro, você define --widget-theme: dark no container do rodapé. O widget interno consulta esse valor e ajusta suas cores internas (como contraste de botões e links) de forma autônoma. O HTML do componente filho permanece intocado, limpo e extremamente portátil.

Limites atuais de suporte nos navegadores e o que esperar

Embora a especificação original das Container Style Queries cubra qualquer propriedade CSS (ex: perguntar se o pai tem display: flex), a implementação inicial dos navegadores está limitada à consulta de propriedades customizadas (Custom Properties).

Essa funcionalidade já conta com excelente suporte nos navegadores modernos baseados em Chromium (Google Chrome, Microsoft Edge, Opera) e Safari. O Firefox está finalizando a implementação em seu motor de renderização. Para projetos em produção, você pode usar a diretiva @supports para garantir fallbacks aceitáveis caso o navegador do usuário ainda não suporte consultas de estilo nativas.

Leia também

CompartilheWhatsAppXFacebook
Publicidade

Newsletter

Acompanhe sem perder nada

A newsletter está em preparação. Enquanto a integração de inscrição não fica pronta, assine o feed RSS e receba cada nova publicação no seu leitor favorito.

Assinar o RSS

Comentários

Os comentários usam o Giscus e são carregados só quando você pedir.

Continue lendo

Mais em Web Design