Sistema completo de animações prontas: Scroll Reveal (1 vez ou toda vez que o scroll passar), animações temporizadas, loops contínuos e micro-interações de hover.
Catálogo oficial de animações do SWCore com aceleração por hardware (GPU), zero dependências externas e peso ultraleve. Inclui suporte nativo a Scroll Reveal com escolha de comportamento (1x única ou repetindo a cada passagem do scroll), animações de disparo temporizado, loops infinitos para badges e status, e micro-interações de hover.
A camada de Scroll usa IntersectionObserver nativo de alta performance para monitorar a viewport. Ao entrar na tela, adiciona a classe is-revealed. Se configurado como once (padrão), fixa o elemento revelado; se configurado como repeat (ou is-repeat / sw-anime-mnt), reseta ao sair da viewport para re-animar toda vez que o usuário rolar novamente.
Estes elementos entram suavemente ao rolar e permanecem revelados:
<!-- Anima uma única vez quando o elemento entra na tela (Padrão) -->
<div class="reveal-up">Entra subindo</div>
<div class="reveal-left delay-100">Entra da esquerda com delay</div>
<div class="reveal-right delay-200">Entra da direita com delay</div>
<div class="reveal-zoom delay-300">Entra com zoom</div>
Re-anima a cada rolagem
Efeito Flip 3D contínuo
Zoom in/out ao rolar
<!-- Opção 1: classe .is-repeat -->
<div class="reveal-up is-repeat">Re-anima a cada passagem do scroll</div>
<!-- Opção 2: atributo sw-anime="repeat" -->
<div class="reveal-flip" sw-anime="repeat">Efeito Flip toda vez que rolar</div>
<!-- Opção 3: sw-anime-mnt (alias compatível) -->
<div class="reveal-zoom" sw-anime-mnt>Zoom bidirecional</div>
Clique nos botões para testar cada efeito ao vivo no card central:
Clique nos botões acima para re-animar!
<!-- Como disparar animações temporizadas por classe -->
<div class="sw-ani-bounce-in">Entrada com quique</div>
<div class="sw-ani-flip-x">Giro 3D horizontal</div>
<div class="sw-ani-tada">Comemoração Tada</div>
<!-- Para repetir via JS em cliques de botão: -->
<script>
function tocarAnimacao(elemento, classe) {
elemento.className = '';
void elemento.offsetWidth; // Força reflow
elemento.className = classe;
}
</script>
<!-- Ícones com animações contínuas em loop -->
<i class="swi-refresh sw-loop-spin"></i>
<i class="swi-heart sw-loop-pulse"></i>
<i class="swi-down-arrow sw-loop-float"></i>
<i class="swi-star sw-loop-glow" style="--sw-glow-color:#f59e0b"></i>
<i class="swi-bell sw-loop-shake"></i>
Elevação com sombra profunda
Borda neon brilhante
Comemoração festiva
Zoom elástico imediato
Inclinação 3D moderna
Reflexo de luz metálico
<!-- Micro-interações de Hover ao passar o mouse -->
<div class="card sw-hov-lift">Elevação com sombra 3D</div>
<div class="card sw-hov-glow">Brilho neon nas bordas</div>
<div class="card sw-hov-tada">Festa Tada</div>
<div class="card sw-hov-pop">Zoom elástico</div>
<div class="card sw-hov-shine">Reflexo de luz atravessando</div>
class="reveal-*"reveal-up, reveal-down, reveal-left, reveal-right, reveal-zoom, reveal-flip)sw-anime="once"sw-anime="repeat" / class="is-repeat"class="delay-100" a "delay-1000"class="sw-ani-*"sw-ani-bounce-in, sw-ani-flip-x, sw-ani-tada, sw-ani-jello)class="sw-loop-*"sw-loop-spin, sw-loop-pulse, sw-loop-float, sw-loop-glow)class="sw-hov-*"sw-hov-lift, sw-hov-glow, sw-hov-pop, sw-hov-shine)reveal-up, reveal-down, reveal-left, reveal-right, reveal-zoom, reveal-flipsw-anime="once", sw-anime="repeat"sw-ani-fade-up, sw-ani-bounce-in, sw-ani-flip-x, sw-ani-tada, sw-ani-jellosw-loop-spin, sw-loop-pulse, sw-loop-float, sw-loop-glow, sw-loop-heartbeatsw-hov-lift, sw-hov-glow, sw-hov-pop, sw-hov-skew, sw-hov-shineNenhum.
Nenhum.
reveal-* para animar no scroll uma vez só (padrão), ou adicione is-repeat / sw-anime="repeat" para re-animar toda vez que o scroll passar.void el.offsetWidth).