Avatar CSS
A bolinha com a foto ou as iniciais da pessoa — cinco tamanhos, cores, pontinho de "online" e pilhas de rostos que se abrem ao passar o mouse.
O que é
É o círculo com a foto do usuário no topo do painel, ao lado de um comentário, numa lista de equipe. Sem foto, ele mostra as iniciais ("BR") sobre um degradê colorido. Você escreve <span sw-avt> com as iniciais (ou uma <img> dentro) e acrescenta palavras para tamanho, cor, formato e status: sw-avt="g suc onl".
É só CSS — não precisa de JavaScript. A foto é recortada no formato do avatar sozinha, em qualquer tamanho. Todo avatar ganha um contorno da cor do fundo da página, para se destacar quando fica em cima de outro. O pontinho de status pisca devagar (igual em todo o SW Core).
Quando usar
- Menu do usuário no topo do site ou do painel.
- Comentários e depoimentos: rosto + nome.
- Quem está online num chat ou atendimento (
onl,bsy,away). - Equipe de um projeto ou participantes de um evento: pilha de rostos com "+5".
Comece aqui
-
1
Coloque o SW Core no
<head>. O avatar é só CSS.<link rel="stylesheet" href="swcore/swcore.min.css"> -
2
Com iniciais: escreva as letras dentro.
BR<span sw-avt>BR</span> -
3
Com foto: coloque a
<img>dentro. Tamanho grande + pontinho de online:
<span sw-avt="g onl"><img src="beatriz.webp" alt="Beatriz Rocha"></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. Tamanhos
Cinco tamanhos. Sem palavra de tamanho ele tem 40px.
<span sw-avt="pp">BR</span>
<span sw-avt="p">BR</span>
<span sw-avt>BR</span>
<span sw-avt="g">BR</span>
<span sw-avt="gg">BR</span>
2. Cores (quando não tem foto)
O fundo das iniciais é um degradê. Sem palavra de cor, ele usa a cor primária do seu site. Com foto, a cor não aparece.
<span sw-avt="g">AN</span>
<span sw-avt="g sec">BR</span>
<span sw-avt="g suc">CM</span>
<span sw-avt="g ale">DL</span>
<span sw-avt="g err">EF</span>
<span sw-avt="g inf">GS</span>
3. Formato e foto
Redondo por padrão. sqr deixa quadrado com canto discreto (bom para logo de empresa). A foto se recorta sozinha no formato. No código, troque o src pela sua foto.

<span sw-avt="g"><img src="beatriz.webp" alt="Beatriz Rocha"></span>

<span sw-avt="g sqr"><img src="logo-loja.webp" alt="Loja Doces da Bia"></span>
<span sw-avt="g sqr suc">DB</span>
4. Status (pontinho no canto)
Um pontinho no canto de baixo mostra se a pessoa está disponível. Os três coloridos piscam devagar.
<span sw-avt="g onl">AN</span>
<span sw-avt="g bsy">BR</span>
<span sw-avt="g away">CM</span>
<span sw-avt="g off">DL</span>
5. Pilha de avatares (sw-avt-grp)
Coloque vários avatares dentro de <div sw-avt-grp>: eles se sobrepõem. Passe o mouse — a pilha se abre. O último pode ser o "+N" com a classe sw-avt-grp-more.
<div sw-avt-grp>
<span sw-avt>AN</span>
<span sw-avt="sec">BR</span>
<span sw-avt="suc">CM</span>
<span sw-avt="ale">DL</span>
<span class="sw-avt-grp-more">+5</span>
</div>
+12
<div sw-avt-grp>
<span sw-avt><img src="ana.webp" alt="Ana"></span>
<span sw-avt><img src="bruno.webp" alt="Bruno"></span>
<span sw-avt><img src="carla.webp" alt="Carla"></span>
<span class="sw-avt-grp-more">+12</span>
</div>
6. Pilha "presença ao vivo" (sw-presence)
Outra pilha, mais animada: ao passar o mouse os rostos se espalham em leque. Aqui cada pessoa é um <span> simples (sem sw-avt): com <img> dentro vira foto; vazio, ganha uma cor. class="is-online" põe o pontinho verde.
<span sw-presence aria-label="3 pessoas online">
<span></span>
<span></span>
<span class="is-online"></span>
<span class="sw-presence-more">+3</span>
</span>
+8
<span sw-presence aria-label="Equipe de atendimento">
<span><img src="ana.webp" alt=""></span>
<span><img src="bruno.webp" alt=""></span>
<span class="is-online"><img src="carla.webp" alt=""></span>
<span class="sw-presence-more">+8</span>
</span>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| Tamanho | ||
pp | 24px. | sw-avt="pp" |
p | 32px. | sw-avt="p" |
(nenhum) | 40px — o padrão. | sw-avt |
g | 56px. | sw-avt="g" |
gg | 72px. | sw-avt="gg" |
| Cor do fundo (sem foto) | ||
(nenhuma) | Degradê da cor primária. | sw-avt |
sec | Secundária. | sw-avt="sec" |
suc | Verde. | sw-avt="suc" |
ale | Amarelo. | sw-avt="ale" |
err | Vermelho. | sw-avt="err" |
inf | Azul. | sw-avt="inf" |
| Formato | ||
(nenhum) | Redondo. | sw-avt |
sqr | Quadrado com canto discreto. | sw-avt="sqr" |
| Status | ||
onl | Pontinho verde piscando (online). | sw-avt="onl" |
bsy | Pontinho vermelho piscando (ocupado). | sw-avt="bsy" |
away | Pontinho amarelo piscando (ausente). | sw-avt="away" |
off | Pontinho cinza parado (offline). | sw-avt="off" |
| Pilhas | ||
sw-avt-grp | Atributo na <div> que junta vários sw-avt sobrepostos; abre ao passar o mouse. | <div sw-avt-grp>…</div> |
sw-avt-grp-more | Classe do último círculo "+N" dentro do sw-avt-grp. | <span class="sw-avt-grp-more">+5</span> |
sw-presence | Pilha em leque; cada pessoa é um <span> (com ou sem <img>). | <span sw-presence>…</span> |
is-online | Classe num <span> do sw-presence: pontinho verde. | <span class="is-online"> |
sw-presence-more | Classe do último "+N" do sw-presence. | <span class="sw-presence-more">+3</span> |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
Ótimo artigo! Apliquei as dicas e minha página ficou bem mais rápida.
<div class="flx gap-3">
<span sw-avt="p sec">CM</span>
<div>
<strong>Carlos Melo</strong> <span class="t-mut t-pp">· há 2 horas</span>
<p>Ótimo artigo! Apliquei as dicas e minha página ficou bem mais rápida.</p>
</div>
</div>
<div class="flx f-cl gap-3">
<div class="flx alc gap-3"><span sw-avt="onl">AN</span> Ana — <span class="t-mut">disponível</span></div>
<div class="flx alc gap-3"><span sw-avt="bsy sec">BR</span> Bruno — <span class="t-mut">em atendimento</span></div>
<div class="flx alc gap-3"><span sw-avt="away suc">CM</span> Carla — <span class="t-mut">volta às 14h</span></div>
</div>
<div sw-card="p">
<div class="sw-card-bdy flx j-sb alc gap-3">
<div><strong>Workshop de fotografia</strong><div class="t-mut t-pp">Sábado, 10h</div></div>
<div sw-avt-grp>
<span sw-avt>AN</span>
<span sw-avt="sec">BR</span>
<span sw-avt="suc">CM</span>
<span class="sw-avt-grp-more">+18</span>
</div>
</div>
</div>
Precisa de quê
swcore.min.css.- Nenhum JavaScript.
Cuidados — erros comuns
- Mais de 2 letras não cabe bem: use as iniciais (nome + sobrenome), não o nome inteiro.
- Foto sempre com
alt(o nome da pessoa). Se a foto for decorativa ao lado do nome escrito,alt="". - Use fotos quadradas e leves (ex.: 160×160 em .webp). Foto retangular é recortada no meio.
- O "+N" do
sw-avt-grpé uma classe (class="sw-avt-grp-more"), não umsw-avt. - Dentro do
sw-avt-grpuse todos os avatares do mesmo tamanho: a sobreposição e o tamanho do "+N" seguem o tamanho deles (pp,p, padrão,g,gg). - No
sw-presencenão usesw-avtdentro — são<span>simples.
O que ele não faz
- O leque do
sw-presencetem movimento próprio só para as quatro primeiras posições. - O
sw-presencetem um tamanho só (42px) e só o status "online". - Não gera as iniciais sozinho a partir do nome: você escreve as letras.

