visx is a collection of reusable low-level visualization components for React, built to combine d3-based calculations with React’s DOM updating. It’s useful for building custom charts, including as a foundation for your own reusable React chart components, without learning d3 selection and enter, exit, update patterns.
Project status
- Active maintenance: The last upstream push was 2026-06-22, and multiple related updates were published on 2026-06-11 (alpha builds followed by a v4.0.0 promotion), indicating ongoing maintenance through mid-2026. There is no evidence of newer updates since late June 2026.
- Update cadence (observed): Updates appear in a tight burst on 2026-06-11 (alpha.17, alpha.18, then v4.0.0), with the most recent recorded activity on 2026-06-22. Compared to today (2026-10-02), the gap since then suggests a recent slowdown rather than continuous releases.
AI summary generated
Recent updates
v4.0.0
v4.0.0 is promoted from the previous alpha, with a stated focus on React 19 support and a set of toolchain and dependency upgrades. The release notes also call out multiple breaking changes, including requiring React 18 or 19 and removing prop-types.
BreakingFeaturesv4.0.0-alpha.18
Release v4.0.0-alpha.18 updates visx package versions and documentation, and includes a code change aimed at making text measurement safe during server-side rendering (SSR). The only concrete runtime code diff shown is in `@visx/text` string width calculation, plus an SSR test for `AxisBottom` to verify no warnings are emitted.
v4.0.0-alpha.17
v4.0.0-alpha.17 was published on 2026-06-11, but no release notes were provided by the publisher. Because the changelog is missing, developers should review the GitHub compare view and commit history to identify any API, behavior, or dependency changes before upgrading.
v3.12.0
v3.12.0 primarily introduces the new @visx/sankey package, including a React <Sankey /> component and d3-sankey exports, and wires it into the visx demo site (gallery tile and docs pages). The release notes also mention a small documentation/code-example fix.
Featuresv3.11.0
v3.11.0 primarily targets chart hover performance in visx-xychart, with changes localized to the internal animated path rendering used during tooltip/hover interactions. The diff also includes demo-only UI adjustments and standard version bumps across the monorepo packages.
v3.10.4
v3.10.4 primarily includes a bug fix for the brush behavior, specifically addressing jitter or jumping after mouse up. The code change introduces a debounced mousemove handler inside the brush implementation to smooth pointer movement timing.
v3.10.3
v3.10.3 is a small patch release for visx that is documented as a bug fix to LegendThreshold. The code changes show additional behavior changes in how Threshold legend label positions are computed, beyond what the release notes describe.
v3.10.2
v3.10.2 primarily contains a TypeScript export fix for @visx/responsive, making several previously mixed exports explicitly type-only. The rest of the diff is versioning and bookkeeping (package version bumps and changelog updates).
v3.10.1
v3.10.1 primarily reverts a previous change related to the Axis component. The release notes indicate the “shapeRendering” prop addition was reverted, and the code diff shows the prop was removed from both the AxisRenderer implementation and its TypeScript prop types.
Breakingv3.10.0
v3.10.0 for @visx/responsive claims only a typing improvement in the responsive enhancers. The actual code changes are broader, including a refactor of ParentSize internals into new hooks and new public hook exports (useParentSize, useScreenSize) plus associated config/types.
Featuresv3.9.0
v3.9.0 introduces a new optional `shapeRendering` prop for `Axis`, wiring it through to the rendered SVG axis line elements. The release also adds a Node version pin via `.nvmrc` and makes some documentation site/link related updates. The code diff shows a few additional README and changelog edits not mentioned in the release notes.
Featuresv3.8.0
Release v3.8.0 primarily updates Axis label rendering so that `defaultTextProps` are included alongside user-provided `labelProps`. In the monorepo, package versions are aligned to 3.8.0 via lerna.json and internal package.json files.