Efeitos de entrada Animações
Uma frase no atributo decide a animação: sw-ani="efeito [quando] [velocidade] [atraso]" — por exemplo sw-ani="fade-up one slow delay-2".
O que é
São as animações de "entrar em cena" e de "chamar atenção" do site: o título que sobe aparecendo, os cartões que surgem quando você rola até eles, o botão do WhatsApp que pulsa, o cartão que sobe quando o mouse passa. Você escreve sw-ani no elemento e, dentro, palavras: o nome do efeito e, se quiser, quando ele acontece, a velocidade e um atraso. A ordem das palavras não importa.
Sem palavra de "quando", o efeito roda uma vez assim que a página abre. one espera o elemento aparecer na tela (uma vez só); mount refaz toda vez que ele entra na tela; loop repete sem parar; hover anima quando o mouse passa por cima; scrub amarra a animação à barra de rolagem (anda para frente e para trás junto com você). Todos estes vêm no arquivo principal do SW Core — só o scrub e o sw-ani-distance precisam do pacote de animação.
Quando usar
- Títulos e blocos que entram quando a pessoa rola:
sw-ani="fade-up one". - Chamar atenção para uma ação (botão de WhatsApp, "Promoção"):
sw-ani="pulse loop"ou"hbeat loop"— com moderação. - Cartões e botões que reagem ao mouse:
sw-ani="lift hover". - Vários itens entrando um depois do outro: mesmo efeito com
delay-1,delay-2… (ou o Cascade, que faz isso sozinho). - Efeito que acompanha o dedo/rolagem (monta e desmonta enquanto rola):
sw-ani="zoom-in scrub".
Comece aqui
-
1
Coloque o SW Core na página. Para
one,mount,loop,hovere "ao abrir", o arquivo principal basta:<link rel="stylesheet" href="swcore/swcore.min.css"> <!-- fim do <body> --> <script src="swcore/swcore.min.js"></script> -
2
Escreva
sw-anicom o efeito e o "quando". Aqui: sobe aparecendo, uma vez, quando chega na tela.Bem-vindo à Padaria Pão Quente
<h2 sw-ani="fade-up one">Bem-vindo à Padaria Pão Quente</h2> -
3
Só vai usar
scrub(preso à rolagem) ousw-ani-distance? Aí inclua também o pacote de animação — o JS dele antes doswcore.min.js:<link rel="stylesheet" href="swcore/swcore.min.css"> <link rel="stylesheet" href="swcore/swcore.motion.min.css"> <!-- fim do <body> --> <script src="swcore/swcore.motion.min.js"></script> <script src="swcore/swcore.min.js"></script>
Todas as variações
Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.
1. Quando anima (o gatilho)
A mesma animação, seis momentos diferentes.
<div sw-ani="fade-up" class="bg-sur bd p-m r-m t-ct">Ao abrir</div>
<div sw-ani="fade-up one" class="bg-sur bd p-m r-m t-ct">Ao rolar, 1 vez</div>
<div sw-ani="fade-up mount" class="bg-sur bd p-m r-m t-ct">Toda vez</div>
<div sw-ani="fade-up scrub" class="bg-sur bd p-m r-m t-ct">Preso à rolagem</div>
<div sw-ani="float loop" class="bg-sur bd p-m r-m t-ct">Sem parar</div>
<div sw-ani="lift hover" class="bg-sur bd p-m r-m t-ct">Passe o mouse</div>
2. Efeitos de entrada — todos
Os 37 efeitos, cada um com one (aparece quando você rola até ele). Os mesmos nomes funcionam com "ao abrir", mount e scrub.
<div sw-ani="fade one" class="bg-sur bd p-m r-m t-ct">fade</div>
<div sw-ani="fade-up one" class="bg-sur bd p-m r-m t-ct">fade-up</div>
<div sw-ani="fade-down one" class="bg-sur bd p-m r-m t-ct">fade-down</div>
<div sw-ani="fade-left one" class="bg-sur bd p-m r-m t-ct">fade-left</div>
<div sw-ani="fade-right one" class="bg-sur bd p-m r-m t-ct">fade-right</div>
<div sw-ani="slide-up one" class="bg-sur bd p-m r-m t-ct">slide-up</div>
<div sw-ani="slide-down one" class="bg-sur bd p-m r-m t-ct">slide-down</div>
<div sw-ani="slide-left one" class="bg-sur bd p-m r-m t-ct">slide-left</div>
<div sw-ani="slide-right one" class="bg-sur bd p-m r-m t-ct">slide-right</div>
<div sw-ani="zoom-in one" class="bg-sur bd p-m r-m t-ct">zoom-in</div>
<div sw-ani="zoom-out one" class="bg-sur bd p-m r-m t-ct">zoom-out</div>
<div sw-ani="zoom-blur one" class="bg-sur bd p-m r-m t-ct">zoom-blur</div>
<div sw-ani="scale one" class="bg-sur bd p-m r-m t-ct">scale</div>
<div sw-ani="pop one" class="bg-sur bd p-m r-m t-ct">pop</div>
<div sw-ani="blur one" class="bg-sur bd p-m r-m t-ct">blur</div>
<div sw-ani="soft one" class="bg-sur bd p-m r-m t-ct">soft</div>
<div sw-ani="drop one" class="bg-sur bd p-m r-m t-ct">drop</div>
<div sw-ani="roll one" class="bg-sur bd p-m r-m t-ct">roll</div>
<div sw-ani="swing one" class="bg-sur bd p-m r-m t-ct">swing</div>
<div sw-ani="flip one" class="bg-sur bd p-m r-m t-ct">flip</div>
<div sw-ani="flip-x one" class="bg-sur bd p-m r-m t-ct">flip-x</div>
<div sw-ani="flip-y one" class="bg-sur bd p-m r-m t-ct">flip-y</div>
<div sw-ani="3d-l one" class="bg-sur bd p-m r-m t-ct">3d-l</div>
<div sw-ani="3d-r one" class="bg-sur bd p-m r-m t-ct">3d-r</div>
<div sw-ani="3d-t one" class="bg-sur bd p-m r-m t-ct">3d-t</div>
<div sw-ani="rotate-in one" class="bg-sur bd p-m r-m t-ct">rotate-in</div>
<div sw-ani="skew-l one" class="bg-sur bd p-m r-m t-ct">skew-l</div>
<div sw-ani="skew-r one" class="bg-sur bd p-m r-m t-ct">skew-r</div>
<div sw-ani="tilt-up one" class="bg-sur bd p-m r-m t-ct">tilt-up</div>
<div sw-ani="tilt-down one" class="bg-sur bd p-m r-m t-ct">tilt-down</div>
<div sw-ani="tilt-left one" class="bg-sur bd p-m r-m t-ct">tilt-left</div>
<div sw-ani="tilt-right one" class="bg-sur bd p-m r-m t-ct">tilt-right</div>
<div sw-ani="wipe-l one" class="bg-sur bd p-m r-m t-ct">wipe-l</div>
<div sw-ani="wipe-r one" class="bg-sur bd p-m r-m t-ct">wipe-r</div>
<div sw-ani="wipe-t one" class="bg-sur bd p-m r-m t-ct">wipe-t</div>
<div sw-ani="wipe-b one" class="bg-sur bd p-m r-m t-ct">wipe-b</div>
<div sw-ani="wipe-c one" class="bg-sur bd p-m r-m t-ct">wipe-c</div>
3. Nomes curtos e nomes antigos
Apelidos que continuam funcionando: dão exatamente o mesmo resultado do nome ao lado.
<div sw-ani="up one" class="bg-sur bd p-m r-m t-ct">up</div>
<div sw-ani="down one" class="bg-sur bd p-m r-m t-ct">down</div>
<div sw-ani="left one" class="bg-sur bd p-m r-m t-ct">left</div>
<div sw-ani="right one" class="bg-sur bd p-m r-m t-ct">right</div>
<div sw-ani="reveal-left one" class="bg-sur bd p-m r-m t-ct">reveal-left</div>
<div sw-ani="reveal-right one" class="bg-sur bd p-m r-m t-ct">reveal-right</div>
<div sw-ani="reveal-up one" class="bg-sur bd p-m r-m t-ct">reveal-up</div>
<div sw-ani="reveal-center one" class="bg-sur bd p-m r-m t-ct">reveal-center</div>
4. Em loop (sem parar)
Para chamar atenção. Use pouco: um ou dois por tela, senão cansa. swing sem loop é entrada; com loop vira pêndulo.
<div sw-ani="float loop" class="bg-sur bd p-m r-m t-ct">float</div>
<div sw-ani="float-r loop" class="bg-sur bd p-m r-m t-ct">float-r</div>
<div sw-ani="pulse loop" class="bg-sur bd p-m r-m t-ct">pulse</div>
<div sw-ani="breathe loop" class="bg-sur bd p-m r-m t-ct">breathe</div>
<div sw-ani="hbeat loop" class="bg-sur bd p-m r-m t-ct">hbeat</div>
<div sw-ani="glow loop" class="bg-sur bd p-m r-m t-ct">glow</div>
<div sw-ani="shake loop" class="bg-sur bd p-m r-m t-ct">shake</div>
<div sw-ani="tada loop" class="bg-sur bd p-m r-m t-ct">tada</div>
<div sw-ani="jello loop" class="bg-sur bd p-m r-m t-ct">jello</div>
<div sw-ani="rubber loop" class="bg-sur bd p-m r-m t-ct">rubber</div>
<div sw-ani="bounce loop" class="bg-sur bd p-m r-m t-ct">bounce</div>
<div sw-ani="wave loop" class="bg-sur bd p-m r-m t-ct">wave</div>
<div sw-ani="swing loop" class="bg-sur bd p-m r-m t-ct">swing</div>
<div sw-ani="spin loop" class="bg-sur bd p-m r-m t-ct">spin</div>
<div sw-ani="spin-r loop" class="bg-sur bd p-m r-m t-ct">spin-r</div>
<div sw-ani="blink loop" class="bg-sur bd p-m r-m t-ct">blink</div>
<div sw-ani="flicker loop" class="bg-sur bd p-m r-m t-ct">flicker</div>
<div sw-ani="gradient loop" class="bg-sur bd p-m r-m t-ct">gradient</div>
<div sw-ani="blob loop" class="bg-sur bd p-m r-m t-ct">blob</div>
5. Ao passar o mouse (hover)
Passe o mouse em cada quadro. No celular (sem mouse), o efeito aparece no toque, quando o navegador simula o "passar por cima".
<div sw-ani="lift hover" class="bg-sur bd p-m r-m t-ct">lift</div>
<div sw-ani="up hover" class="bg-sur bd p-m r-m t-ct">up</div>
<div sw-ani="down hover" class="bg-sur bd p-m r-m t-ct">down</div>
<div sw-ani="left hover" class="bg-sur bd p-m r-m t-ct">left</div>
<div sw-ani="right hover" class="bg-sur bd p-m r-m t-ct">right</div>
<div sw-ani="zoom-in hover" class="bg-sur bd p-m r-m t-ct">zoom-in</div>
<div sw-ani="zoom-out hover" class="bg-sur bd p-m r-m t-ct">zoom-out</div>
<div sw-ani="bright hover" class="bg-sur bd p-m r-m t-ct">bright</div>
<div sw-ani="dim hover" class="bg-sur bd p-m r-m t-ct">dim</div>
<div sw-ani="sat hover" class="bg-sur bd p-m r-m t-ct">sat</div>
<div sw-ani="glow hover" class="bg-sur bd p-m r-m t-ct">glow</div>
<div sw-ani="skew-l hover" class="bg-sur bd p-m r-m t-ct">skew-l</div>
<div sw-ani="skew-r hover" class="bg-sur bd p-m r-m t-ct">skew-r</div>
<div sw-ani="flip hover" class="bg-sur bd p-m r-m t-ct">flip</div>
<div sw-ani="shake hover" class="bg-sur bd p-m r-m t-ct">shake</div>
<div sw-ani="tada hover" class="bg-sur bd p-m r-m t-ct">tada</div>
<div sw-ani="pulse hover" class="bg-sur bd p-m r-m t-ct">pulse</div>
<div sw-ani="bounce hover" class="bg-sur bd p-m r-m t-ct">bounce</div>
<div sw-ani="jello hover" class="bg-sur bd p-m r-m t-ct">jello</div>
<div sw-ani="rubber hover" class="bg-sur bd p-m r-m t-ct">rubber</div>
<div sw-ani="roll hover" class="bg-sur bd p-m r-m t-ct">roll</div>
<a href="/cardapio" sw-ani="underline hover">Ver cardápio</a>
6. Velocidade
Sem palavra de velocidade fica no normal.
<div sw-ani="fade-up one fast" class="bg-sur bd p-m r-m t-ct">fast</div>
<div sw-ani="fade-up one" class="bg-sur bd p-m r-m t-ct">normal</div>
<div sw-ani="fade-up one slow" class="bg-sur bd p-m r-m t-ct">slow</div>
<div sw-ani="fade-up one slower" class="bg-sur bd p-m r-m t-ct">slower</div>
7. Atraso — o efeito "um depois do outro"
Nove atrasos prontos. O mesmo efeito com atrasos crescentes forma uma cascata.
<div sw-ani="fade-up one">sem atraso</div>
<div sw-ani="fade-up one delay-1">delay-1</div> <!-- 0,1 s -->
<div sw-ani="fade-up one delay-2">delay-2</div> <!-- 0,2 s -->
<div sw-ani="fade-up one delay-3">delay-3</div> <!-- 0,3 s -->
<div sw-ani="fade-up one delay-4">delay-4</div> <!-- 0,45 s -->
<div sw-ani="fade-up one delay-5">delay-5</div> <!-- 0,6 s -->
<div sw-ani="fade-up one delay-6">delay-6</div> <!-- 0,8 s -->
<div sw-ani="fade-up one delay-7">delay-7</div> <!-- 1 s -->
<div sw-ani="fade-up one delay-8">delay-8</div> <!-- 1,3 s -->
<div sw-ani="fade-up one delay-9">delay-9</div> <!-- 1,7 s -->
8. Distância do movimento
Nos efeitos que andam (fade-up, fade-left…), a distância padrão é 8rem na vertical e 10rem na horizontal. Mude com as variáveis --sw-dist e --sw-dist-lg no seu CSS. No scrub, a distância vem do atributo sw-ani-distance (em px).
<div sw-ani="fade-left one" class="bg-sur bd p-m r-m t-ct">padrão</div>
<style>
.entra-perto { --sw-dist-lg: 2rem; }
</style>
<div sw-ani="fade-left one" class="entra-perto">perto</div>
<style>
.entra-longe { --sw-dist: 20rem; }
</style>
<div sw-ani="fade-up one" class="entra-longe">longe</div>
<div sw-ani="fade-left scrub" sw-ani-distance="30" class="bg-sur bd p-m r-m t-ct">30 px</div>
<div sw-ani="fade-left scrub" sw-ani-distance="200" class="bg-sur bd p-m r-m t-ct">200 px</div>
9. Preso à rolagem (scrub)
Role a página devagar, para cima e para baixo: o quadro monta quando entra, fica parado no meio da tela e desmonta quando sai. Aceita todos os nomes de entrada. Precisa do pacote de animação.
<div sw-ani="fade-up scrub" class="bg-sur bd p-m r-m t-ct">fade-up</div>
<div sw-ani="zoom-in scrub" class="bg-sur bd p-m r-m t-ct">zoom-in</div>
<div sw-ani="blur scrub" class="bg-sur bd p-m r-m t-ct">blur</div>
<div sw-ani="3d-r scrub" class="bg-sur bd p-m r-m t-ct">3d-r</div>
<div sw-ani="rotate-in scrub" class="bg-sur bd p-m r-m t-ct">rotate-in</div>
<div sw-ani="wipe-l scrub" class="bg-sur bd p-m r-m t-ct">wipe-l</div>
<div sw-ani="fade-up scrub" sw-ani-in="0.1" sw-ani-out="0.95" class="bg-sur bd p-m r-m t-ct">mais tempo</div>
<div sw-ani="zoom-in scrub" sw-ani-in="0.5" sw-ani-out="0.6" class="bg-sur bd p-m r-m t-ct">só no meio</div>
10. Combinando palavras
Efeito + gatilho + velocidade + atraso no mesmo atributo, em qualquer ordem.
<div sw-ani="zoom-in one slow delay-2" class="bg-sur bd p-m r-m t-ct">devagar e atrasado</div>
<div sw-ani="wipe-l one fast" class="bg-sur bd p-m r-m t-ct">rápido</div>
<div sw-ani="pulse loop slow" class="bg-sur bd p-m r-m t-ct">pulsa devagar</div>
<strong sw-ani="gradient loop text" class="t-xg">Oferta de hoje</strong>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| Quando anima (gatilho) | ||
(nada) | Uma vez, assim que a página abre. | sw-ani="fade-up" |
one | Uma vez, quando o elemento aparece na tela. | sw-ani="fade-up one" |
reveal | Nome antigo de one — funciona igual. | sw-ani="fade-up reveal" |
mount | Toda vez que o elemento entra na tela (volta ao início quando sai). | sw-ani="fade-up mount" |
loop | Repete sem parar. | sw-ani="float loop" |
hover | Só quando o mouse está em cima. | sw-ani="lift hover" |
scrub | Preso à barra de rolagem. Precisa do pacote de animação. | sw-ani="zoom-in scrub" |
| Velocidade | ||
fast | Rápido: 0,25 s. | sw-ani="fade-up one fast" |
(nada) | Normal: 0,55 s ao abrir · 0,8 s no one/mount · 3 s nos loops (alguns loops têm ritmo próprio). | |
slow | Devagar: 0,9 s. | sw-ani="fade-up one slow" |
slower | Bem devagar: 1,6 s. | sw-ani="fade-up one slower" |
| Atraso | ||
delay-1 | Espera 0,1 s antes de começar. | sw-ani="fade-up one delay-1" |
delay-2 | Espera 0,2 s antes de começar. | sw-ani="fade-up one delay-2" |
delay-3 | Espera 0,3 s antes de começar. | sw-ani="fade-up one delay-3" |
delay-4 | Espera 0,45 s antes de começar. | sw-ani="fade-up one delay-4" |
delay-5 | Espera 0,6 s antes de começar. | sw-ani="fade-up one delay-5" |
delay-6 | Espera 0,8 s antes de começar. | sw-ani="fade-up one delay-6" |
delay-7 | Espera 1 s antes de começar. | sw-ani="fade-up one delay-7" |
delay-8 | Espera 1,3 s antes de começar. | sw-ani="fade-up one delay-8" |
delay-9 | Espera 1,7 s antes de começar. | sw-ani="fade-up one delay-9" |
| Efeitos de entrada (ao abrir, one, mount e scrub) | ||
fade | só aparece (transparência) | sw-ani="fade one" |
fade-up | sobe aparecendo | sw-ani="fade-up one" |
fade-down | desce aparecendo | sw-ani="fade-down one" |
fade-left | vem da direita aparecendo | sw-ani="fade-left one" |
fade-right | vem da esquerda aparecendo | sw-ani="fade-right one" |
slide-up | sobe, já visível | sw-ani="slide-up one" |
slide-down | desce, já visível | sw-ani="slide-down one" |
slide-left | vem da direita, já visível | sw-ani="slide-left one" |
slide-right | vem da esquerda, já visível | sw-ani="slide-right one" |
zoom-in | cresce aparecendo | sw-ani="zoom-in one" |
zoom-out | encolhe aparecendo | sw-ani="zoom-out one" |
zoom-blur | cresce saindo do desfoque | sw-ani="zoom-blur one" |
scale | cresce bem (de 60%) | sw-ani="scale one" |
pop | estoura (passa do tamanho e volta) | sw-ani="pop one" |
blur | sai do desfoque | sw-ani="blur one" |
soft | sobe só um pouquinho | sw-ani="soft one" |
drop | cai de cima | sw-ani="drop one" |
roll | rola vindo da esquerda | sw-ani="roll one" |
swing | balança preso no topo | sw-ani="swing one" |
flip | vira em 3D (deitado) | sw-ani="flip one" |
flip-x | o mesmo que flip | sw-ani="flip-x one" |
flip-y | vira em 3D (em pé) | sw-ani="flip-y one" |
3d-l | porta abrindo, eixo em pé | sw-ani="3d-l one" |
3d-r | porta abrindo, lado oposto | sw-ani="3d-r one" |
3d-t | tampa abrindo, eixo deitado | sw-ani="3d-t one" |
rotate-in | gira meia volta | sw-ani="rotate-in one" |
skew-l | entra inclinado da direita | sw-ani="skew-l one" |
skew-r | entra inclinado da esquerda | sw-ani="skew-r one" |
tilt-up | sobe com leve perspectiva | sw-ani="tilt-up one" |
tilt-down | desce com leve perspectiva | sw-ani="tilt-down one" |
tilt-left | vem da direita com perspectiva | sw-ani="tilt-left one" |
tilt-right | vem da esquerda com perspectiva | sw-ani="tilt-right one" |
wipe-l | cortina abre da esquerda | sw-ani="wipe-l one" |
wipe-r | cortina abre da direita | sw-ani="wipe-r one" |
wipe-t | cortina corre para cima | sw-ani="wipe-t one" |
wipe-b | cortina corre para baixo | sw-ani="wipe-b one" |
wipe-c | cortina abre do centro | sw-ani="wipe-c one" |
up | o mesmo que fade-up | sw-ani="up one" |
down | o mesmo que fade-down | sw-ani="down one" |
left | o mesmo que fade-left | sw-ani="left one" |
right | o mesmo que fade-right | sw-ani="right one" |
reveal-left | nome antigo de wipe-l (não roda "ao abrir", só com one/mount/scrub) | sw-ani="reveal-left one" |
reveal-right | nome antigo de wipe-r (não roda "ao abrir", só com one/mount/scrub) | sw-ani="reveal-right one" |
reveal-up | nome antigo de wipe-t (não roda "ao abrir", só com one/mount/scrub) | sw-ani="reveal-up one" |
reveal-center | nome antigo de wipe-c (não roda "ao abrir", só com one/mount/scrub) | sw-ani="reveal-center one" |
| Efeitos em loop (use com a palavra loop) | ||
float | flutua subindo e descendo | sw-ani="float loop" |
float-r | flutua no ritmo inverso | sw-ani="float-r loop" |
pulse | pulsa (cresce um pouco) | sw-ani="pulse loop" |
breathe | respira devagar | sw-ani="breathe loop" |
hbeat | batida de coração | sw-ani="hbeat loop" |
glow | brilho pulsando em volta | sw-ani="glow loop" |
shake | treme | sw-ani="shake loop" |
tada | "tadá!" sem parar | sw-ani="tada loop" |
jello | balança como gelatina | sw-ani="jello loop" |
rubber | estica como elástico | sw-ani="rubber loop" |
bounce | quica | sw-ani="bounce loop" |
wave | ondula | sw-ani="wave loop" |
swing | pêndulo | sw-ani="swing loop" |
spin | gira sem parar | sw-ani="spin loop" |
spin-r | gira ao contrário | sw-ani="spin-r loop" |
blink | pisca rápido | sw-ani="blink loop" |
flicker | falha como lâmpada | sw-ani="flicker loop" |
gradient | degradê andando no fundo | sw-ani="gradient loop" |
blob | mancha de forma viva | sw-ani="blob loop" |
text | Junto com gradient: o degradê fica dentro das letras. | sw-ani="gradient loop text" |
| Efeitos de mouse (use com a palavra hover) | ||
lift | sobe e ganha sombra | sw-ani="lift hover" |
up | sobe um pouco | sw-ani="up hover" |
down | desce um pouco | sw-ani="down hover" |
left | vai para a esquerda | sw-ani="left hover" |
right | vai para a direita | sw-ani="right hover" |
zoom-in | cresce um pouco | sw-ani="zoom-in hover" |
zoom-out | encolhe um pouco | sw-ani="zoom-out hover" |
bright | clareia | sw-ani="bright hover" |
dim | escurece | sw-ani="dim hover" |
sat | cores mais vivas | sw-ani="sat hover" |
glow | brilho em volta | sw-ani="glow hover" |
skew-l | inclina para um lado | sw-ani="skew-l hover" |
skew-r | inclina para o outro | sw-ani="skew-r hover" |
flip | vira de costas (espelha) | sw-ani="flip hover" |
shake | treme uma vez | sw-ani="shake hover" |
tada | "tadá!" (balança crescendo) | sw-ani="tada hover" |
pulse | pulsa uma vez | sw-ani="pulse hover" |
bounce | quica uma vez | sw-ani="bounce hover" |
jello | gelatina uma vez | sw-ani="jello hover" |
rubber | elástico uma vez | sw-ani="rubber hover" |
roll | dá uma volta | sw-ani="roll hover" |
underline | Sublinhado que cresce do lado, para links. | sw-ani="underline hover" |
| Distância e ajustes do scrub | ||
--sw-dist | Variável CSS: distância dos efeitos verticais. Padrão 8rem. | :root { --sw-dist: 4rem; } |
--sw-dist-lg | Variável CSS: distância dos efeitos horizontais. Padrão 10rem. | :root { --sw-dist-lg: 6rem; } |
sw-ani-distance | Só no scrub: distância em px. Padrão 80. | sw-ani-distance="180" |
sw-ani-in | Só no scrub: em que ponto da passagem pela tela ele termina de montar (0 a 0,9). Padrão 0,3. | sw-ani-in="0.2" |
sw-ani-out | Só no scrub: em que ponto começa a desmontar (0,1 a 1). Padrão 0,85. | sw-ani-out="0.9" |
sw-ani-start / sw-ani-end | Só no scrub: onde a animação começa e termina, no formato "parte-do-elemento parte-da-tela". | sw-ani-start="top 80%" |
| Cores | ||
--sw-ani-grad | Variável CSS: o degradê do gradient. Padrão: cores primária, secundária e sucesso. | .titulo { --sw-ani-grad: linear-gradient(90deg,#f59e0b,#ef4444,#f59e0b); } |
--sw-glow-color | Variável CSS: a cor do glow. Padrão: a cor primária. | .selo { --sw-glow-color: #22c55e; } |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
Seu site pronto em 7 dias
Design sob medida, rápido no celular e fácil de achar no Google.
Quero meu site<section class="t-ct">
<h1 sw-ani="fade-up">Seu site pronto em 7 dias</h1>
<p sw-ani="fade-up delay-2">Design sob medida, rápido no celular e fácil de achar no Google.</p>
<a href="/contato" sw-btn="pri pill g" sw-ani="zoom-in delay-4">Quero meu site</a>
</section>
<a href="https://wa.me/5511999999999" sw-btn="suc pill" sw-ani="hbeat loop">
<i class="swil-whatsapp"></i> Falar no WhatsApp
</a>
Sites
Rápidos e bonitos.
Lojas
Venda pela internet.
Agendamento
Sem ligação.
<div class="l l-3 gap-4">
<div sw-ani="lift hover" class="bg-sur bd p-g r-m"><i class="swi-rocket t-pri"></i><h3>Sites</h3><p class="t-p op-8">Rápidos e bonitos.</p></div>
<div sw-ani="lift hover" class="bg-sur bd p-g r-m"><i class="swi-store t-pri"></i><h3>Lojas</h3><p class="t-p op-8">Venda pela internet.</p></div>
<div sw-ani="lift hover" class="bg-sur bd p-g r-m"><i class="swi-calendar t-pri"></i><h3>Agendamento</h3><p class="t-p op-8">Sem ligação.</p></div>
</div>
Quem somos
Há 12 anos fazendo pão artesanal no bairro.
Onde estamos
Rua das Flores, 120 — aberto todos os dias.
<div class="l l-2 gap-4">
<div sw-ani="fade-right one" class="bg-sur bd p-g r-m"><h3>Quem somos</h3><p class="t-p op-8">Há 12 anos fazendo pão artesanal no bairro.</p></div>
<div sw-ani="fade-left one delay-2" class="bg-sur bd p-g r-m"><h3>Onde estamos</h3><p class="t-p op-8">Rua das Flores, 120 — aberto todos os dias.</p></div>
</div>
API (JavaScript)
SW.Anime.replay(elemento)one/mount esperar a tela de novo e animar outra vez.SWMotion.refresh()scrub (use depois de colocar conteúdo novo na página por JavaScript). Pacote de animação.Precisa de quê
swcore.min.css+swcore.min.js— todos os gatilhos, menos oscrub.swcore.motion.min.css+swcore.motion.min.js(antes doswcore.min.js) — só parascrubesw-ani-distance.
Cuidados — erros comuns
- Um efeito por elemento:
sw-ani="fade-up zoom-in"não soma os dois (vale um só). Para combinar, coloque um efeito no pai e outro no filho. - Sem
oneo efeito roda quando a página abre — num bloco lá embaixo, ninguém vê. Para o que está fora da primeira tela, useoneoumount. - Elemento com
one/mountcomeça invisível até aparecer na tela. Se o JavaScript não carregar, ele fica invisível — não esconda texto essencial atrás disso. - Efeitos que movem o elemento (
float,wave,pulse…) não funcionam num<span>ou<a>solto no meio do texto: dê a ele uma classe que o torne bloco (ex.:blk) ou use num botão/div. glowdaqui é sempre comloopouhover. Escrito sozinho (sw-ani="glow"), com o pacote de animação carregado, ele é o componente Glow (brilho que segue o mouse e sombra no texto) — um não liga o outro.- Loop demais cansa e distrai: um ou dois por tela, no que realmente precisa de atenção.
O que ele não faz
- Quem ativou "reduzir movimento" no aparelho vê tudo parado (já no lugar). Isso é de propósito, para acessibilidade.
- Os nomes antigos
reveal-left/right/up/centernão rodam "ao abrir" — só comone,mountouscrub.

