Espaçamento CSS
Espaço de dentro (p-), de fora (m-) e entre itens (gap-) numa régua só: pp · p · m · g · gg · xg · xxg, de 4 a 120 px.
O que é
É o "ar" do layout: a folga dentro de um card, a distância entre um bloco e outro, o espaço entre botões lado a lado. Em vez de inventar números, você usa uma régua de 7 tamanhos com nomes curtos — pp (bem pequeno), p, m (médio), g (grande), gg, xg, xxg (enorme) — e a mesma régua vale para os três tipos de espaço. Aprendeu uma vez, usou em tudo.
É só CSS. A classe é tipo + tamanho: p-g = padding (espaço de dentro) grande, m-m = margin (espaço de fora) médio, gap-p = espaço entre os itens, pequeno. Para um lado só, acrescente a letra do lado: t cima, b baixo, l esquerda, r direita (pt-g, mb-m). Para dois lados de uma vez: x (esquerda e direita) e y (cima e baixo) — px-g, my-p. Os tamanhos vêm das variáveis --sw-s-pp…--sw-s-xxg e crescem junto se você aumentar o --sw-type-scale.
Quando usar
- Folga dentro de card, botão, caixa:
p-moup-g. - Espaço entre seções da página:
py-xgna<section>. - Botões ou ícones lado a lado:
flx gap-pno pai (melhor que margem em cada um). - Campos de formulário empilhados:
flx f-cl gap-m. - Afastar só um lado (título do texto de baixo):
mb-m. - Centralizar um bloco com largura menor:
mx-au.
Comece aqui
-
1
Coloque o SW Core no
<head>. Todas as classes de espaço estão no arquivo principal.<link rel="stylesheet" href="swcore/swcore.min.css"> -
2
Escolha o tipo e o tamanho. Aqui: espaço de dentro grande (
p-g) no card e espaço médio entre os botões (gap-m).Plano Profissional — R$ 99/mês
<div class="bg-sur bd r-m p-g"> <p>Plano Profissional — R$ 99/mês</p> <div class="flx gap-m"> <button sw-btn="pri">Assinar</button> <button sw-btn="out">Detalhes</button> </div> </div>
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. A régua — espaço entre itens (gap)
Os dois quadradinhos estão separados exatamente pelo tamanho do nome. gap funciona dentro de flx (linha) e de l/grd (grade).
<div class="flx gap-pp"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-p"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-m"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-g"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-gg"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-xg"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
<div class="flx gap-xxg"><span class="bg-pri p-m r-p"></span><span class="bg-pri p-m r-p"></span></div>
2. Espaço de dentro (p-)
A parte colorida clarinha é o padding: a folga entre a borda e o conteúdo.
<div class="bg-pri-soft r-p p-pp"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-p"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-m"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-gg"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-xg"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p p-xxg"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
3. Espaço de dentro de um lado ou de um eixo
Letra do lado depois do p: t cima, r direita, b baixo, l esquerda. x = esquerda + direita; y = cima + baixo.
<div class="bg-pri-soft r-p pt-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p pr-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p pb-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p pl-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p px-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bg-pri-soft r-p py-g"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
4. Espaço de fora (m-)
A linha tracejada é o "pai". O espaço entre ela e o bloco colorido é a margin do bloco. Mesma régua, mesmos lados.
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp m-p">bloco</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp m-g">bloco</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp mt-g">bloco</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp ml-g">bloco</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp mx-g">bloco</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp my-g">bloco</div></div>
5. Automático e zero
au (automático) empurra o bloco: à direita (ml-au) ou para o meio (mx-au, precisa de uma largura menor que o pai). 0 zera.
<div class="flx">
<span class="ml-au">Sair</span>
</div>
<div class="g-pp mx-au">centro</div>
<div class="bg-pri-soft r-p p-0"><div class="bg-sur bd r-p p-p t-pp">conteúdo</div></div>
<div class="bd bd-dsh r-p"><div class="bg-pri r-p p-p t-pp m-0">bloco</div></div>
6. Espaço só entre colunas ou só entre linhas
gap-x- afasta só na horizontal; gap-y- só na vertical. Útil em lista que quebra linha.
<div class="flx f-wr gap-x-g gap-y-pp w-fl">
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
</div>
<div class="flx f-wr gap-x-pp gap-y-g w-fl">
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
<span class="bg-pri p-m r-p"></span>
</div>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| A régua (vale para p-, m- e gap-) | ||
pp | 4 px (--sw-s-pp). | p-pp · m-pp · gap-pp |
p | 8 px (--sw-s-p). | p-p |
m | 16 px (--sw-s-m). | p-m |
g | 24 px (--sw-s-g). | p-g |
gg | 48 px (--sw-s-gg). | p-gg |
xg | 80 px (--sw-s-xg). | p-xg |
xxg | 120 px (--sw-s-xxg). | p-xxg |
0 | Zero. | p-0 · m-0 · gap-0 |
| Espaço de dentro (padding) | ||
p-{tam} | Todos os lados. | class="p-g" |
pt- · pr- · pb- · pl-{tam} | Um lado: cima, direita, baixo, esquerda. | class="pt-m" |
px- · py-{tam} | Esquerda+direita / cima+baixo. | class="px-g py-m" |
| Espaço de fora (margin) | ||
m-{tam} | Todos os lados. | class="m-m" |
mt- · mr- · mb- · ml-{tam} | Um lado. | class="mb-g" |
mx- · my-{tam} | Esquerda+direita / cima+baixo. | class="my-xg" |
ml-au | Margem automática à esquerda: empurra para a direita. | class="ml-au" |
mx-au | Margem automática dos dois lados: centraliza. | class="mx-au" |
| Espaço entre itens (dentro de flx, l ou grd) | ||
gap-{tam} | Entre todos os itens. | class="flx gap-p" |
gap-x-{tam} | Só entre colunas (pp · p · m · g · gg · 0). | class="gap-x-g" |
gap-y-{tam} | Só entre linhas (pp · p · m · g · gg · 0). | class="gap-y-p" |
| Números antigos (ainda funcionam, prefira a régua) | ||
gap-1 … gap-8 · gap-10 · gap-12 · gap-16 | 4 · 8 · 12 · 16 · 20 · 24 · 28 · 32 · 40 · 48 · 64 px. | class="gap-3" |
p-1 · 2 · 3 · 4 · 6 · 8 · 10 (idem m-) | 4 · 8 · 12 · 16 · 24 · 32 · 40 px. Não existem 5, 7 e 9. | class="p-4" |
pt/pr/pb/pl/px/py- e mt/mr/mb/ml/mx/my- 1 · 2 · 3 · 4 · 6 · 8 · 10 | Mesmos valores, por lado. | class="mb-4" |
| No seu CSS | ||
var(--sw-s-pp) … var(--sw-s-xxg) | A régua como variável. | padding: var(--sw-s-g); |
var(--sw-s-1) … var(--sw-s-60) | Régua fina de 2 em 2 px (1 = 2 px, 8 = 16 px, 24 = 48 px, 60 = 120 px). | gap: var(--sw-s-6); |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
Pronto para começar?
Fale com a gente e receba um orçamento hoje.
Pedir orçamento<section class="bg-sur bd r-m py-xg px-g t-ct">
<p class="t-gg t-txt mb-p">Pronto para começar?</p>
<p class="mb-g">Fale com a gente e receba um orçamento hoje.</p>
<a href="/contato" sw-btn="pri">Pedir orçamento</a>
</section>
<form class="flx f-cl gap-m g-p mx-au">
<div sw-fld><label for="nome">Nome</label><input sw-inp id="nome" placeholder="Seu nome"></div>
<div sw-fld><label for="tel">WhatsApp</label><input sw-inp id="tel" placeholder="(11) 90000-0000"></div>
<button sw-btn="pri">Quero ser chamado</button>
</form>
<nav class="flx alc gap-m bg-sur bd r-m px-g py-p">
<strong>Studio Sol</strong>
<a href="/servicos">Serviços</a>
<a href="/contato">Contato</a>
<a href="/agendar" sw-btn="pri p" class="ml-au">Agendar</a>
</nav>
<div class="flx f-wr gap-p">
<span class="bg-pri-soft t-pri px-p py-pp r-p t-p">Corte</span>
<span class="bg-pri-soft t-pri px-p py-pp r-p t-p">Barba</span>
<span class="bg-pri-soft t-pri px-p py-pp r-p t-p">Sobrancelha</span>
<!-- … -->
</div>
Precisa de quê
swcore.min.css— todas as classes desta página.
Cuidados — erros comuns
gapsó funciona no pai que éflx,lougrd. Num<div>comum ele não faz nada.- Para espaço entre itens lado a lado, prefira
gapno pai amr-em cada filho: com margem o último item fica com espaço sobrando e a quebra de linha desalinha. - Não existe
p-5,m-7nemp-9(a escala antiga pula esses números). Use a régua com nome:p-m,p-g… mx-ausó centraliza se o bloco for mais estreito que o pai (ex.:g-p mx-au, ou uma largura no seu CSS).- Margem de cima de um bloco e margem de baixo do anterior não somam: o navegador fica com a maior (isso é normal do CSS). Dentro de
flx/lisso não acontece. - As classes de espaço usam
!important: elas vencem o CSS do componente. Se um espaço "não sai", confira se não tem outra classe de espaço brigando no mesmo elemento.
O que ele não faz
- Não tem versão por tamanho de tela (
p-g-mnão existe): o espaço é o mesmo no celular e no computador. Para mudar por tela, use o seu CSS comvar(--sw-s-*). gap-x-/gap-y-vão só atégg(não existegap-x-xg).- Não há margem negativa.

