CSS Grid de 12 colunas, mobile-first — N colunas iguais, proporção assimétrica, ou controle coluna a coluna por filho.
.l é um display:grid de verdade com 12 colunas e gap. Três formas de usar: colunas iguais (.l-3), proporção assimétrica (.l-1-2), ou controle por filho em cima das 12 colunas (.co8 + .co4), cada uma com sufixo de breakpoint.
No mobile TODO filho ocupa a linha inteira (grid-column: span 12), sem exceção — a grade só vira colunas a partir de 768px. A exceção é .l-1, que é 1 coluna sempre. Linhas: o grid cria as linhas sozinho conforme os filhos entram (grid implícito) — você controla o ritmo pelo número de colunas e pelo gap. Pra áreas nomeadas (header/aside/main/footer), o framework não tem utilitário: use .grd + grid-template-areas no seu próprio CSS (exemplo no fim).
<div class="l l-3 gap-m">
<div>1</div><div>2</div><div>3</div>
</div>
<!-- 3 colunas a partir de 768px; 1 coluna no mobile -->
<div class="l l-1">sempre 1 coluna, não colapsa porque já é 1</div>
<div class="l l-4 l0">4 colunas coladas (l0 = gap zero)</div>
<!-- clássico: conteúdo + barra lateral -->
<div class="l l-3-1 gap-g">
<main>conteúdo (3fr)</main>
<aside>barra lateral (1fr)</aside>
</div>
<!-- .l-1-2 .l-2-1 .l-1-3 .l-3-1 — todos a partir de 768px -->
<!-- a grade tem 12 colunas; cada filho escolhe quantas ocupa -->
<div class="l gap-m">
<div class="co8">ocupa 8 de 12</div>
<div class="co4">ocupa 4 de 12</div>
</div>
<!-- com breakpoint: 1 coluna no mobile → 2 em 576 → 3 em 768 -->
<div class="l gap-m">
<span class="co12 co6-p co4-m">responsivo</span>
<span class="co12 co6-p co4-m">responsivo</span>
<span class="co12 co6-p co4-m">responsivo</span>
</div>
<!-- os .coN-bp existem em 1, 2, 3, 4, 6 e 12 colunas -->
<!-- você NÃO declara linha: o grid abre uma nova a cada 3 filhos (l-3).
O 7º item com .co6 ocupa metade da linha nova. -->
<div class="l l-3 gap-m">
<div>1</div><div>2</div><div>3</div>
<div>4</div><div>5</div><div>6</div>
<div class="co6">7</div>
</div>
<!-- altura da linha: deixe o conteúdo mandar, ou fixe no seu CSS
com grid-auto-rows na grade -->
<div class="l l-3" style="grid-auto-rows: 12rem">…</div>
<!-- o SWCore não tem utilitário de área nomeada de propósito:
área é sempre específica do layout, então fica no SEU CSS.
Use .grd (display:grid) e declare o template você mesmo. -->
<div class="grd layout-app">
<header style="grid-area: hd">…</header>
<aside style="grid-area: side">…</aside>
<main style="grid-area: main">…</main>
<footer style="grid-area: ft">…</footer>
</div>
<style>
.layout-app {
grid-template-areas: "hd hd" "side main" "ft ft";
grid-template-columns: 1fr 3fr;
gap: var(--sw-s-m);
}
/* mobile: empilha tudo numa coluna só */
@media (max-width: 767px) {
.layout-app {
grid-template-areas: "hd" "main" "side" "ft";
grid-template-columns: 1fr;
}
}
</style>
Nenhum.
ll0l-1l-2 · l-3 · l-4 · l-5 · l-6l-1-2 · l-2-1 · l-1-3 · l-3-1l-2-p · l-1-2-p · l-2-1-pl-2-m · l-3-m · l-1-2-m · l-2-1-ml-3-g · l-4-gl-4-gg · l-6-ggco1 … co12 (no FILHO)co{1,2,3,4,6,12}-{pp,p,m,g,gg,xg}grdNenhum.
Nenhum.
Nenhuma.