SW Core
SW Core / CSS / Badge

Badge CSS

Selo pequeno para contagem e status — "3", "Novo", "Pago", um pontinho piscando, ou flutuando no canto de um botão.

O que é

É o "9" vermelho em cima do sininho de avisos, o "NOVO" ao lado de um produto, o "PAGO" numa tabela de pedidos. Você escreve <span sw-badge> com o texto e acrescenta palavras para cor, estilo e tamanho: sw-badge="suc", sw-badge="out pri", sw-badge="err fl". O texto sai sempre em letras maiúsculas, com fonte de largura fixa.

É só CSS — não precisa de JavaScript. As cores seguem as do seu site e funcionam no tema claro e no escuro. Para o selo flutuar no canto de outro elemento (o número em cima do sininho), o elemento de fora precisa da classe bdg-wrap.

Quando usar

  • Contador de avisos, mensagens ou itens no carrinho (err fl no canto do botão).
  • Status numa tabela ou lista: Pago, Pendente, Cancelado.
  • Destaque de novidade: "Novo", "Beta", "-20%".
  • Online / offline ao lado de um nome (dot).
  • Para etiqueta que a pessoa remove com ×, use o Chip.

Comece aqui

  1. 1

    Coloque o SW Core no <head>. O badge é só CSS.

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

    Escreva o selo com a cor.

    Pago
    <span sw-badge="suc">Pago</span>
  3. 3

    Para o selo ficar no canto de um botão, envolva os dois com class="bdg-wrap" e use fl:

    9
    <span class="bdg-wrap">
      <button sw-btn="ghost rnd" aria-label="Avisos"><i class="swi-bell"></i></button>
      <span sw-badge="err fl pp">9</span>
    </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. Cores

Sem cor, o selo fica neutro (transparente com borda fina). As cores são chapadas, com texto branco.

Rascunho
Neutro (sem cor) <span sw-badge>Rascunho</span>
Novo
pri — primária <span sw-badge="pri">Novo</span>
Beta
sec — secundária <span sw-badge="sec">Beta</span>
Pago
suc — verde <span sw-badge="suc">Pago</span>
Pendente
ale — amarelo <span sw-badge="ale">Pendente</span>
Cancelado
err — vermelho <span sw-badge="err">Cancelado</span>
Enviado
inf — azul <span sw-badge="inf">Enviado</span>
Arquivado
drk — escuro/discreto <span sw-badge="drk">Arquivado</span>

2. Contorno (out)

Com out o selo fica só com a borda e o texto na cor. Sempre junto com uma cor.

Novo
out pri <span sw-badge="out pri">Novo</span>
Beta
out sec <span sw-badge="out sec">Beta</span>
Ativo
out suc <span sw-badge="out suc">Ativo</span>
Revisar
out ale <span sw-badge="out ale">Revisar</span>
Vencido
out err <span sw-badge="out err">Vencido</span>
Info
out inf <span sw-badge="out inf">Info</span>

3. Tamanhos

Seis tamanhos, do menor ao maior.

-20%
pp <span sw-badge="pri pp">-20%</span>
-20%
p <span sw-badge="pri p">-20%</span>
-20%
m <span sw-badge="pri m">-20%</span>
-20%
g <span sw-badge="pri g">-20%</span>
-20%
gg <span sw-badge="pri gg">-20%</span>
-20%
xg <span sw-badge="pri xg">-20%</span>

4. Pontinho de status (dot)

Com dot o selo vira só um pontinho que pulsa, sem texto. Escreva sempre uma cor junto.

Online
dot suc — online <span class="flx alc gap-2"><span sw-badge="dot suc"></span> Online</span>
Ausente
dot ale — ausente <span class="flx alc gap-2"><span sw-badge="dot ale"></span> Ausente</span>
Ocupado
dot err — ocupado <span class="flx alc gap-2"><span sw-badge="dot err"></span> Ocupado</span>
Em análise
dot inf <span class="flx alc gap-2"><span sw-badge="dot inf"></span> Em análise</span>
Ao vivo
dot pri <span class="flx alc gap-2"><span sw-badge="dot pri"></span> Ao vivo</span>
Agendado
dot sec <span class="flx alc gap-2"><span sw-badge="dot sec"></span> Agendado</span>

5. Flutuando no canto (fl)

Com fl o selo sobe para o canto de cima, à direita, do elemento que tem class="bdg-wrap". Serve em botão, ícone ou avatar.

3
Número no botão com texto <span class="bdg-wrap"> <button sw-btn="out"><i class="swi-cart"></i> Carrinho</button> <span sw-badge="err fl pp">3</span> </span>
12
Número no ícone redondo <span class="bdg-wrap"> <button sw-btn="ghost rnd" aria-label="Mensagens"><i class="swi-envelope"></i></button> <span sw-badge="pri fl pp">12</span> </span>
Pontinho no ícone (dot fl) <span class="bdg-wrap"> <button sw-btn="ghost rnd" aria-label="Avisos novos"><i class="swi-bell"></i></button> <span sw-badge="dot err fl"></span> </span>
MR
Pontinho no avatar <span class="bdg-wrap"> <span sw-avt="g">MR</span> <span sw-badge="dot suc fl"></span> </span>

Tabela de opções

PalavraO que fazExemplo
Cor
(nenhuma)Neutro: transparente com borda fina e texto apagado.sw-badge
priPrimária.sw-badge="pri"
secSecundária.sw-badge="sec"
sucVerde.sw-badge="suc"
aleAmarelo.sw-badge="ale"
errVermelho.sw-badge="err"
infAzul.sw-badge="inf"
drkEscuro/discreto (inverte com o tema).sw-badge="drk"
Estilo
outSó contorno, texto na cor. Use com pri, sec, suc, ale, err ou inf.sw-badge="out suc"
dotSó um pontinho pulsando, sem texto.sw-badge="dot suc"
Tamanho
ppMenor de todos (bom para contador em cima de ícone).sw-badge="pp"
pPequeno (quase igual ao padrão, um pouco mais baixo).sw-badge="p"
mMédio.sw-badge="m"
gGrande.sw-badge="g"
ggMuito grande.sw-badge="gg"
xgExtra grande.sw-badge="xg"
Posição
flFlutua no canto de cima, à direita, do pai com class="bdg-wrap".sw-badge="err fl"
bdg-wrapClasse no elemento de fora: é a referência do fl.<span class="bdg-wrap">…</span>

Receitas prontas — usos reais

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

Topo da loja: carrinho com quantidade Ao vivo
Entrar 2
<nav class="flx j-en alc gap-3">
  <a href="/entrar" sw-btn="ghost">Entrar</a>
  <span class="bdg-wrap">
    <a href="/carrinho" sw-btn="pri rnd" aria-label="Carrinho: 2 itens"><i class="swi-cart"></i></a>
    <span sw-badge="err fl pp">2</span>
  </span>
</nav>
Painel: status dos pedidos Ao vivo
#1042 · Ana NunesPago
#1043 · Bruno LimaPendente
#1044 · Carla MeloEnviado
#1045 · Diego ReisCancelado
<div class="flx f-cl gap-2">
  <div class="flx j-sb alc gap-3"><span>#1042 · Ana Nunes</span><span sw-badge="suc">Pago</span></div>
  <div class="flx j-sb alc gap-3"><span>#1043 · Bruno Lima</span><span sw-badge="ale">Pendente</span></div>
  <div class="flx j-sb alc gap-3"><span>#1044 · Carla Melo</span><span sw-badge="inf">Enviado</span></div>
  <div class="flx j-sb alc gap-3"><span>#1045 · Diego Reis</span><span sw-badge="out err">Cancelado</span></div>
</div>
Produto: selo de desconto e novidade Ao vivo
Tênis Corrida Pro Novo -20%
<div class="flx alc gap-2">
  <strong>Tênis Corrida Pro</strong>
  <span sw-badge="pri pp">Novo</span>
  <span sw-badge="suc pp">-20%</span>
</div>
Menu lateral: contador ao lado do item Ao vivo
<div class="flx f-cl gap-2">
  <a href="#" class="flx j-sb alc gap-3"><span><i class="swi-envelope"></i> Mensagens</span><span sw-badge="pri">12</span></a>
  <a href="#" class="flx j-sb alc gap-3"><span><i class="swi-cart"></i> Pedidos</span><span sw-badge="err">3</span></a>
  <a href="#" class="flx j-sb alc gap-3"><span><i class="swi-user"></i> Clientes</span><span sw-badge>248</span></a>
</div>

Precisa de quê

  • swcore.min.css.
  • swcore.compl.min.css — só se usar ícone swi-* junto.

Cuidados — erros comuns

  • fl sem o pai class="bdg-wrap": o selo voa para o canto de algum outro bloco da página (ou da própria página).
  • bdg-wrap é classe; sw-badge é atributo. Não troque.
  • dot sem cor fica quase invisível no tema claro. Escreva sempre a cor: sw-badge="dot suc".
  • Contador sozinho em cima de um ícone não diz nada para quem usa leitor de tela: coloque a informação no aria-label do botão ("Carrinho: 2 itens").
  • Uma palavra de cada grupo: duas cores (suc err) brigam e vale a que vem por último no CSS.

O que ele não faz

  • out não existe para drk: com out drk o texto fica na cor do fundo e some.
  • O texto é sempre em maiúsculas; para minúsculas, use o Chip.
  • fl só posiciona no canto de cima à direita.
  • Não conta nada sozinho: o número é você que escreve (ou troca por JavaScript).