SW Core
SW Core / CSS / Cores semânticas

Cores semânticas CSS

Cor com nome de função — bg-suc, t-err, bd-pri — que já sabe a cor do texto por cima e muda sozinha no tema claro/escuro.

O que é

Em vez de escolher "verde #22c55e", você escolhe o significado: suc (deu certo), err (erro), ale (atenção), inf (informação), pri (cor da marca), sec (secundária), acc (acento neutro). Depois diz onde a cor vai: bg- no fundo, t- no texto, bd- na borda. Assim bg-err é "fundo vermelho de erro" e t-suc é "texto verde de sucesso". Se um dia a marca mudar de cor, tudo que usa pri muda junto.

É só CSS. Cada classe lê uma variável do Tema (--sw-pri, --sw-suc…). O fundo cheio (bg-pri) já coloca o texto em branco ou quase-preto, o que for mais legível. O texto (t-pri) usa uma versão da cor que escurece no tema claro para continuar legível. Fundo, card e borda neutros (bg-base, bg-sur, bd-mut) trocam de valor sozinhos quando o tema troca. Precisa de um tom fixo e específico (azul 7, verde 11)? Isso é a Paleta estendida.

Quando usar

  • Aviso na tela ("Pagamento aprovado", "Campo obrigatório"): fundo suave + texto da cor — bg-suc-soft t-suc.
  • Faixa ou selo de destaque ("Promoção", "Novo"): fundo cheio — bg-pri, bg-err.
  • Card, painel, caixa: bg-sur (superfície) com bd (borda neutra).
  • Destacar um card escolhido (plano mais vendido): borda da marca — bd-2 bd-pri.
  • Botão, banner ou selo com brilho: cor + camada de degradê — bg-pri grad.

Comece aqui

  1. 1

    Coloque o SW Core no <head>. Todas as classes desta página estão no arquivo principal.

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

    Escolha o lugar (bg- fundo, t- texto, bd- borda) + o significado (pri, suc, err…).

    Pago Vencido Plano escolhido
    <span class="bg-suc">Pago</span>
    <span class="t-err">Vencido</span>
    <span class="bd-2 bd-pri">Plano escolhido</span>
  3. 3

    Quer mais discreto? -soft dá um fundo clarinho da cor; junte com o texto da mesma cor.

    Pedido confirmado
    <span class="bg-suc-soft t-suc">Pedido confirmado</span>

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. Fundo cheio (bg-)

Fundo na cor, com o texto por cima já no contraste certo (branco nas cores médias, quase-preto nas claras). As cores escuras ficam 15% mais fechadas para o texto branco ler bem.

Agendar
bg-pri — marca <div class="bg-pri p-m r-p t-p w-fl t-ct">Agendar</div>
Novidade
bg-sec — secundária <div class="bg-sec p-m r-p t-p w-fl t-ct">Novidade</div>
Arquivado
bg-acc — acento neutro <div class="bg-acc p-m r-p t-p w-fl t-ct">Arquivado</div>
Aprovado
bg-suc — sucesso <div class="bg-suc p-m r-p t-p w-fl t-ct">Aprovado</div>
Recusado
bg-err — erro <div class="bg-err p-m r-p t-p w-fl t-ct">Recusado</div>
Pendente
bg-ale — alerta <div class="bg-ale p-m r-p t-p w-fl t-ct">Pendente</div>
Em análise
bg-inf — informação <div class="bg-inf p-m r-p t-p w-fl t-ct">Em análise</div>

2. Fundo suave (bg-…-soft)

Um véu de 14% da cor sobre a superfície: discreto, bom para aviso, selo e linha de tabela. O texto sai na própria cor; para ler melhor, junte t- da mesma cor.

Seu plano
bg-pri-soft t-pri <div class="bg-pri-soft t-pri p-m r-p t-p w-fl t-ct">Seu plano</div>
Beta
bg-sec-soft t-sec <div class="bg-sec-soft t-sec p-m r-p t-p w-fl t-ct">Beta</div>
Entregue
bg-suc-soft t-suc <div class="bg-suc-soft t-suc p-m r-p t-p w-fl t-ct">Entregue</div>
Estoque zerado
bg-err-soft t-err <div class="bg-err-soft t-err p-m r-p t-p w-fl t-ct">Estoque zerado</div>
Vence amanhã
bg-ale-soft t-ale <div class="bg-ale-soft t-ale p-m r-p t-p w-fl t-ct">Vence amanhã</div>
Dica
bg-inf-soft t-inf <div class="bg-inf-soft t-inf p-m r-p t-p w-fl t-ct">Dica</div>

3. Texto (t-)

A cor só na letra. Detalhes de tamanho e peso estão em Tipografia.

Ver serviços
t-pri <span class="t-pri t-g">Ver serviços</span>
Planos
t-sec <span class="t-sec t-g">Planos</span>
Rascunho
t-acc <span class="t-acc t-g">Rascunho</span>
Em dia
t-suc <span class="t-suc t-g">Em dia</span>
Atrasado
t-err <span class="t-err t-g">Atrasado</span>
Atenção
t-ale <span class="t-ale t-g">Atenção</span>
Saiba mais
t-inf <span class="t-inf t-g">Saiba mais</span>
Título
t-txt — forte <span class="t-txt t-g">Título</span>
Legenda
t-mut — suave <span class="t-mut t-g">Legenda</span>

4. Borda (bd-)

A classe bd- + cor só pinta a borda: ela precisa de uma borda existindo, então junte com uma largura (bd, bd-2… da página Bordas).

Mais vendido
bd-2 bd-pri <div class="bd-2 bd-pri p-m r-p t-p w-fl t-ct">Mais vendido</div>
Premium
bd-2 bd-sec <div class="bd-2 bd-sec p-m r-p t-p w-fl t-ct">Premium</div>
Neutro
bd-2 bd-acc <div class="bd-2 bd-acc p-m r-p t-p w-fl t-ct">Neutro</div>
Válido
bd-2 bd-suc <div class="bd-2 bd-suc p-m r-p t-p w-fl t-ct">Válido</div>
Inválido
bd-2 bd-err <div class="bd-2 bd-err p-m r-p t-p w-fl t-ct">Inválido</div>
Revisar
bd-2 bd-ale <div class="bd-2 bd-ale p-m r-p t-p w-fl t-ct">Revisar</div>
Info
bd-2 bd-inf <div class="bd-2 bd-inf p-m r-p t-p w-fl t-ct">Info</div>
Padrão
bd-2 bd-mut — borda neutra padrão <div class="bd-2 bd-mut p-m r-p t-p w-fl t-ct">Padrão</div>
Alternativa
bd-2 bd-alt — borda neutra alternativa <div class="bd-2 bd-alt p-m r-p t-p w-fl t-ct">Alternativa</div>

5. Fundos neutros (mudam com o tema)

Os tons de "chão" do site. Troque o tema da página e veja todos acompanharem.

Página
bg-base — fundo da página <div class="bg-base bd p-m r-p t-p w-fl t-ct">Página</div>
Nível 1
bg-1 — um tom acima <div class="bg-1 bd p-m r-p t-p w-fl t-ct">Nível 1</div>
Nível 2
bg-2 — dois tons acima <div class="bg-2 bd p-m r-p t-p w-fl t-ct">Nível 2</div>
Nível 3
bg-3 — três tons acima <div class="bg-3 bd p-m r-p t-p w-fl t-ct">Nível 3</div>
Card
bg-sur — superfície (card) <div class="bg-sur bd p-m r-p t-p w-fl t-ct">Card</div>
Card em foco
bg-sur-h — superfície com mouse em cima <div class="bg-sur-h bd p-m r-p t-p w-fl t-ct">Card em foco</div>

6. Degradê por cima da cor

O degradê é uma camada que você põe por cima de qualquer fundo: cor + camada. Troque a cor e a camada continua igual.

grad
grad — brilho de cima <div class="bg-pri grad p-m r-p t-p w-fl t-ct">grad</div>
grad-diag
grad-diag — claro→escuro na diagonal <div class="bg-sec grad-diag p-m r-p t-p w-fl t-ct">grad-diag</div>
grad-spot
grad-spot — foco de luz no canto <div class="bg-suc grad-spot p-m r-p t-p w-fl t-ct">grad-spot</div>
grad-glass
grad-glass — reflexo de vidro <div class="bg-err grad-glass p-m r-p t-p w-fl t-ct">grad-glass</div>
grad-deep
grad-deep — escurece para baixo <div class="bg-inf grad-deep p-m r-p t-p w-fl t-ct">grad-deep</div>
grad-tone
grad-tone — dois tons da própria cor <div class="bg-pri grad-tone p-m r-p t-p w-fl t-ct">grad-tone</div>
grad-tone
bg-suc grad-tone — tons do verde <div class="bg-suc grad-tone p-m r-p t-p w-fl t-ct">grad-tone</div>

7. Degradê pronto (bg-g-)

Atalho com cor + degradê numa classe só — é o mesmo fundo dos botões cheios.

Marca
bg-g-pri <div class="bg-g-pri p-m r-p t-p w-fl t-ct">Marca</div>
Secundária
bg-g-sec <div class="bg-g-sec p-m r-p t-p w-fl t-ct">Secundária</div>
Sucesso
bg-g-suc <div class="bg-g-suc p-m r-p t-p w-fl t-ct">Sucesso</div>
Erro
bg-g-err <div class="bg-g-err p-m r-p t-p w-fl t-ct">Erro</div>
Alerta
bg-g-ale <div class="bg-g-ale p-m r-p t-p w-fl t-ct">Alerta</div>
Info
bg-g-inf <div class="bg-g-inf p-m r-p t-p w-fl t-ct">Info</div>
Escuro
bg-g-drk — escuro <div class="bg-g-drk p-m r-p t-p w-fl t-ct">Escuro</div>
Claro
bg-g-lit — claro <div class="bg-g-lit p-m r-p t-p w-fl t-ct">Claro</div>

8. Tons que invertem com o tema (sw-bg…)

Sete degraus de fundo com o texto certo embutido. Os com - ficam próximos do fundo da página; os com _ são o oposto do tema (escuro no tema claro, claro no escuro) — bom para uma faixa de contraste.

sw-bg
sw-bg <div class="sw-bg bd p-m r-p t-p w-fl t-ct">sw-bg</div>
sw-bg-
sw-bg- <div class="sw-bg- bd p-m r-p t-p w-fl t-ct">sw-bg-</div>
sw-bg--
sw-bg-- <div class="sw-bg-- bd p-m r-p t-p w-fl t-ct">sw-bg--</div>
sw-bg---
sw-bg--- <div class="sw-bg--- bd p-m r-p t-p w-fl t-ct">sw-bg---</div>
sw-bg_
sw-bg_ — oposto <div class="sw-bg_ p-m r-p t-p w-fl t-ct">sw-bg_</div>
sw-bg__
sw-bg__ — oposto, mais forte <div class="sw-bg__ p-m r-p t-p w-fl t-ct">sw-bg__</div>
sw-bg___
sw-bg___ — branco/preto puro <div class="sw-bg___ p-m r-p t-p w-fl t-ct">sw-bg___</div>

Tabela de opções

PalavraO que fazExemplo
Significados (a parte final da classe)
priCor da marca (--sw-pri).bg-pri · t-pri · bd-pri
secSecundária (--sw-sec).bg-sec
accAcento neutro (--sw-acc). Não tem versão -soft.bg-acc
sucSucesso, verde.bg-suc
errErro, vermelho.bg-err
aleAlerta, âmbar.bg-ale
infInformação, azul-claro.bg-inf
Fundo
bg-{cor}Fundo cheio + texto legível automático.class="bg-err"
bg-{cor}-softFundo suave (14% da cor). pri · sec · suc · err · ale · inf.class="bg-ale-soft t-ale"
bg-base · bg-1 · bg-2 · bg-3Fundo da página e 1, 2, 3 tons acima.class="bg-2"
bg-sur · bg-sur-hSuperfície (card) e superfície em foco.class="bg-sur"
Texto
t-{cor}Texto na cor (versão legível no tema claro).class="t-suc"
t-txt · t-mut · t-invForte · suave · invertido.class="t-mut"
Borda (precisa de largura: bd, bd-1…bd-5)
bd-{cor}Pinta a borda na cor. pri · sec · acc · suc · err · ale · inf.class="bd-2 bd-pri"
bd-mut / bd-baseBorda neutra padrão (--sw-bor).class="bd-1 bd-mut"
bd-altBorda neutra alternativa (--sw-border).class="bd-1 bd-alt"
Degradê (camada por cima do fundo)
gradBrilho de cima para baixo.class="bg-pri grad"
grad-diagClaro no canto de cima → escuro embaixo, na diagonal.
grad-spotFoco de luz redondo no canto superior esquerdo.
grad-glassFaixa de reflexo, como vidro.
grad-deepEscurece bastante para baixo (bom com texto embaixo).
grad-toneDois tons da própria cor do elemento (claro → escuro), sem véu branco. Junto de bg-suc sai verde, de bg-err vermelho; sem cor, a principal.class="bg-suc grad-tone"
bg-g-pri · sec · suc · err · ale · inf · drk · litCor + degradê prontos numa classe.class="bg-g-pri"
Grupos tonais (dia/noite)
sw-bg · sw-bg- · sw-bg-- · sw-bg---Fundo do tema e 3 tons acima, texto normal (também como Bsw-bg…).class="sw-bg--"
sw-bg_ · sw-bg__ · sw-bg___Fundo oposto ao tema, texto invertido.class="sw-bg_"
sw-bl · sw-bl- … sw-bl___Cor de borda suave em 7 tons (precisa de largura de borda).class="bd-1 sw-bl-"
sw-border · sw-border- · sw-border-- · sw-border_Cor de borda estrutural em 4 tons.
Tsw-color · Tsw-color- … Tsw-color___Cor de texto em 7 tons (do mais forte ao oposto).class="Tsw-color--"
Tsw-link · Tsw-link- · Tsw-link-- · Tsw-link_Cor de link (com hover em Tsw-link).
Tsw-hover · Tsw-hover- · Tsw-hover-- · Tsw-hover_Cor de "mouse em cima" como cor de texto.
sw-shadow · sw-shadow- · sw-shadow-- · sw-shadow--- · sw-shadow_Mesmas sombras da escala sha-* (ver Sombras).
No seu CSS
var(--sw-pri) … var(--sw-inf)Cor de preenchimento de cada significado.color: var(--sw-err);
var(--sw-pri-txt) … var(--sw-inf-txt)Versão para texto (legível no tema claro).color: var(--sw-suc-txt);
var(--sw-bg) · var(--sw-sur) · var(--sw-bor)Fundo, superfície, borda neutros.background: var(--sw-sur);

Receitas prontas — usos reais

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

Aviso de formulário (sucesso e erro) Ao vivo
Mensagem enviada! Respondemos em até 1 hora.
Informe um e-mail válido.
<div class="bg-suc-soft t-suc bd-l bd-suc p-m r-p">
  <i class="swi-check-circle"></i> Mensagem enviada! Respondemos em até 1 hora.
</div>
<div class="bg-err-soft t-err bd-l bd-err p-m r-p">
  <i class="swi-error-circle"></i> Informe um e-mail válido.
</div>
Plano em destaque numa tabela de preços Ao vivo
Básico

R$ 49

Mais vendido

Profissional

R$ 99

<div class="l l-2 gap-m">
  <div class="bg-sur bd p-g r-m">
    <span class="t-mut">Básico</span>
    <p class="t-xg t-txt">R$ 49</p>
  </div>
  <div class="bg-sur bd-2 bd-pri p-g r-m">
    <span class="bg-pri p-pp px-p r-p t-pp t-upp">Mais vendido</span>
    <p class="t-mut mt-p">Profissional</p>
    <p class="t-xg t-txt">R$ 99</p>
  </div>
</div>
Status numa tabela de pedidos Ao vivo
PagoAguardandoCanceladoEnviado
<span class="bg-suc-soft t-suc px-p py-pp r-p t-pp fw6">Pago</span>
<span class="bg-ale-soft t-ale px-p py-pp r-p t-pp fw6">Aguardando</span>
<span class="bg-err-soft t-err px-p py-pp r-p t-pp fw6">Cancelado</span>
<span class="bg-inf-soft t-inf px-p py-pp r-p t-pp fw6">Enviado</span>
Faixa de chamada com brilho Ao vivo
Primeira consulta com 20% de descontoQuero agendar
<div class="bg-pri grad-diag p-g r-m flx j-sb alc gap-m f-wr">
  <strong>Primeira consulta com 20% de desconto</strong>
  <a href="/agendar" sw-btn="lit">Quero agendar</a>
</div>
Usar a cor no seu próprio CSS Ao vivo
Frete grátis
<span class="selo-frete">Frete grátis</span>

<style>
  .selo-frete {
    color: var(--sw-suc-txt);             /* texto legível no claro e no escuro */
    border: 1px solid var(--sw-suc);
    border-radius: var(--sw-r-p);
    padding: var(--sw-s-pp) var(--sw-s-p);
  }
</style>

Precisa de quê

  • swcore.min.css — todas as classes desta página.
  • swcore.compl.min.css — só se usar os ícones swi-* das receitas.

Cuidados — erros comuns

  • bd-pri sozinho não mostra borda nenhuma: ele só dá a cor. Junte com bd, bd-1…bd-5.
  • Para texto colorido use t-, não bg-: bg-suc pinta o fundo inteiro.
  • As classes de fundo mandam na cor do texto (vem com !important). Para outra cor de letra por cima, ponha o texto num elemento filho com t-.
  • Não use cor de aviso como enfeite: se tudo for vermelho, o erro de verdade não chama atenção. suc/err/ale/inf são para estado; enfeite é pri/sec.
  • grad sozinho não tem cor: ele é uma camada. Precisa de um fundo embaixo (bg-pri grad).

O que ele não faz

  • Só existem essas 7 cores com significado. Tom específico e fixo (azul 3, verde 12) é a Paleta estendida.
  • A versão -soft não existe para acc.