#2846·nivo

ScatterPlot: quadrant zoom, draft approach, looking for direction (follow-up to #31)

Author: GGrassiantCreated Aug 6, 2026Updated Aug 6, 2026

Is your feature request related to a problem? Please describe. There's no built-in way to do a "click a quadrant to zoom in" interaction on ScatterPlot as mentioned in #31

Describe the solution you'd like The core idea: reuse the existing Mesh by swapping in a "clickable" version of it when a new enableQuadrantZoom prop is passed.

tl;dr

enableQuadrantZoom={true} ↓ QuadrantZoomMesh replaces the mesh layer's hit-testing ↓ user clicks the chart background ↓ compute zoomBounds for that quadrant's data range

Draft idea here

Describe alternatives you've considered If this is a bit too far-fetched, we could just keep using a workaround when using the lib, with Context and dynamic ranges as mentioned in the original thread in 2023

Additional context As mentioned above, back in 2023, a workaround implemented in State Of JS helped me ship something similar at work. I thought I would try to contribute back at some point. I thought maybe a built-in layer or mesh could be nice. Full disclosure, in order to have a rough draft quickly I used Claude Code to speed up the process. It's still very rough, with known limitations (node springs animating on scale change, as you mentioned before; a double call to computeXYScalesForSeries; etc.). Before I go clean it up into something more polished, I wanted to check: does this feel like the right direction to you? Or would you approach it differently, like a context-based approach, or something else entirely?