---
title: "react-horizontal-scrolling-menu — a React scroll primitive"
description: "Case study: maintaining react-horizontal-scrolling-menu through React 17, 18 and 19 — 788 stars, ~84k weekly npm installs, shipped by Our World in Data, erxes and Reapit."
canonical: "https://asmyshlyaev177.dev/projects/react-horizontal-scrolling-menu"
image: "https://asmyshlyaev177.dev/og_image.png"
---

[All projects](https://asmyshlyaev177.dev/projects.md)

/wk npm installs · maintained through multiple React majors

# react-horizontal-scrolling-menu

A reusable horizontal scroll component. TypeScript, well tested, and used in production dashboards I never get to see. Maintained for years across multiple React majors and refactored along the way.

GitHub stars

788

npm installs / week

84k

## The challenge

Most horizontal-scroll components in React either force a styling system on you or fall apart on resize. The opportunity was a small primitive — you pass it items and arrows, it handles the scroll math.

## My role

Inherited the library, rewrote the core in TypeScript, added tests + Storybook, and kept the public API stable through React 17, 18, and 19.

## Result

20,000+ repositories depend on it. Our World in Data and Precious Plastic both run the current major; erxes, Reapit and an official AWS solution ship it too. Bug reports arrive from teams I've never heard of.

## Built with

-   React.js
-   CI/CD
-   storybook
-   npm

[Live demo](https://react-horizontal-scrolling-menu.dev) · [Source](https://github.com/asmyshlyaev177/react-horizontal-scrolling-menu)

I'm available for full-time remote work in EU timezones. Happy to talk through anything here in more detail.

[Get in touch](https://asmyshlyaev177.dev/#contact)

---

Site summary for LLMs: <https://asmyshlyaev177.dev/llms.txt> · Blog: <https://asmyshlyaev177.dev/blog>
