SWCore / CSS / Breakpoints

Breakpoints CSS

Um sufixo só, o mesmo em grid, coluna e container — mobile-first de verdade.

O que é

O sistema de responsividade inteiro usa o MESMO sufixo de largura em qualquer classe de layout — aprende uma vez, usa em tudo.

Como funciona

Mobile-first real: a regra ATIVA a partir daquela largura pra cima, nunca abaixo — sem sufixo já vale no mobile.

Exemplos

A escala inteira — os 7 degraus Ao vivo
(sem sufixo)0px — celular em pé, o padrão
-pp380px — celular grande
-p576px — celular deitado
-m768px — tablet
-g992px — notebook
-gg1200px — desktop
-xg1400px — tela grande
<!-- o sufixo diz "a PARTIR desta largura", nunca "até" -->
<div class="l-2 l-4-g">…</div>
<!--        ↑     ↑
            |     a partir de 992px, 4 colunas
            no celular já vale: 2 colunas -->
A regra que pega todo mundo: no celular é sempre 1 por linha Ao vivo

Abaixo de 768px (-m), as grades .l-2.l-6 NÃO viram N colunas — cada filho ocupa a linha inteira. A grade só passa a valer do tablet pra cima.

Ou seja: l-4 não é "4 colunas sempre". É "1 por linha no celular, 4 a partir de 768px". Se você quer 2 colunas já no celular, o caminho é o span do filho: co6 (6 de 12 = metade).

<!-- l-4 = 1 por linha no celular, 4 colunas a partir de 768px -->
<div class="l l-4">…</div>

<!-- quer 2 colunas JÁ no celular? use o span do filho -->
<div class="l">
  <div class="co6">metade</div>
  <div class="co6">metade</div>
</div>
Colunas que mudam de largura — redimensione a janela Ao vivo
l-4-g — 1 por linha no celular, 4 a partir de 992px
1
2
3
4
l-2-m l-3-g l-6-gg — 1 → 2 (768) → 3 (992) → 6 (1200)
1
2
3
4
5
6
<!-- 1 por linha no celular; 4 colunas do notebook pra cima -->
<div class="l l-4-g">…</div>

<!-- empilhado no celular, 2 no tablet, 3 no notebook, 6 no desktop -->
<div class="l l-2-m l-3-g l-6-gg">…</div>
Proporção assimétrica por breakpoint Ao vivo
l-1-2-m — empilha no celular; a partir de 768px vira 1fr / 2fr
1fr
2fr
l-2-1-p — a partir de 576px vira 2fr / 1fr (conteúdo + barra lateral)
2fr — conteúdo
1fr — lateral
<div class="l l-1-2-m">…</div>   <!-- 1fr / 2fr a partir de 768px -->
<div class="l l-2-1-p">…</div>   <!-- 2fr / 1fr a partir de 576px -->
Quanto cada filho ocupa — co1 … co12 Ao vivo
co12 co6-m co3-g — o mesmo bloco ocupa 12/12, depois 6/12, depois 3/12
A
B
C
D
Conteúdo + lateral: co12 co3-g na lateral, co12 no conteúdo — some no celular, encaixa no notebook
conteúdo (9/12)
lateral (3/12)
<!-- o sufixo funciona igual no span do filho -->
<div class="l">
  <div class="co12 co6-m co3-g">A</div>
  <div class="co12 co6-m co3-g">B</div>
</div>

<!-- ATENÇÃO: com breakpoint, o co existe só nos DIVISORES de 12:
     co1 co2 co3 co4 co6 co12. Não existe co8-g, co5-m, co7-p… -->

<!-- sem breakpoint, aí sim vão de co1 a co12 -->
<div class="l">
  <div class="co8">8 de 12</div>
  <div class="co4">4 de 12</div>
</div>
Por que não existe "só no celular" Ao vivo

O sufixo é sempre "daqui pra cima". Então o jeito de fazer "diferente no celular" é: escreva o comportamento do celular sem sufixo, e corrija dali pra cima.

Ex.: l-1 l-3-m — no celular é 1 coluna (sem sufixo), e a partir do tablet passa a 3. Você nunca precisa de uma regra "só abaixo de 768".

<!-- CERTO — mobile-first: o padrão é o celular, o sufixo corrige pra cima -->
<div class="l l-1 l-3-m">…</div>

<!-- não existe (e não faz falta) algo como "l-3-ate-m" -->

<!-- vale pros dois lugares onde o sufixo existe: -->
<div class="l l-2 l-4-g">…</div>        <!-- colunas da grade -->
<div class="co12 co6-m">…</div>          <!-- quanto o filho ocupa -->

Atributos

Nenhum.

Variantes

(nenhum sufixo)
0 — celular em pé, o padrão
-pp
380px — celular grande
-p
576px — celular deitado
-m
768px — tablet · é aqui que as grades .l-N viram N colunas
-g
992px — notebook
-gg
1200px — desktop
-xg
1400px — tela grande

Eventos

Nenhum.

API (JavaScript)

Nenhum.

Requisitos

Nenhuma.

Limitações — o que ele não faz

  • O sufixo de breakpoint existe nas classes de grade (l-*) e de span do filho (co1co12). Espaçamento, gap e tipografia usam a escala de TAMANHO (-pp -p -m -g -gg -xg) com os mesmos nomes, mas ali eles significam "quão grande", não "a partir de que largura".