locomotivemtl/locomotive-scroll

🛤 Detection of elements in viewport & smooth scrolling with parallax.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 49 minutes ago
Added to GitGenius on September 7th, 2026
Created on October 12th, 2016
Open Issues & Pull Requests: 25 (+0)
GitHub issues: Enabled
Number of forks: 1,118
Total Stargazers: 8,859 (+0)
Total Subscribers: 77 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 45.3 days
Mean response time: 435.8 days
90th percentile: 1636.5 days
Tracked items: 263

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 1% of issues opened in the past year have been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 338 days
Stale 30+ days: 5
Stale 90+ days: 4

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • v5 (9)
  • enhancement (7)
  • dependencies (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Locomotive Scroll is a lightweight JavaScript library for detecting elements in the viewport, triggering animations, and implementing smooth scrolling with parallax effects.

The library solves the problem of coordinating scroll-based animations and smooth scrolling behavior across web pages. It uses dual Intersection Observers to optimize detection separately for triggers and animations, and it builds on Lenis to provide smooth scrolling with improved performance. The tool automatically disables parallax effects on mobile devices through smart touch detection, reducing unnecessary processing on smaller screens.

Developers building interactive scroll experiences should consider this tool if they need a compact solution that handles both viewport detection and smooth scrolling in a single package. The library is particularly suited for projects where file size matters, as it compresses to only 9.4 kilobytes gzipped. It is built with TypeScript first, meaning full type support is native rather than added afterward. The tool maintains accessibility by preserving native scrollbars and keyboard navigation while providing proper ARIA support, making it suitable for projects with accessibility requirements.

The project maintains active issue tracking through GitHub Issues. Development follows a TypeScript-first approach, indicating a commitment to type safety from the ground up. The codebase is built on top of Lenis, integrating with an external scroll library rather than implementing smooth scrolling independently.