Skip to main content
All types are exported from the package root:
The source .d.ts and JSDoc remain the canonical reference (your editor surfaces them on hover); the most-used shapes are reproduced here.

Data

CanvasMode controls whether the Skia canvas participates in transparent composition or owns its background. On Android, opaque mode selects SurfaceView. See Android surface rendering.

Momentum

Annotations

Scrub payloads

Config objects

These are the option shapes accepted by the matching props.

AxisLabelConfig

Shape for the topLabel / bottomLabel props. Both are opt-in (default off). With true, the chart floats its current top (topLabel) / bottom (bottomLabel) Y-axis bound at that edge, formatted with format (falling back to the chart’s formatValue) in color (falling back to the muted palette.gridLabel), aligned by position. The values track the live Y-axis range each frame on the UI thread. Set render to float a fully custom element at the edge instead of the built-in value. position: "extrema" instead floats the label (a dot + value, or your render element) at the actual data point where the high / low occurs, tracking it as the chart scrolls. See Axis labels and Marking the extrema points.

SelectionDotProps

Props passed to a custom selectionDot.component — the dot drawn at the scrub intersection. Every positional input is a SharedValue, so the dot animates on the UI thread without re-renders.

TooltipRenderProps

Context passed to a custom renderTooltip — the fully custom scrub tooltip. The element you return is a React Native view the chart floats over the canvas and positions on the UI thread (per scrub.tooltipPlacement). Every live field is a SharedValue, so bind them to animated text (e.g. an Animated.createAnimatedComponent(TextInput) driven by useAnimatedProps) and both movement and text stay on the UI thread — no JS re-render while scrubbing. See Custom tooltip.

ChartOverlayContext

The price↔pixel / time↔pixel bridge passed to a custom renderOverlay on LiveChart or LiveChartSeries. It hands you a single per-frame scale SharedValue plus pure mapping worklets.
Easiest path — the usePriceY / useTimeX hooks. They project a price / time to a SharedValue<number> that tracks the live axis for you. Render one component per level and read the value in your useAnimatedStyle:
Manual path. Read scale.get() inside your worklet — that read subscribes it to the live scale — then feed the snapshot to the pure mappings. (Reanimated only observes SharedValues read directly in a worklet’s closure, so the mappings take the snapshot as an argument rather than reading it themselves.)

DegenOptions

The most-used fields (see the source for the full tuning surface):

Palette

accentColor + theme derive a full LiveChartPalette. Override any subset via the palette prop. Frequently overridden keys:

Metrics

The geometry/motion analogue of LiveChartPalette. Override any subset via the metrics prop (per-namespace shallow merge — only the keys you set are replaced). See the Theming guide.