patterns
status indicators
Sinalizações de estado: online/offline, sync, erro. Cor + dot + label, com semântica de screen reader correta (aria-live).
biblioteca · status badges
stablebetanewdraft
estados de sistema · dot + label
Padrão recomendado: dot + label. O dot tem aria-hidden="true" (decorativo); o label é a verdade. Mudanças dinâmicas usam role="status" + aria-live="polite".
online · 4 usuários conectados
offline · última conexão há 2min
sincronizando · 60% concluído
erro · falha ao sincronizar
atenção · disco quase cheio
estado dinâmico · aria-live
Container que muda em tempo real precisa de aria-live pra que leitores de tela anunciem a mudança:
<!-- container com aria-live -->
<div role="status" aria-live="polite" aria-atomic="true">
<span class="status-dot status-dot--online" aria-hidden="true"></span>
<span>online · 4 usuários conectados</span>
</div>
// JS atualiza o texto · screen reader anuncia sozinho
container.querySelector('span:last-child').textContent = 'offline · sem conexão';
tabela de estados
| estado | dot class | aria-live | cor |
|---|---|---|---|
| Online | status-dot--online | polite | --ch-code-active |
| Offline | status-dot--offline | polite | --ch-java |
| Sincronizando | status-dot--sync (pulsa) | polite | --ch-code |
| Erro | status-dot--error | assertive | --support-error |
| Aviso | status-dot--warning | polite | --support-warning |