Introduction

Fast, interactive charts for React. Free and open source.

Reincharts is a library of composable components to build interactive charts: lines, areas, bars (vertical and horizontal), scatter and bubble charts on numeric, time or category axes, all with pan, zoom, crosshairs, tooltips, legends, annotations and drawing tools out of the box. The same engine also powers a complete set of financial charts: candlesticks, 30+ indicators, Fibonacci and position tools and a ready-made trading chart component.

Everything is drawn on <canvas> by one small engine, so a chart with tens of thousands of points still pans and zooms smoothly. Components are plain React: you compose a chart from a <ChartCanvas>, one or more <Pane>s, series, axes and overlays.

<ChartCanvas data={data}>
  <Pane>
    <AreaSeries y="visitors" />
    <YAxis />
    <Tooltip />
  </Pane>
  <XAxis />
  <Crosshair />
</ChartCanvas>

When to use it

  • Dashboards and data apps that need more than static pictures: zoomable time series, synced charts, live data, thresholds and annotations.
  • Large or streaming datasets, where SVG chart libraries slow down.
  • Trading and finance apps, from a single candlestick chart to a full trading terminal.

Packages

Install only the packages you use (recommended), or the umbrella package reincharts, which re-exports all of them.

PackageContents
@reincharts/coreChartCanvas, Pane, hooks, scales, themes and the chart engine
@reincharts/seriesChart types: line, area, bars, scatter, candlesticks...
@reincharts/axesXAxis, YAxis, Grid
@reincharts/coordinatesCrosshair, last-value labels, price lines
@reincharts/tooltipTooltips and legends
@reincharts/annotationsReference lines and areas, markers, labels, watermarks
@reincharts/interactiveDrawing tools, brush, zoom buttons
@reincharts/indicatorsTechnical indicators and bar transforms
@reincharts/datafeedDatafeed adapters, realtime updates, aggregation, replay
@reincharts/widget<TradingChart>: a complete trading chart UI

Why Reincharts

  • Free and MIT. No license key, no watermark, no usage limits.
  • Fast. One render loop, two canvas layers, and only the visible points are touched each frame.
  • Composable. Every series, axis and tool is a component. Writing your own takes a single hook.
  • Typed. Strict TypeScript, generic over your data type, with every prop documented in the API reference.

On this page