Novo Livro!
Categorias
Ferramentas
Projetos
Formas

Gerador de divisores de seção

Escolha a forma, a borda e a profundidade: o gerador recorta a passagem entre duas seções em diagonal, seta, curva, onda, zigue-zague ou rasgado e encaixa a seção vizinha no recorte.

Funciona em todos os navegadores atuais Ver no Baseline

Ajuste

Forma
Borda da seção
48px

Veja

Seção O recorte é desta seção.
Seção seguinte Sobe e aparece pelo recorte.

Copie o código

CSS
.divided {
  /* Seta embaixo: fica por cima da seção seguinte. */
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 48px), 50% 100%, 0 calc(100% - 48px));
  padding-block-end: calc(1rem + 48px);
  position: relative;
}

/* A seção seguinte sobe e aparece pelo recorte. */
.divided + * {
  margin-block-start: -48px;
  padding-block-start: calc(1rem + 48px);
}

O problema

A passagem inclinada ou curva entre duas seções costumava vir de um SVG absoluto no rodapé da seção, de pseudo-elementos com skew pintados da cor do fundo ou de uma imagem. Todas quebram quando a cor da seção muda ou quando o fundo é uma foto.

Recortar a própria seção resolve, mas sobra um detalhe que pega muita gente: o recorte deixa um buraco, e a seção vizinha precisa subir e ficar na camada certa para aparecer por ele.

Como funciona

Diagonal, seta, zigue-zague e rasgado são polígonos no clip-path; curva e onda são mask com meios elipses sobre uma faixa reta:

clip-path: polygon(0 0, 100% 0, 100% calc(100% - 48px), 50% 100%, 0 calc(100% - 48px))

Os pontos combinam porcentagens, que acompanham o tamanho da seção, com calc() em px, que fixa a profundidade do recorte. Assim a seta tem a mesma altura no celular e no desktop.

Com o divisor embaixo, a seção recortada ganha position: relative, que a pinta por cima da seguinte, e a seguinte sobe com margem negativa até aparecer pelo recorte. Com o divisor em cima, quem sobe é a seção recortada, e a ordem do HTML já a deixa por cima; a anterior, achada com :has(+ .divided), abre espaço embaixo.

A onda junta dois meios elipses: um para fora numa metade da seção, outro para dentro na outra, e os dois passam pela metade da profundidade no meio. O rasgado usa profundidades irregulares fixas, para o desenho não mudar a cada build.

O padding do lado recortado tira o conteúdo da faixa cortada. Inverter vira a diagonal, a onda e o rasgado para o outro lado, leva a seta e a curva para dentro e desloca os dentes do zigue-zague.

Quando usar

  • Heros e faixas de destaque que terminam em diagonal ou em seta para baixo.
  • Passagens entre seções com foto ou gradiente de fundo, em que um SVG da cor do fundo não serve.
  • Rodapés que começam em curva ou em onda, e seções com a borda de papel rasgado.
  • Trocar pseudo-elementos com skew por um recorte que não depende da cor do fundo.

Leia no blog

Outras ferramentas