Texto do artigo…
Grid CSS
A grade da página: <div class="l l-3"> põe 3 itens por linha no computador e empilha no celular sozinha. Colunas iguais, proporção (2/3 + 1/3) ou quanto cada item ocupa de 12.
O que é
É o que organiza a página em colunas: 3 cards de serviço lado a lado, conteúdo + barra lateral, galeria de fotos 4 por linha. Você coloca class="l" no bloco de fora (a grade) e escolhe as colunas de três jeitos: colunas iguais (l-3 = 3 por linha), proporção (l-2-1 = uma coluna o dobro da outra) ou cada item diz quanto ocupa de uma régua de 12 partes (co8 + co4). No celular tudo fica um embaixo do outro, sem você fazer nada.
É só CSS (CSS Grid). A grade l tem 12 colunas invisíveis e um espaço médio (16 px) entre os itens. No celular (abaixo de 768 px) cada item ocupa a linha inteira. A partir de 768 px (tablet) as colunas aparecem. Para escolher outra largura de tela, use os sufixos da página Breakpoints (l-3-g, co6-m…). As linhas não precisam ser declaradas: quando a linha enche, o próximo item desce para a de baixo sozinho. Para alinhar poucos itens numa linha (ícone + texto, botões), use Flex, não grade.
Quando usar
- Cards de serviço, produtos, planos:
l l-3. - Galeria de fotos:
l l-2-m l-4-g(2 no tablet, 4 no computador). - Conteúdo + barra lateral:
l l-3-1(3/4 + 1/4). - Formulário em 2 colunas com um campo largo:
lcomco6nos campos lado a lado eco12no campo largo. - Números do painel (vendas, clientes, pedidos):
l l-2-m l-4-g.
Comece aqui
-
1
Coloque o SW Core no
<head>. A grade está no arquivo principal.<link rel="stylesheet" href="swcore/swcore.min.css"> -
2
lno bloco de fora + quantas colunas. Os filhos viram as colunas.CorteBarbaSobrancelha<div class="l l-3"> <div>Corte</div> <div>Barba</div> <div>Sobrancelha</div> </div> -
3
Estreite a janela abaixo de 768 px: os três empilham sozinhos.
Todas as variações
Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.
1. Colunas iguais (l-2 a l-6)
Viram colunas a partir de 768 px; no celular, um por linha. l-1 é sempre uma coluna.
<div class="l l-1">
<div>1</div>
<div>2</div>
</div>
<div class="l l-2">
<div>1</div>
<div>2</div>
</div>
<div class="l l-3">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<div class="l l-4">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
<div class="l l-5">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<div class="l l-6">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
2. Proporção entre duas colunas
Uma coluna maior que a outra: o número diz quantas "partes" cada uma tem. A partir de 768 px.
<div class="l l-2-1">
<div>2 partes</div>
<div>1 parte</div>
</div>
<div class="l l-1-2">
<div>1 parte</div>
<div>2 partes</div>
</div>
<div class="l l-3-1">
<div>3 partes</div>
<div>1 parte</div>
</div>
<div class="l l-1-3">
<div>1 parte</div>
<div>3 partes</div>
</div>
3. Cada item diz quanto ocupa (co1 a co12)
A grade tem 12 partes. Cada filho escolhe quantas ocupa; somando 12, fecha a linha. Vale a partir de 768 px (no celular, linha inteira).
<div class="l">
<div class="co12">…</div>
</div>
<div class="l">
<div class="co6">…</div>
<div class="co6">…</div>
</div>
<div class="l">
<div class="co8">…</div>
<div class="co4">…</div>
</div>
<div class="l">
<div class="co9">…</div>
<div class="co3">…</div>
</div>
<div class="l">
<div class="co4">…</div>
<div class="co8">…</div>
</div>
<div class="l">
<div class="co3">…</div>
<div class="co9">…</div>
</div>
<div class="l">
<div class="co7">…</div>
<div class="co5">…</div>
</div>
<div class="l">
<div class="co10">…</div>
<div class="co2">…</div>
</div>
<div class="l">
<div class="co11">…</div>
<div class="co1">…</div>
</div>
<div class="l">
<div class="co4">…</div>
<div class="co4">…</div>
<div class="co4">…</div>
</div>
<div class="l">
<div class="co6">…</div>
<div class="co3">…</div>
<div class="co3">…</div>
</div>
4. Espaço entre os itens
A grade já vem com 16 px de espaço. Troque com gap-* (régua da página Espaçamento) ou zere com l0.
<div class="l l-4">…</div>
<div class="l l-4 l0">…</div>
<div class="l l-4 gap-p">…</div>
<div class="l l-4 gap-gg">…</div>
5. Linhas automáticas
Não precisa declarar linha: numa l-3, a cada 3 itens começa outra. Com co, quando a soma passa de 12 o item desce.
<div class="l l-3">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</div>
<div class="l">
<div class="co8">…</div>
<div class="co4">…</div>
<div class="co6">…</div>
<div class="co6">…</div>
</div>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| A grade | ||
l | Grade de 12 partes com 16 px de espaço. No celular, um item por linha. | class="l" |
l0 | Tira o espaço entre os itens. | class="l l-3 l0" |
gap-{tam} | Outro espaço (pp · p · m · g · gg · xg · xxg). | class="l l-3 gap-g" |
grd | Só "ligar a grade" (display grid), sem as 12 partes — para montar a sua no seu CSS. | class="grd" |
| Colunas iguais (a partir de 768 px) | ||
l-1 | 1 coluna, sempre. | class="l l-1" |
l-2 · l-3 · l-4 · l-5 · l-6 | 2 a 6 colunas iguais. | class="l l-4" |
| Proporção (a partir de 768 px) | ||
l-2-1 | 2/3 + 1/3. | class="l l-2-1" |
l-1-2 | 1/3 + 2/3. | class="l l-1-2" |
l-3-1 | 3/4 + 1/4. | class="l l-3-1" |
l-1-3 | 1/4 + 3/4. | class="l l-1-3" |
| Colunas em outra largura de tela | ||
l-2-p · l-1-2-p · l-2-1-p | A partir de 576 px. | class="l l-2-p" |
l-2-m · l-3-m · l-1-2-m · l-2-1-m | A partir de 768 px. | class="l l-3-m" |
l-3-g · l-4-g | A partir de 992 px. | class="l l-2-m l-4-g" |
l-4-gg · l-6-gg | A partir de 1200 px. | class="l l-3-m l-6-gg" |
| Quanto cada item ocupa (no filho) | ||
co1 … co12 | Quantas das 12 partes o item ocupa, a partir de 768 px. | class="co8" |
co1 · co2 · co3 · co4 · co6 · co12 + -pp/-p/-m/-g/-gg/-xg | O mesmo, a partir da largura do sufixo (380 · 576 · 768 · 992 · 1200 · 1400). | class="co12 co6-p co4-g" |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
R$ 1.840
37
9
R$ 49,70
<div class="l l-2-m l-4-g gap-m">
<div class="bg-sur bd r-m p-m"><span class="t-pp t-upp ls-w">Vendas hoje</span><p class="t-xg t-txt fw6 mb-0">R$ 1.840</p></div>
<div class="bg-sur bd r-m p-m"><span class="t-pp t-upp ls-w">Pedidos</span><p class="t-xg t-txt fw6 mb-0">37</p></div>
<div class="bg-sur bd r-m p-m"><span class="t-pp t-upp ls-w">Clientes novos</span><p class="t-xg t-txt fw6 mb-0">9</p></div>
<div class="bg-sur bd r-m p-m"><span class="t-pp t-upp ls-w">Ticket médio</span><p class="t-xg t-txt fw6 mb-0">R$ 49,70</p></div>
</div>
<form class="l gap-m">
<div sw-fld class="co6"><label for="nome">Nome</label><input sw-inp id="nome"></div>
<div sw-fld class="co6"><label for="tel">WhatsApp</label><input sw-inp id="tel"></div>
<div sw-fld class="co12"><label for="msg">Mensagem</label><textarea sw-inp id="msg" rows="3"></textarea></div>
<div class="co12"><button sw-btn="pri">Enviar</button></div>
</form>
<div class="l l-3-1 gap-g">
<article class="bg-sur bd r-m p-g">…</article>
<aside class="bg-sur bd r-m p-g">…</aside>
</div>
<div class="grd gap-p app">
<header class="app-topo bg-sur bd r-p p-p t-ct">Topo</header>
<aside class="app-lateral bg-sur bd r-p p-p t-ct">Lateral</aside>
<main class="app-conteudo bg-sur bd r-p p-g t-ct">Conteúdo</main>
<footer class="app-rodape bg-sur bd r-p p-p t-ct">Rodapé</footer>
</div>
<style>
.app { grid-template-areas: "topo topo" "lateral conteudo" "rodape rodape";
grid-template-columns: 1fr 3fr; }
.app-topo { grid-area: topo; } .app-lateral { grid-area: lateral; }
.app-conteudo { grid-area: conteudo; } .app-rodape { grid-area: rodape; }
@media (max-width: 767px) { /* celular: tudo empilhado */
.app { grid-template-areas: "topo" "conteudo" "lateral" "rodape";
grid-template-columns: 1fr; }
}
</style>
Precisa de quê
swcore.min.css— todas as classes desta página.
Cuidados — erros comuns
l-3sozinho não faz nada: a grade él. Escreva sempre os dois:class="l l-3".- O
co…vai no filho direto da grade, não na grade. E só funciona se o pai forl. co…é paralpuro (régua de 12). Dentro del-2…l-6ou de uma proporção, quando as colunas da grade estão ligadas, ocoé ignorado e cada item ocupa uma célula — escolha um dos dois jeitos: colunas iguais (l l-3) ouconos filhos de uml.- Dois tamanhos juntos (
l-2-m l-4-g): o de largura maior vale quando a tela chega nele; antes disso, o menor. Abaixo do menor, um por linha. - Com sufixo, o
cosó existe em 1, 2, 3, 4, 6 e 12 (co8-gnão existe). Sem sufixo, deco1aco12. - Para alinhar ícone e texto ou uma fileira de botões, use
flx(Flex), não a grade.
O que ele não faz
- Não tem classe para área nomeada (topo/lateral/conteúdo) nem para um item ocupar 2 linhas: isso fica no seu CSS, sobre
grdoul(receita acima). - Não tem classe para mudar a ordem dos itens por tela.

