Overview

A headless charting engine for React Native — Skia for drawing, Reanimated for animation, Gesture Handler for touch.

@delacour/react-native-charts draws charts and nothing else. Every colour, font and size is a value you pass in: there is no className, no token and no theme. The skinned Chart in @delacour/react-native-ui is this engine with the theme attached, and it is the one to reach for when you want a chart that already matches the rest of the library.

import { CartesianChart, ChartLine } from "@delacour/react-native-charts";

<CartesianChart data={rows} xKey="day" yKeys={["revenue"]}>
  <ChartLine color="#0A84FF" curve="monotone" yKey="revenue" />
</CartesianChart>;

A chart is a root and the marks you place inside it. The root turns rows into scales, ticks and plotted points and publishes them through a context; a mark reads that context and draws one thing. The same mark also takes its points directly, which is what a render prop hands it. Composition is where those two forms, and the rules for mixing them, are laid out.

The charts

The parts

What is not here

A className. A colour token. A font that ships with the package. A legend, a tooltip view or anything else drawn outside the canvas. Each of those belongs to whatever skins the engine, and the reason it is drawn that way is in the package's own AGENTS.md.

On this page