O que é esta ferramenta?
Um loader CSS é um pequeno elemento animado — um anel giratório, pontos que saltitam, um círculo que pulsa, ou uma barra de progresso em movimento — usado para mostrar que o conteúdo está carregando, sem loop de animação em JavaScript e sem precisar de imagem ou GIF. Ele é construído com algumas regras CSS mais um bloco @keyframes que define como o elemento se move ao longo do tempo.
Esta ferramenta gera quatro padrões de loader comuns com CSS real e funcional: um spinner giratório baseado em borda, três pontos que saltitam em sequência, um círculo que pulsa para dentro e para fora, e uma barra com preenchimento deslizante. Ajuste tamanho, cor e duração na pré-visualização ao vivo, depois copie o CSS gerado e o elemento HTML mínimo ao qual ele se aplica.
Fonte: CSS Animations Level 1, W3C — a especificação que define @keyframes e as propriedades de animação com as quais estes loaders são construídos.
Por que usar?
- A pré-visualização ao vivo anima em tempo real conforme você muda estilo, tamanho, cor ou velocidade — você vê exatamente o que vai usar.
- Gera o CSS completo, incluindo o bloco @keyframes, não apenas um trecho que você precisa terminar sozinho.
- Também gera o HTML exato esperado pelo CSS, sem precisar adivinhar nomes de classes ou estrutura de elementos.
- Quatro padrões de animação distintos (spinner, pontos, pulso, barra) cobrem os casos de uso mais comuns de estados de carregamento.
- Animação CSS pura — sem JavaScript, sem arquivos de imagem, mais leve e suave que um GIF animado.
- Roda inteiramente no seu navegador, grátis, sem cadastro.
Como usar
- Escolha um estilo de loader: anel giratório, pontos saltitantes, círculo pulsante ou barra de progresso.
- Arraste o controle de tamanho para aumentar ou diminuir o loader.
- Escolha uma cor — ela se torna a cor de destaque do loader (a borda giratória, os pontos, ou o preenchimento da barra).
- Ajuste a velocidade para deixar a animação mais rápida ou lenta; a maioria dos loaders de interface fica melhor entre 0,6s e 1,5s por ciclo.
- Copie o CSS gerado para sua folha de estilo e cole o trecho HTML onde o loader deve aparecer.
Exemplo
Entrada
Estilo: anel giratório · Tamanho: 40px · Cor: laranja · Velocidade: 1,0sResultado
.css-loader-spinner {
width: 40px;
height: 40px;
border: 4px solid rgba(0, 0, 0, 0.1);
border-top-color: #f97316;
border-radius: 50%;
animation: css-loader-spin 1s linear infinite;
}
@keyframes css-loader-spin {
to { transform: rotate(360deg); }
}Um spinner de anel clássico: um círculo com borda quase transparente em três lados e cor sólida no quarto, girando continuamente com uma animação linear e infinita.
Por que usar loaders CSS em vez de GIFs animados
Spinners GIF animados foram o padrão por anos, mas hoje um loader CSS é quase sempre a melhor escolha: são algumas centenas de bytes de texto em vez de um arquivo de imagem binário, escalam para qualquer tamanho sem pixelizar já que são desenhados com bordas e transforms, e a cor pode ser trocada instantaneamente com um único valor CSS em vez de reexportar uma nova imagem.
Os quatro estilos aqui — spinner, pontos, pulso, barra — também são os que mais aparecem em interfaces reais, de estados de carregamento em botões a overlays de página inteira. Cada um anima apenas transform e opacity nos keyframes, o que os navegadores conseguem animar suavemente na GPU sem travar o resto da página.
Escolhendo o estilo certo para a situação
- Anel giratório: a escolha mais neutra e de uso geral — funciona bem dentro de botões e pequenos estados de carregamento em linha.
- Pontos saltitantes: passa uma sensação mais leve e divertida; comum em indicadores de 'digitando...' em chats e esperas curtas.
- Círculo pulsante: bom para um indicador de carregamento de elemento único ou como um ponto de status 'ativo/ao vivo'.
- Barra de progresso: sugere avanço e costuma ser esperada em carregamentos de página ou processos de várias etapas, mesmo sem porcentagem exata.
Usando o loader no seu projeto
Cole o CSS gerado uma vez na sua folha de estilo, depois reutilize o trecho HTML em qualquer lugar que precise de um estado de carregamento — dentro de um botão enquanto um formulário é enviado, sobre um card enquanto dados são buscados, ou centralizado em um overlay de página inteira. Como a animação é CSS puro, ativá-la ou desativá-la é tão simples quanto adicionar ou remover o elemento do DOM, ou escondê-lo com display: none.
Perguntas frequentes
Esses loaders funcionam sem JavaScript?
Sim — cada loader aqui é animado puramente com @keyframes e a propriedade animation do CSS. JavaScript só é necessário se você quiser mostrar ou esconder o loader com base em um evento, como o envio de um formulário ou o fim de uma requisição.
Por que o CSS gerado inclui um bloco @keyframes?
Animações CSS precisam de duas partes: os estilos base do elemento (tamanho, cor, forma) e uma regra @keyframes que descreve como esses estilos mudam ao longo da duração da animação. As duas são necessárias para a animação funcionar, por isso esta ferramenta sempre gera o par completo em vez de apenas o estilo base.
Posso usar mais de um estilo de loader na mesma página?
Sim. Cada estilo gera suas próprias classes CSS e keyframes com nomes únicos (por exemplo css-loader-spinner e css-loader-dots), então você pode copiar vários estilos para a mesma folha de estilo sem conflito.
A animação do loader vai deixar minha página lenta?
Não — os quatro estilos animam apenas transform e opacity, que os navegadores conseguem processar no compositor/GPU sem disparar recálculo de layout. Isso os mantém suaves mesmo em dispositivos menos potentes, ao contrário de animar diretamente propriedades como width ou top.
Como mudo a cor do loader depois sem regenerar tudo?
Abra o CSS copiado e altere o valor da cor diretamente — ele aparece uma única vez (como border-top-color, background ou similar, dependendo do estilo) em vez de duplicado por toda a regra, então um único buscar-e-substituir atualiza em todos os lugares.