Renderizador personalizável de gradientes 3D animados para React, baseado em Three.js e React Three Fiber, com versões para Vue, Framer e Figma.
darkroomengineering/lenis
Uma biblioteca leve e sem dependências para adicionar rolagem suave à web, com animação e aceleração gradual sobre a rolagem nativa.
- Estrelas
- 17,120
- Forks
- 779
- Issues abertas
- 33
- Último commit
- há 9 dias
O que é?
Lenis é uma biblioteca de rolagem suave para páginas web. Ela intercepta a entrada do mouse e do toque e anima a posição da rolagem em direção ao destino, deixando os sites com uma sensação mais fluida. Em vez de substituir a rolagem do navegador, ela funciona sobre ela, preservando recursos como position: sticky, links âncora e o comportamento de acessibilidade.
Com uma única instância, oferece rolagem vertical, horizontal e aninhada. Também disponibiliza eventos e um método raf por frame para manter cenas WebGL, GSAP ScrollTrigger e efeitos parallax sincronizados com a posição da rolagem. Há pacotes oficiais para React, Vue e Framer, além de um plugin snap separado para alinhar seções. As configurações incluem duração, easing ou lerp, suporte a movimento reduzido e exclusão de elementos específicos por meio de atributos data ou de um callback prevent.
Lenis pode ser instalado pelo npm ou carregado por um script de CDN para uso sem etapa de build. Entre as limitações conhecidas estão a falta de suporte a CSS scroll-snap, a impossibilidade de a rolagem suave atravessar iframes e o limite de 60 fps no Safari.
Recursos principais
- 01Nenhuma dependência em runtime e bundle pequeno
- 02Rolagem suave vertical, horizontal e aninhada em uma única instância
- 03Preserva comportamentos nativos de rolagem, como position: sticky e links âncora
- 04Sincroniza cenas WebGL, GSAP ScrollTrigger e efeitos parallax
- 05Pacotes oficiais para React, Vue e Framer, além de um plugin snap
Casos de uso
- Adicionar rolagem suave a sites de marketing ou portfólios
- Sincronizar uma cena Three.js ou WebGL com a rolagem da página
- Criar animações controladas pela rolagem com GSAP ScrollTrigger
- Criar áreas de rolagem suave dentro de modais ou painéis aninhados
Início rápido
- 1
Instale o Lenis com npm
npm i lenis - 2
Importe o Lenis no seu código
import Lenis from 'lenis' - 3
Crie uma instância com autoRaf ativado
Antes de usar
- Você precisa integrar o Lenis ao seu próprio fluxo de rolagem e loop de animação, a menos que use autoRaf ou a configuração sem código.
Tópicos
Perguntas frequentes
- O que é lenis?
- Uma biblioteca leve e sem dependências para adicionar rolagem suave à web, com animação e aceleração gradual sobre a rolagem nativa. Lenis é uma biblioteca de rolagem suave para páginas web. Ela intercepta a entrada do mouse e do toque e anima a posição da rolagem em direção ao destino, deixando os sites com uma sensação mais fluida. Em vez de substituir a rolagem do navegador, ela funciona sobre ela, preservando recursos como position: sticky, links âncora e o comportamento de acessibilidade.
- lenis é gratuito? Qual é a licença?
- lenis é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- lenis ainda é mantido?
- Manutenção ativa. O último commit de lenis foi em 29 de out. de 2026.
- Para que posso usar lenis?
- Adicionar rolagem suave a sites de marketing ou portfólios Sincronizar uma cena Three.js ou WebGL com a rolagem da página Criar animações controladas pela rolagem com GSAP ScrollTrigger Criar áreas de rolagem suave dentro de modais ou painéis aninhados
- Como instalar lenis?
- Instale o Lenis com npm: npm i lenis Importe o Lenis no seu código: import Lenis from 'lenis' Crie uma instância com autoRaf ativado
- Onde consigo lenis?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/darkroomengineering/lenis
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de animação open source para JavaScript, React e Vue, com springs, gestos, transições de layout e efeitos vinculados à rolagem.
Efeitos de shader em WebGPU empacotados como componentes prontos para React, Vue, Svelte, Solid e JavaScript puro.
Um renderer React para Three.js que permite criar cenas 3D de forma declarativa com componentes JSX.
Biblioteca para copiar para o projeto, com 35 efeitos de UI em canvas independentes de framework, como líquido, vidro e fogo, que funcionam sobre conteúdo HTML ao vivo.
Shaders para canvas no estilo WebGL, sem dependências, para planos de fundo e texturas na web; use via npm (React ou JavaScript puro) ou crie visualmente no Paper.