---
name: Lenis
slug: lenis
url: "https://dontmakeitugly.com/resources/lenis"
website: "https://lenis.darkroom.engineering"
github: "https://github.com/darkroomengineering/lenis"
npm: "https://www.npmjs.com/package/lenis"
type: package
categories:
  - motion
tags:
  - scroll
  - smooth-scroll
  - vanilla
  - react
  - agency
frameworks:
  - vanilla
  - react
  - agnostic
pricing: free
license: MIT
openSource: true
agentFriendly: excellent
agentAccessMethods:
  - documentation
  - github
  - npm
installCommand: npm install lenis
difficulty: intermediate
dateAdded: "2026-09-02"
---

# Lenis

Smooth scrolling that doesn't fight the browser.

- Type: Package
- Categories: Motion
- Pricing: Free · License: MIT
- Open source: yes
- Works with: Vanilla JS/CSS, React, Framework agnostic, TypeScript

## What it is

Lenis is a lightweight smooth-scroll library from darkroom.engineering. It gives you the buttery scroll feel of high-end agency sites while keeping native scroll behaviour and accessibility intact, and it plays well with GSAP ScrollTrigger.

## Why it's here

Smooth scroll is easy to overdo. Lenis is the one implementation that feels good rather than sluggish. Keep the lerp subtle.

## Best for

- portfolio sites
- marketing pages with scroll effects
- pairing with GSAP

## Links

- Website: https://lenis.darkroom.engineering
- GitHub: https://github.com/darkroomengineering/lenis
- npm: https://www.npmjs.com/package/lenis

## Can my agent use this?

Yes. The README covers setup for vanilla and React. Ask your agent to add it with conservative settings and to respect prefers-reduced-motion.

Agent friendliness: Excellent. Public docs, public source or an installable package. An agent can read, install and implement this directly.
Access methods: Docs, GitHub, npm.
Install: `npm install lenis`

## Prompt to hand your agent

```text
Use Lenis as a design and implementation reference for this project.

What it is: Smooth scrolling that doesn't fight the browser.

Website: https://lenis.darkroom.engineering
GitHub: https://github.com/darkroomengineering/lenis
npm: https://www.npmjs.com/package/lenis
Install: npm install lenis

Use it specifically for:
- portfolio sites
- marketing pages with scroll effects
- pairing with GSAP

How you can access it: Docs, GitHub, npm.
Works with: Vanilla JS/CSS, React, Framework agnostic.
License: MIT. Respect it.

Read the documentation before writing code, and use the current version's API. Install it properly rather than re-implementing it. Adapt the defaults to this project's existing design tokens, typography, spacing and accessibility requirements. Do not blindly copy the entire resource.
```

## Related

- [GSAP](https://dontmakeitugly.com/resources/gsap.md): The professional-grade animation toolkit, now free including all plugins.
- [AutoAnimate](https://dontmakeitugly.com/resources/autoanimate.md): One line of code that animates list changes for you.
- [Aceternity UI](https://dontmakeitugly.com/resources/aceternity-ui.md): Showy, copy-paste React components for landing pages that need a moment.
- [Anime.js](https://dontmakeitugly.com/resources/animejs.md): A lightweight, framework-free animation library with a beautiful API.

## In collections

- [Motion resources worth knowing](https://dontmakeitugly.com/collections/motion-worth-knowing.md)

Lenis is an independent resource listed by Don't Make It Ugly. We link to it; we aren't affiliated with it. Pricing and licence details are as understood at the time of listing; check the official site.
