8 pontos por GN⁺ 2025-07-04 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Antes, era possível criar espaçamento com a propriedade CSS gap, mas estilizar a própria área do gap era impossível, então era preciso recorrer a vários truques (elementos extras, border, pseudo-elementos etc.)
  • O novo recurso de CSS gap decorations permite desenhar linhas (separadores) diretamente entre os itens do layout com propriedades como row-rule, column-rule etc.
  • A decoração pode ser aplicada em todos os principais layouts, como Grid, Flexbox, Multi-column e em breve Masonry, permitindo melhorias estruturais e visuais apenas com CSS puro, sem marcação extra nem elementos desnecessários
  • Há suporte para repetição/combinação de vários estilos (espessura, cor, padrão etc.), com controle preciso por meio de repeat(), outset, paint-order e mais
  • No momento, o recurso só pode ser usado com flag ativada em navegadores baseados em Chromium (Chrome/Edge 139+), enquanto segue em padronização e expansão

Limitações antigas do gap e a mudança

  • Antes era difícil estilizar a área do gap, e era necessário adicionar bordas de separação ou pseudo-elementos artificiais
  • Essa abordagem trazia vários problemas, como impacto no tamanho do layout, acessibilidade e complexidade da marcação
  • Agora surgiu o padrão gap decorations, que permite aplicar decorações (como linhas) na área de espaçamento com propriedades CSS simples

Introdução ao CSS gap decorations

  • column-rule: já era usado em multi-column para desenhar divisórias verticais (ex.: column-rule: 1px solid black;)
  • Agora essa propriedade também pode ser usada em flexbox e grid
    .my-grid-container {  
      display: grid;  
      gap: 2px;  
      column-rule: 2px solid pink;  
    }  
    
  • row-rule: permite desenhar separadores entre as linhas (na horizontal)
    .my-flex-container {  
      display: flex;  
      gap: 10px;  
      row-rule: 10px dotted limegreen;  
      column-rule: 5px dashed coral;  
    }  
    
  • Repetição/combinação de vários estilos: é possível misturar diferentes estilos com repeat() ou separação por vírgulas
    .my-container {  
      display: grid;  
      gap: 2px;  
      row-rule:  
        repeat(2, 1px dashed red),  
        2px solid black,  
        repeat(auto, 1px dotted green);  
    }  
    
  • Propriedades de controle fino: row-rule-break, column-rule-break, row-rule-outset, column-rule-outset, gap-rule-paint-order etc. permitem ajustar com detalhe posição, interseções, ordem de sobreposição e mais

Exemplo: uso prático de gap decorations

  • A página de exemplo define o body como grid e separa header/nav/main/footer com gap
  • Com row-rule, é possível aplicar divisórias com espessuras, cores e estilos diferentes
  • O menu nav usa flexbox e column-rule para desenhar linhas entre os itens
  • A área main usa flexbox para organizar imagem e texto em formato masonry, com row-rule e column-rule destacando a estrutura em estilo de grade
  • Com column-rule-outset: 0; e afins, dá para ajustar com precisão o ponto inicial e final das linhas

Suporte nos navegadores e ativação

  • Atualmente, é necessário ativar uma flag (about://flags → Experimental Web Platform Features) em navegadores baseados em Chromium, como Chrome/Edge 139+
  • A padronização oficial ainda está em andamento, e feedbacks e experimentos são bem-vindos

Saiba mais e Playground

Ainda não há comentários.

Ainda não há comentários.