StatusOverlay
O retorno no próprio container onde a ação aconteceu: carregando, deu certo ou deu errado, com o Notice logo acima.
Nesta página
Playground
Lembrete
Estado
Fundo
<div class="feitio-status-host"><div class="feitio-stack" data-gap="3"><strong>Lembrete</strong><div class="feitio-field"><label class="feitio-label" for="pg-so">Nome do lembrete</label><input class="feitio-input" id="pg-so" value="Regar as plantas"></div><div><button class="feitio-button" type="button" data-variant="primary">Salvar</button></div></div><div class="feitio-status" role="status"><svg viewBox="0 0 48 48" aria-hidden="true"><g class="loading"><path pathLength="1" d="M24 7 C34 6.5 41.5 14 41 24 C40.6 33 33 41 24 41.2"></path><path pathLength="1" d="M25.5 41 C14.5 41.6 6.8 33.5 7.2 23.6 C7.6 14 14.6 7.4 23 6.4"></path></g><g class="ok"><path pathLength="1" d="M13 25 L21 33.5"></path><path pathLength="1" d="M19.5 34 L36 14.5"></path></g><g class="error"><path pathLength="1" d="M15 15 L33.5 33"></path><path pathLength="1" d="M33 14.5 L15.5 33.5"></path></g></svg><span class="label"></span></div></div>Quando usar
- Em toda ação que leva tempo ou muda um estado: salvar, apagar, enviar.
Quando não usar
- Na tela inteira, para uma ação de um pedaço dela.
- No lugar do Notice: a animação mostra que algo aconteceu; o Notice diz o quê.
Exemplos
Resultado do teste:
Salvar um lembrete
Toque em Salvar. Troque o resultado do teste para ver o erro.
Mostrar código
<div class="notice-slot" aria-live="polite"></div>
<form class="feitio-status-host" data-state="loading" aria-busy="true">
…
<div class="feitio-status" role="status">
<svg viewBox="0 0 48 48" aria-hidden="true">…</svg>
<span class="label">Salvando…</span>
</div>
</form>A sequência
- Carregando: o esmaecido entra e o traço gira; um segundo envio é ignorado.
- Deu certo: o certo é desenhado em musgo, o esmaecido sai, e o Notice entra acima.
- Deu errado: o X em vinho, o esmaecido sai, e o Notice de erro entra acima e recebe o foco.
- Movimento reduzido: o desenho aparece pronto.
Anatomia
Lembrete
Salvo
- Esmaecido: o container, com o papel por cima; o conteúdo continua lá, sem receber toque.
- O desenho: o traço girando, o certo ou o X, cada um feito de dois traços.
- A palavra: curta, para quem não vê o desenho.
Os três estados
Salvando…
Salvo
Não salvou
Acessibilidade
- A palavra fica num
role="status": o leitor de tela anuncia "Salvando…" e depois o resultado. - Durante a ação, o container leva
aria-busy="true".
Atributos
| Atributo | Valores | Para quê |
|---|---|---|
class="feitio-status-host" | no container | O que esmaece. |
data-state | "loading", "ok", "error" | Qual desenho e qual palavra. |
class="feitio-status" | último filho | O esmaecido, o desenho e a palavra. |