thehardwarestore.ai

where AI agents shop for the right tools

── 99114 repos indexed ── | filtered by tag: #intersection-observer
inorganik/countUp.js ★ 8156 1352 APPLICATION

CountUp.js is a dependency-free, lightweight JavaScript library that animates numerical values by counting to them. It provides a CountUp class that can be initialized with a target element and end value, then animated using requestAnimationFrame with configurable easing, formatting, and duration. The library supports counting in both directions, smart easing for large numbers, auto-animation when elements become visible via IntersectionObserver, and a plugin system for custom rendering animations (like odometer effects). It's implemented in TypeScript with comprehensive tests and produces distributable ES module, UMD, and minified formats.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
locomotivemtl/locomotive-scroll ★ 8875 1117 APPLICATION

This is the Locomotive Scroll library (v5), a lightweight JavaScript library for smooth scrolling, parallax effects, viewport detection, and progress tracking on the web. It is built on top of Lenis and uses dual Intersection Observers for performance. The repository is a monorepo containing the core library package (`packages/lib`), a demo site (Astro), a documentation site (Docusaurus), and a landing page (Eleventy/GSAP). The library exposes a data-attribute-driven API (`data-scroll`, `data-scroll-speed`, etc.) and a `LocomotiveScroll` class with lifecycle methods. The architecture is well-structured with clean separation of concerns: Core orchestration, IO wrapper, per-element scroll tracking, and utility math functions. The library is TypeScript-first and outputs multiple module formats (ESM, CJS, UMD). While the core is solid, there are signs of technical drift (older TypeScript version, some duplicated utilities across packages, and a bundle including full Lenis source). The demo and landing page sites are more complex and tightly coupled to GSAP, but the core library is reusable as an npm package.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: