SW Core
SW Core / CSS / Tipografia

Tipografia CSS

Tamanho, peso, cor e jeito do texto por classe curta — t-g fw6 t-pri — numa escala pronta, do rótulo pequeno ao título grande.

O que é

É tudo que muda a aparência das letras: o tamanho, a grossura (peso), a cor, maiúscula/minúscula, alinhamento, espaço entre linhas e entre letras. Em vez de escrever CSS, você coloca classes curtas no elemento: t-g (texto grande), fw6 (peso 600), t-pri (cor da marca), t-upp (MAIÚSCULAS). Os títulos <h1> a <h6> já vêm prontos, sem classe nenhuma.

É só CSS, não precisa de JavaScript. A fonte do SW Core é a Geist (e a Geist Mono para código e números), já inclusa, sem Google Fonts. Ela é variável: um arquivo só tem todos os pesos, de 100 (bem fina) a 900 (bem grossa). O padrão de um site com SW Core: texto corrido em peso 200 na cor suave, <strong> em 500, títulos em 400 na cor forte — o "peso" do título vem do tamanho, não da grossura. Os títulos crescem sozinhos do celular ao computador.

Quando usar

  • Título de seção: use a tag certa (<h2>) — o tamanho já vem. Precisa de outro tamanho sem mudar a tag? class="t-h3".
  • Rótulo acima do título ("SERVIÇOS", "NOVIDADE"): t-pp t-upp ls-ww t-pri.
  • Preço, número de destaque: t-xg fw7.
  • Texto de apoio, legenda, data: t-p t-mut.
  • Status em texto (pago, vencido, pendente): t-suc / t-err / t-ale.
  • Depoimento de cliente: <blockquote class="sw-quote">.

Comece aqui

  1. 1

    Coloque o SW Core no <head>. A fonte Geist já vem junto (não precisa de Google Fonts).

    <link rel="stylesheet" href="swcore/swcore.min.css">
  2. 2

    Escreva o HTML normal. Títulos e parágrafos já saem no padrão, sem classe.

    Barbearia do Centro

    Corte, barba e sobrancelha com hora marcada.

    <h3>Barbearia do Centro</h3>
    <p>Corte, barba e sobrancelha com hora marcada.</p>
  3. 3

    Quer mudar? Junte classes curtas. Aqui: rótulo pequeno em maiúsculas na cor da marca + preço grande e grosso.

    Promoção

    R$ 45,00

    <span class="t-pp t-upp ls-ww t-pri fw6">Promoção</span>
    <p class="t-xg fw7 t-txt">R$ 45,00</p>

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. Tamanhos

Sete tamanhos com o mesmo nome curto usado no resto do SW Core (pp, p, m, g, gg, xg, xxg). Cada um já traz o espaço entre linhas certo para aquele tamanho. O texto normal do site é o t-m (17 px).

Atualizado há 2 horas
t-pp — 12 px (legenda, rótulo) <span class="t-pp">Atualizado há 2 horas</span>
Ver todos os serviços
t-p — 14 px (texto de botão, menu) <span class="t-p">Ver todos os serviços</span>
Atendemos de segunda a sábado.
t-m — 17 px (texto normal) <span class="t-m">Atendemos de segunda a sábado.</span>
Chegue 10 minutos antes.
t-g — 19 px (texto de leitura) <span class="t-g">Chegue 10 minutos antes.</span>
Primeira aula grátis
t-gg — 22 px (destaque) <span class="t-gg">Primeira aula grátis</span>
R$ 89
t-xg — 32 px (subtítulo, preço) <span class="t-xg">R$ 89</span>
+500
t-xxg — 48 px (número grande) <span class="t-xxg">+500</span>

2. Títulos (h1 a h6)

As tags <h1> a <h6> já saem com este tamanho, sem classe. Eles crescem sozinhos: menores no celular, maiores no computador. O h6 é o único em maiúsculas e na cor suave (bom para "chapéu" acima de título).

Seu site

h1 — 32 px no celular → 72 px no PC <h1>Seu site</h1>

Nossos serviços

h2 — 28 → 48 px <h2>Nossos serviços</h2>

Corte masculino

h3 — 22 → 34 px <h3>Corte masculino</h3>

Horário de funcionamento

h4 — 19 → 24 px <h4>Horário de funcionamento</h4>
Formas de pagamento
h5 — 16 → 19 px <h5>Formas de pagamento</h5>
Depoimentos
h6 — 14 → 16 px, maiúsculo <h6>Depoimentos</h6>

3. Visual de título em qualquer tag (t-h1 a t-h6)

Às vezes a tag certa para o Google é uma (h3) mas o tamanho que você quer é outro. t-h1…t-h6 dão o tamanho (e o espaço entre letras) de um título a qualquer elemento, sem mudar a tag.

Planos

t-h2 num h3 <h3 class="t-h2">Planos</h3>

Parece um h4

t-h4 num parágrafo <p class="t-h4 t-txt">Parece um h4</p>
Parece um h5
t-h5 num span <span class="t-h5 t-txt">Parece um h5</span>

Seção pequena

t-h6 num h2 <h2 class="t-h6">Seção pequena</h2>

4. Peso (grossura da letra)

De fw1 (100, bem fina) a fw9 (900, bem grossa). A fonte é variável, então todos os pesos são de verdade, não "negrito falso". Também existem os nomes f-xt…f-bk (tabela abaixo) — fazem o mesmo.

Elegante
fw1 — 100 (fininha) <span class="fw1 t-gg t-txt">Elegante</span>
Elegante
fw2 — 200 (padrão do texto) <span class="fw2 t-gg t-txt">Elegante</span>
Elegante
fw3 — 300 <span class="fw3 t-gg t-txt">Elegante</span>
Elegante
fw4 — 400 (padrão dos títulos) <span class="fw4 t-gg t-txt">Elegante</span>
Elegante
fw5 — 500 (padrão do strong) <span class="fw5 t-gg t-txt">Elegante</span>
Elegante
fw6 — 600 <span class="fw6 t-gg t-txt">Elegante</span>
Elegante
fw7 — 700 (negrito) <span class="fw7 t-gg t-txt">Elegante</span>
Elegante
fw8 — 800 <span class="fw8 t-gg t-txt">Elegante</span>
Elegante
fw9 — 900 (bem grossa) <span class="fw9 t-gg t-txt">Elegante</span>

5. Fonte

Seis "vagas" de fonte. Hoje sw-f1 a sw-f3 são a Geist (texto) e sw-f4 a sw-f6 a Geist Mono (letras de mesma largura: código, números, placas). Você pode apontar cada vaga para outra fonte (veja em Tabela de opções).

Agende 0123456789
sw-f1 — Geist (texto) <span class="sw-f1 t-g t-txt">Agende 0123456789</span>
Agende 0123456789
sw-f4 — Geist Mono (código, números) <span class="sw-f4 t-g t-txt">Agende 0123456789</span>

6. Cor do texto

A cor do texto com nome de função. Elas trocam sozinhas no tema claro para continuar fácil de ler.

Resumo do pedido
t-txt — forte (títulos) <span class="t-txt t-g">Resumo do pedido</span>
Entrega em 3 dias
t-mut — suave (padrão do parágrafo) <span class="t-mut t-g">Entrega em 3 dias</span>
Ver cardápio
t-pri — cor da marca <span class="t-pri t-g">Ver cardápio</span>
Novidade
t-sec — secundária <span class="t-sec t-g">Novidade</span>
Arquivado
t-acc — acento neutro <span class="t-acc t-g">Arquivado</span>
Pago
t-suc — sucesso <span class="t-suc t-g">Pago</span>
Vencido
t-err — erro <span class="t-err t-g">Vencido</span>
Pendente
t-ale — alerta <span class="t-ale t-g">Pendente</span>
Em análise
t-inf — informação <span class="t-inf t-g">Em análise</span>
Texto invertido
t-inv — invertido (sobre fundo do tema oposto) <span class="t-inv">Texto invertido</span>

7. Maiúsculas, itálico, sublinhado e riscado

fale conosco
t-upp — TUDO MAIÚSCULO <span class="t-upp t-txt">fale conosco</span>
FALE CONOSCO
t-low — tudo minúsculo <span class="t-low t-txt">FALE CONOSCO</span>
fale conosco agora
t-cap — Primeira Letra Maiúscula <span class="t-cap t-txt">fale conosco agora</span>
"Melhor corte da cidade"
t-ital — itálico <span class="t-ital t-txt">"Melhor corte da cidade"</span>
Política de privacidade
t-uln — sublinhado <span class="t-uln t-txt">Política de privacidade</span>
R$ 120,00
t-rsk — riscado (preço antigo) <span class="t-rsk t-mut">R$ 120,00</span>
t-no-dec — tira o sublinhado <a href="#" class="t-no-dec">Link sem sublinhado</a>

8. Alinhamento

Endereço

t-le — à esquerda <p class="t-le t-txt w-fl mb-0">Endereço</p>

Endereço

t-ct — centralizado <p class="t-ct t-txt w-fl mb-0">Endereço</p>

Endereço

t-ri — à direita <p class="t-ri t-txt w-fl mb-0">Endereço</p>

Texto justificado estica as linhas para as duas margens ficarem retas.

t-ju — justificado <p class="t-ju t-p w-fl mb-0">Texto justificado estica as linhas para as duas margens ficarem retas.</p>

9. Espaço entre linhas

O lh- (de line-height) afasta ou aproxima as linhas de um parágrafo.

Linhas bem juntas uma da outra neste texto.

lh-1 — colado (título grande, número) <p class="lh-1 t-p mb-0">Linhas bem juntas uma da outra neste texto.</p>

Linhas um pouco juntas neste texto aqui.

lh-sn — apertado (títulos) <p class="lh-sn t-p mb-0">Linhas um pouco juntas neste texto aqui.</p>

Linhas no espaço normal de leitura aqui.

lh-bs — normal (leitura) <p class="lh-bs t-p mb-0">Linhas no espaço normal de leitura aqui.</p>

Linhas bem afastadas uma da outra aqui.

lh-lo — arejado <p class="lh-lo t-p mb-0">Linhas bem afastadas uma da outra aqui.</p>

10. Espaço entre letras

O ls- (de letter-spacing) fecha ou abre as letras. Título grande fica melhor fechado; rótulo em maiúsculas fica melhor aberto.

Studio Sol
ls-tt — bem fechado <span class="ls-tt t-gg t-txt">Studio Sol</span>
Studio Sol
ls-t — fechado <span class="ls-t t-gg t-txt">Studio Sol</span>
Studio Sol
ls-n — normal <span class="ls-n t-gg t-txt">Studio Sol</span>
Studio Sol
ls-w — aberto <span class="ls-w t-p t-upp t-txt">Studio Sol</span>
Studio Sol
ls-ww — bem aberto (rótulo) <span class="ls-ww t-p t-upp t-txt">Studio Sol</span>

11. Citação (depoimento)

Classe sw-quote num <blockquote>: linha fina ao lado, texto em itálico e o autor embaixo (<cite> ou <footer> ganham o travessão sozinhos). Acrescente uma cor ou lg para a versão grande com aspas.

Atendimento nota 10.

Carla, cliente
sw-quote — padrão (cor da marca) <blockquote class="sw-quote"><p>Atendimento nota 10.</p><cite>Carla, cliente</cite></blockquote>

Voltarei sempre.

João
sw-quote sec <blockquote class="sw-quote sec"><p>Voltarei sempre.</p><cite>João</cite></blockquote>

Chegou antes do prazo.

Ana
sw-quote suc <blockquote class="sw-quote suc"><p>Chegou antes do prazo.</p><cite>Ana</cite></blockquote>

Fila no sábado.

Pedro
sw-quote ale <blockquote class="sw-quote ale"><p>Fila no sábado.</p><cite>Pedro</cite></blockquote>

Faltou troco.

Rita
sw-quote err <blockquote class="sw-quote err"><p>Faltou troco.</p><cite>Rita</cite></blockquote>

Mudou a cara da minha loja.

Marcos, Loja Sol
sw-quote lg — grande, com aspas <blockquote class="sw-quote lg"><p>Mudou a cara da minha loja.</p><cite>Marcos, Loja Sol</cite></blockquote>

12. Texto longo: cortar e equilibrar

O básico aqui; tudo sobre quebra de linha está na página Quebra de texto.

Rua das Palmeiras, 1234, sala 5 — Centro

truncate — corta numa linha com "…" <p class="truncate t-p w-fl mb-0">Rua das Palmeiras, 1234, sala 5 — Centro</p>

Corte, barba, sobrancelha, pigmentação e hidratação, com produtos profissionais e café por conta da casa.

clamp-2 — para na 2ª linha <p class="clamp-2 t-p w-fl mb-0">Corte, barba, sobrancelha, pigmentação e hidratação, com produtos profissionais e café por conta da casa.</p>

Agende seu horário em poucos cliques

twr-b — linhas equilibradas no título <p class="twr-b t-gg t-txt t-ct w-fl mb-0">Agende seu horário em poucos cliques</p>

Tabela de opções

PalavraO que fazExemplo
Tamanho
t-pp12 px.class="t-pp"
t-p14 px.class="t-p"
t-m17 px — o texto normal (--sw-f-base).class="t-m"
t-g19 px.class="t-g"
t-gg22 px.class="t-gg"
t-xg32 px, letras um pouco fechadas.class="t-xg"
t-xxg48 px, letras fechadas, linhas coladas.class="t-xxg"
Visual de título
h1 / t-h132 → 72 px (cresce com a tela).<span class="t-h1">
h2 / t-h228 → 48 px.
h3 / t-h322 → 34 px.
h4 / t-h419 → 24 px.
h5 / t-h516 → 19 px.
h6 / t-h614 → 16 px. A tag h6 ainda fica maiúscula e suave; a classe t-h6 só dá o tamanho e o espaço entre letras.
Peso
fw1 … fw9Peso 100 a 900, de 100 em 100.class="fw6"
fwb / fwnNegrito (700) / normal (400).class="fwb"
f-xt · f-xlt · f-lt · f-reMesmos pesos por nome: 100 · 200 · 300 · 400.class="f-lt"
f-m · f-sm · f-bd · f-xbd · f-bk500 · 600 · 700 · 800 · 900.class="f-sm"
Fonte
sw-f1 · sw-f2 · sw-f3Geist (lê --sw-f1…--sw-f3).class="sw-f1"
sw-f4 · sw-f5 · sw-f6Geist Mono (lê --sw-f4…--sw-f6).class="sw-f4"
--sw-f1 … --sw-f6Troque no seu CSS para ter fontes diferentes em cada vaga.:root { --sw-f2: "Playfair Display", serif; }
Cor
t-txt · t-mut · t-invForte · suave · invertida.class="t-mut"
t-pri · t-sec · t-accMarca · secundária · acento.class="t-pri"
t-suc · t-err · t-ale · t-infSucesso · erro · alerta · informação.class="t-err"
Forma e alinhamento
t-upp · t-low · t-capMAIÚSCULAS · minúsculas · Primeira Maiúscula.class="t-upp"
t-italItálico.
t-uln · t-rsk · t-no-decSublinhado · riscado · sem sublinhado.
t-le · t-ct · t-ri · t-juEsquerda · centro · direita · justificado.class="t-ct"
Linhas e letras
lh-1 · lh-sn · lh-bs · lh-loEspaço entre linhas: 1 · 1.2 · 1.6 · 1.9.class="lh-lo"
ls-tt · ls-t · ls-n · ls-w · ls-wwEspaço entre letras: -0.04em · -0.02em · 0 · 0.04em · 0.1em.class="ls-ww"
truncate · clamp-1…4 · twr-b · twr-p · wordb-ba · wordb-bwCortar e quebrar texto — ver Quebra de texto.
Citação
sw-quoteCitação com linha na cor da marca.<blockquote class="sw-quote">
sec · suc · ale · errTroca a cor da linha (junto com sw-quote).class="sw-quote suc"
lgVersão grande, sem linha, com aspas.class="sw-quote lg"
Nomes antigos (ainda funcionam)
sw-text-center · sw-text-right · sw-text-leftMesmo que t-ct / t-ri / t-le.
sw-text-mut · sw-text-priMesmo que t-mut / cor principal.

Receitas prontas — usos reais

Situações que aparecem em quase todo site. Copie a que servir.

Topo de página: chapéu + título + frase Ao vivo
Barbearia no Centro

Seu corte do jeito que você gosta

Hora marcada, sem fila. Terça a sábado, das 9h às 20h.

<header class="t-ct">
  <span class="t-pp t-upp ls-ww t-pri fw6">Barbearia no Centro</span>
  <h1 class="t-h2 twr-b">Seu corte do jeito que você gosta</h1>
  <p class="t-g">Hora marcada, sem fila. Terça a sábado, das 9h às 20h.</p>
</header>
Preço de produto com desconto Ao vivo
R$ 149,90

R$ 99,90

Economize 33%
<span class="t-p t-rsk t-mut">R$ 149,90</span>
<p class="t-xg fw7 t-txt lh-1">R$ 99,90</p>
<span class="t-p t-suc fw5">Economize 33%</span>
Depoimento de cliente Ao vivo

Em uma semana o site novo já trouxe três orçamentos pelo WhatsApp.

Juliana Prado, Doces da Ju
<blockquote class="sw-quote lg">
  <p>Em uma semana o site novo já trouxe três orçamentos pelo WhatsApp.</p>
  <footer>Juliana Prado, Doces da Ju</footer>
</blockquote>
Número de destaque (painel, "sobre nós") Ao vivo

+500

clientes atendidos

12

anos de estrada
<div class="flx gap-gg">
  <div>
    <p class="t-xxg t-pri fw6">+500</p>
    <span class="t-pp t-upp ls-w">clientes atendidos</span>
  </div>
  <div>
    <p class="t-xxg t-pri fw6">12</p>
    <span class="t-pp t-upp ls-w">anos de estrada</span>
  </div>
</div>
Linha de status numa lista do painel Ao vivo
Pedido #1042 · MariaPago
Pedido #1043 · PauloAguardando
<div class="flx j-sb alc gap-m bd-b bd-mut py-p">
  <span class="t-txt">Pedido #1042 · Maria</span>
  <span class="t-pp t-upp ls-w fw6 t-suc">Pago</span>
</div>
<div class="flx j-sb alc gap-m py-p">
  <span class="t-txt">Pedido #1043 · Paulo</span>
  <span class="t-pp t-upp ls-w fw6 t-ale">Aguardando</span>
</div>

Precisa de quê

  • swcore.min.css — fontes, títulos e todas as classes desta página.

Cuidados — erros comuns

  • Não escolha a tag pelo tamanho: use h1 uma vez por página (o título principal), depois h2, h3… Se o tamanho não servir, mude com t-h*, não trocando a tag.
  • Texto do site parece "fino demais"? É o padrão (peso 200). Quer mais grosso no site todo? No seu CSS: body { font-weight: 300; }. Só num trecho: fw4.
  • t-pri é cor de texto; para fundo é bg-pri (página Cores semânticas).
  • Os tamanhos t-pp…t-xxg são fixos; só os títulos (h1–h6 e t-h1–t-h6) crescem com a tela. Para um número enorme no computador que caiba no celular, prefira t-h1.
  • Tudo aqui usa a medida "rem" do SW Core (1rem = 10 px). Se o seu CSS mudar o font-size do <html>, todos os tamanhos mudam junto. Para aumentar tudo, use --sw-type-scale (página Tema e tokens).

O que ele não faz

  • Só vem com Geist e Geist Mono. Outra fonte (Google Fonts ou arquivo seu) você carrega e aponta em --sw-f-san, --sw-f-hd ou --sw-f1…--sw-f6.
  • As classes de tamanho não têm versão por tela (não existe t-g-m): o tamanho que muda com a tela é o dos títulos.