finds.dev← search

// the find

airbnb/visx

★ 20,883 · TypeScript · MIT · updated Jun 2026

🐯 visx | visualization components

visx is Airbnb's low-level React charting primitives built on D3 math — shapes, scales, axes, tooltips, brush, geo, etc. — each as its own npm package. It's for teams who want to build their own chart library without forking d3 into useEffect hooks. Not a drop-in chart component; you are writing the chart yourself.

The mental model split it solves is real: D3 owns the math, React owns the DOM, and you never fight them against each other. The granular package structure means a project that only needs @visx/shape and @visx/scale doesn't pay for the geo or network packages. The a11y package (@visx/a11y) ships keyboard navigation and ARIA support as a first-class concern with a state machine for focus management, which is rare in visualization libraries. Active maintenance — last commit today, v4 migration was handled with a proper guide and changelogs.

The low-level abstraction is a tax you pay on every chart: sizing, margins, scales, and axis placement are always your problem. A simple bar chart requires more boilerplate here than Recharts or Chart.js, which is fine for a design system but painful for one-off dashboards. Animation is deliberately excluded, which means wiring in react-spring or framer-motion yourself and hoping the integration doesn't break on React upgrades. Documentation quality varies significantly across the 30+ packages — @visx/xychart has a large API surface that's only partially documented, and some smaller packages have essentially no examples beyond the gallery source code.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →