Vitrine de movimento — 35 efeitos em JavaScript puro
JS Trinta e cinco efeitos, nenhuma dependência

O movimento que o CSS não alcança sozinho

Rolagem medida quadro a quadro, física com atrito e mola, desenho direto na tela e texto quebrado letra por letra. Tudo em JavaScript puro — copie o código de qualquer quadro e leve para o seu projeto.

35efeitos
0bibliotecas
7famílias
1arquivo
Antes de começar

Referências visuais para sites

Duas bibliotecas para garimpar direção de movimento e componentes antes de desenhar qualquer coisa. Os previews carregam ao vivo quando o site permite ser embutido.

pinstack.app/components
abrir ↗

Este site não permite ser exibido dentro de outra página. Abra em uma aba nova para ver o preview.

Abrir Pinstack
Pinstack — catálogo de componentes de interface prontos, bom para resolver padrões estruturais.
motionsites.ai
abrir ↗

Este site não permite ser exibido dentro de outra página. Abra em uma aba nova para ver o preview.

Abrir Motion Sites
Motion Sites — galeria de sites organizados por movimento, boa para escolher direção antes de codar.
styles.refero.design
abrir ↗

Este site não permite ser exibido dentro de outra página. Abra em uma aba nova para ver o preview.

Abrir Refero Styles
Refero Styles — interfaces reais agrupadas por estilo visual, útil para fechar a direção estética.

Índice

    01 a 08

    Rolagem como controle

    O CSS sabe avisar que um elemento entrou na tela. Não sabe dizer quanto dele já entrou. Essa medida contínua é o território do JavaScript: você avança e o efeito avança, você volta e ele volta. Cada quadro tem rolagem própria — role dentro dele.

    01rolagem

    Cartões que empilham

    Cada cartão trava no topo e o próximo sobe por cima. Os de baixo encolhem e escurecem, como papel empilhado de verdade.

    ETAPA 01

    Receber

    O arquivo entra uma vez e nunca mais é lido do zero.

    ETAPA 02

    Calibrar

    Você mexe no limite e o resultado muda na hora.

    ETAPA 03

    Conferir

    A prévia mostra apenas o que sobrou.

    ETAPA 04

    Exportar

    Com cópia de segurança do original guardada antes.

    role dentro do quadro
    02rolagem

    Galeria que anda de lado

    Você rola para baixo e o conteúdo caminha na horizontal. O painel fica preso enquanto a fita percorre toda a largura.

    peça 01
    peça 02
    peça 03
    peça 04
    peça 05
    peça 06
    role para baixo, anda para o lado
    03rolagem · tela

    Sequência quadro a quadro

    A rolagem vira a linha do tempo de uma animação desenhada na tela. Girar o objeto depende de quanto você rolou, não do relógio.

    quadro 1 de 90
    role devagar e depois volte
    04rolagem

    Texto que se preenche

    As palavras ganham cor conforme a rolagem passa por elas, com uma zona de transição de três palavras. O JavaScript quebra a frase sozinho.

    role e veja a frase acender
    05rolagem

    Máscara que revela

    Um furo redondo cresce no meio da cena e descobre a camada de baixo. Serve para antes e depois, ou para trocar de assunto sem trocar de página.

    antes
    depois
    role para abrir o furo
    06rolagem

    Faixas que se montam

    A imagem chega dividida em tiras que deslizam em direções alternadas até se encaixarem. Cada tira tem um atraso próprio.

    role para montar a imagem
    07rolagem

    Linha do tempo que se desenha

    O traço cresce junto com a rolagem e cada marco acende quando a linha chega nele. Vira o esqueleto de qualquer história contada em página.

    Briefinguma conversa, não um formulário
    Direçãotrês caminhos, um escolhido
    Execuçãoo caminho vira arquivo
    Ajusteduas rodadas incluídas
    Entregacom os fontes, sempre
    role e veja a linha crescer
    08rolagem

    Objeto que gira

    A rolagem controla a rotação de um objeto de quatro faces. Cada trecho mostra um lado diferente — a forma mais direta de apresentar um produto.

    Marca
    Web
    Motion
    Conteúdo
    role para girar o objeto
    09 a 14

    Ponteiro e física

    Aqui o movimento não tem destino marcado. Ele é calculado a cada quadro a partir de onde o ponteiro está, de quanta velocidade sobrou e de quanto atrito existe. É o que dá peso às coisas.

    09ponteiro

    Cursor com atraso

    O ponto acompanha na hora, o anel chega depois. Essa diferença de atraso entre os dois é toda a sensação de peso, e sai de uma linha de matemática.

    mexa o ponteiro aqui dentro
    o cursor real some com cursor:none
    10roda

    Rolagem com inércia

    O conteúdo persegue a posição da rolagem em vez de saltar até ela. A única diferença para o normal é um número: o quanto ele se aproxima por quadro.

    • Use a roda dentro deste quadro
    • O conteúdo escorrega até parar
    • Fator menor, mais escorregadio
    • Atenção com quem navega por teclado
    • Use com moderação
    • Fim da lista
    role com a roda do mouse
    11arrastar

    Arrastar e deslizar

    Segue o dedo e continua andando quando você solta, perdendo velocidade aos poucos. O atrito é uma multiplicação por 0,93 a cada quadro.

    01
    02
    03
    04
    05
    06
    arraste com o mouse ou o dedo
    12ponteiro

    Holofote no ponteiro

    O JavaScript só escreve a posição do ponteiro em duas variáveis. O brilho é um gradiente do CSS que lê essas variáveis — o custo é quase zero.

    passe por cima
    e por aqui também
    clássico de cartão de plano
    13tela · ponteiro

    Partículas que fogem

    Cada ponto tem um lugar de origem, é empurrado quando o ponteiro chega perto e volta devagar para casa. Duas forças opostas, e o resultado parece vivo.

    empurrão e mola de retorno
    passe o ponteiro sobre os pontos
    14ponteiro

    Botão com mola

    Mola de verdade, com velocidade e amortecimento recalculados a cada quadro, em vez de uma curva pronta. Ele oscila e assenta sozinho.

    rigidez e amortecimento, dois números
    15 a 19

    Texto tratado por partes

    O CSS anima o texto inteiro como um bloco só. Para tratar letra por letra, palavra por palavra ou dígito por dígito, alguém precisa quebrar o conteúdo antes — e esse alguém é o JavaScript.

    15entrada

    Embaralhar letras

    As letras giram como painel de aeroporto e vão travando da esquerda para a direita. Combina com tecnologia, contagem e revelação de nome.

    EM MOVIMENTO
    cerca de onze letras por segundo
    16entrada

    Revelar palavra por palavra

    O JavaScript quebra a frase e cada palavra entra com um atraso próprio. Fazer isso na mão significaria escrever cada palavra dentro de uma tag separada.

    atraso de 70 ms por palavra
    17contínua

    Palavras que se alternam

    A lista sobe dentro de uma janela da altura de uma linha e volta ao começo sem que ninguém perceba o pulo. Resolve o título que precisa dizer três coisas.

    Feito para
    • marcas
    • campanhas
    • produtos
    o primeiro item repete no fim
    18entrada

    Odômetro

    Cada dígito é uma fita de zero a nove que desliza até parar no número certo, um depois do outro. Diferente do contador simples: aqui os dígitos rolam.

    bom para painel de estatística
    19contínua

    Contador regressivo

    Conta o tempo que falta e se corrige a cada segundo. A regra de ouro é calcular sempre a partir da data final, nunca subtraindo de um em um.

    00horas
    00min
    00seg
    base de página de lançamento
    20 a 24

    Listas e layout

    Quando um item muda de lugar, o navegador simplesmente o redesenha na posição nova, sem transição nenhuma. Fazer ele deslizar até lá exige medir antes, medir depois e animar a diferença. A técnica tem nome: FLIP.

    20clique

    Reordenar lista

    Mede onde cada item estava, troca a ordem, mede onde ficou e anima a diferença. Sem isso, os itens saltariam de posição.

    01Receber o material
    02Calibrar
    03Conferir
    04Exportar
    a técnica se chama FLIP
    21clique

    Filtro de galeria

    O mesmo FLIP aplicado a esconder e mostrar: os itens que ficam deslizam suavemente para as vagas que abriram.

    marca
    web
    marca
    web
    marca
    web
    clique nos filtros
    22clique

    Janela que nasce do card

    A janela abre a partir do tamanho e da posição exatos do item clicado, então o olho não perde o objeto de vista. É o que faz um site parecer aplicativo.

    abrir 1
    abrir 2
    abrir 3
    fechar
    clique num quadrado
    23ponteiro

    Painéis que cedem espaço

    Um painel abre e os outros encolhem. O JavaScript só troca a classe — a divisão do espaço quem resolve é o CSS, o que mantém tudo fluido.

    Marca
    Web
    Motion
    Conteúdo
    passe o ponteiro ou clique
    24rolagem

    Carregar ao chegar no fim

    Um marcador invisível no fim da lista avisa quando fica visível, e aí novos itens entram. Substitui o botão de próxima página.

    carregando mais…
    role até o fim do quadro
    25 a 27

    Dados que se constroem

    Gráfico animado não é enfeite: o movimento mostra a construção do número e segura o olho no dado. Os três aqui saem de uma lista de valores, então funcionam com dados de verdade.

    25entrada

    Gráfico de barras

    As barras sobem até a altura proporcional ao valor e o número conta junto. O gráfico inteiro é montado a partir de uma lista.

    troque a lista e o gráfico muda
    26entrada

    Anel de progresso

    O círculo é um traço tracejado do tamanho da própria volta, e o vazio vai sendo puxado até completar a porcentagem.

    0%
    bom para nota, meta e uso de plano
    27entrada

    Gráfico de linha

    O caminho é calculado a partir dos números, se desenha da esquerda para a direita, e cada ponto aparece depois que a linha chega nele.

    o caminho sai dos dados
    28 a 32

    Desenho direto na tela

    Aqui não existe elemento nenhum: o navegador entrega um retângulo em branco e o código pinta cada ponto. Todos param sozinhos quando saem de vista — senão a bateria de quem visita paga a conta.

    28tela

    Partículas conectadas

    Pontos flutuam e ganham uma linha entre si quando chegam perto o bastante. Clássico de fundo de site de tecnologia, e cabe em vinte linhas.

    só desenha enquanto está visível
    passe o ponteiro para atrair
    29clique

    Confete

    Cada papel tem gravidade, giro e resistência do ar. Quando todos saem da tela, o laço para sozinho e não consome mais nada.

    use na confirmação de compra
    30tela · ponteiro

    Rastro de fluido

    Em vez de limpar a tela a cada quadro, ela é clareada de leve. O que ficou para trás vai sumindo aos poucos — e é isso que vira rastro.

    duas linhas de código
    mexa o ponteiro dentro do quadro
    31tela · ponteiro

    Malha que ondula

    Uma grade de linhas com altura calculada por seno, desenhada em perspectiva. Parece 3D, mas é matemática de escola.

    nenhuma biblioteca 3D envolvida
    passe o ponteiro sobre a malha
    32tela · clique

    Viagem pelas estrelas

    Cada estrela tem uma profundidade que diminui a cada quadro. Dividir a posição por ela cria a perspectiva, e com ela a sensação de velocidade.

    segure o clique para acelerar
    segure o botão do mouse
    33 a 35

    Onde a página vira outra coisa

    Um fala direto com a placa de vídeo, outro monta a palavra a partir de pixels e o último usa um recurso novo do navegador para trocar de tela sem trocar de página. É a faixa que costuma aparecer só em biblioteca paga.

    33shader · ponteiro

    Fundo com shader

    O desenho não é feito pelo processador, e sim pela placa de vídeo: um programinha calcula a cor de todos os pixels ao mesmo tempo. Fundo fluido em tela cheia sem travar nada.

    WebGL puro, sem Three.js
    passe o ponteiro para iluminar
    34tela · ponteiro

    Texto de partículas

    A palavra é escrita numa tela invisível, os pixels dela viram pontos e cada ponto ganha vida própria. Fogem do ponteiro e voltam puxados por uma mola.

    a palavra vem de uma tela invisível
    passe o ponteiro para desmanchar
    35clique

    Transição entre telas

    O navegador fotografa o antes e o depois e faz a passagem sozinho. Onde o recurso ainda não existe, a troca acontece direto, sem quebrar nada.

    Primeira tela
    recurso novo dos navegadores

    Trinta e cinco efeitos, nenhuma dependência

    Tudo o que está nesta página roda com o que o navegador já traz. Nada de instalar, nada de atualizar, nada que quebre quando um pacote mudar de versão. O botão copiar código de cada quadro entrega a marcação e a função inteira daquele efeito, prontas para colar.

    Os efeitos que desenham na tela só rodam enquanto estão visíveis, e a página respeita prefers-reduced-motion para quem pediu menos movimento no sistema.

    código copiado

    Coloque seu e-mail para adquirir o ebook!