Skip to main content
LanguagePortuguês (BR)
Noções básicas5 minutos de leituraOutubro de 2026

Como deve funcionar um estado de carregamento?

Resposta curta

Um bom estado de carregamento informa às pessoas que algo está acontecendo, aproximadamente quanto tempo levará e o que aparecerá. Para esperas muito curtas, não mostre nada ou faça uma mudança sutil. Por alguns segundos, use um esqueleto ou botão giratório próximo de onde o conteúdo aparecerá. Para tarefas longas, mostre o progresso e deixe as pessoas continuarem trabalhando ou cancelarem.

Ponto principal

  • Combine o indicador com a espera: nenhum, sutil, giratório ou esqueleto e progrida
  • Os esqueletos funcionam melhor quando o layout do próximo conteúdo é conhecido
  • Mostre o estado de carregamento onde o conteúdo aparecerá, não apenas em um canto
  • Mantenha o botão que iniciou a ação em estado de carregamento para evitar envios duplos
  • Respeite as configurações de movimento reduzido e continue carregando a animação com calma

Os estados de carregamento existem para responder a uma pergunta do usuário: está acontecendo alguma coisa? Sem resposta, as pessoas tocam novamente, recarregam a página ou saem. A resposta certa depende de quanto tempo eles esperam.

Para esperas muito curtas, menos de um décimo de segundo, a maioria das pessoas não percebe um atraso, então um indicador apenas adiciona cintilação. Uma técnica comum é esperar um pouco antes de mostrar um botão giratório, para que respostas rápidas nunca mostrem nenhum.

Para esperas de um ou alguns segundos, mostre o feedback onde o resultado aparecerá. Uma tela de esqueleto, um contorno cinza do próximo layout, funciona bem para listas, cartões e perfis porque mostra o que está por vir e reduz a mudança de layout. Um spinner funciona para áreas pequenas ou quando o resultado não tem formato previsível.

Para tarefas longas, como uploads, exportações ou geração de IA, mostre o progresso real se puder medi-lo, explique o que está acontecendo e deixe as pessoas cancelarem ou continuarem com outro trabalho. Um botão giratório que gira por um minuto sem nenhuma outra informação parece um fracasso.

O controle que iniciou a ação também precisa de um estado. Um botão de envio que muda para um estado de carregamento e não pode ser pressionado duas vezes evita pedidos e mensagens duplicadas. Quando o carregamento terminar, mova-se claramente para o sucesso ou erro, em vez de retornar silenciosamente ao padrão.

A animação ajuda aqui, mas mantenha-a calma e curta e respeite a configuração de movimento reduzido. ExodeUI, que criamos, permite projetar um carregador ou botão com estados de carregamento, sucesso e erro em um arquivo entre o qual seu código alterna.

Perguntas frequentes

Tela giratória ou esqueleto: o que é melhor?

Os esqueletos são melhores quando você conhece o formato do conteúdo que está por vir, como uma lista ou um cartão. Spinners são melhores para áreas pequenas ou conteúdo desconhecido.

Quanto tempo antes de mostrar um indicador de carregamento?

Muitas equipes esperam algumas centenas de milissegundos para que respostas rápidas nunca acendam um botão giratório. Teste com seus tempos de resposta reais.

Uma animação de carregamento deve repetir para sempre?

Somente enquanto a tarefa estiver genuinamente em execução. Se demorar muito mais que o esperado, mostre uma mensagem, progresso ou uma forma de cancelar.

Como faço para mostrar o carregamento em um botão?

Substitua ou acompanhe o rótulo por um pequeno indicador, mantenha o tamanho do botão igual para que o layout não salte e bloqueie os pressionamentos repetidos até que a solicitação termine.

Guias e exemplos relacionados

Experimente um botão com estados de carregamento reais

Abra exemplos interativos com estados de carregamento, sucesso e erro, criados como arquivos ExodeUI reais que você pode editar.

Abra os exemplos
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →