Skip to content

Charts that feel alive.

From gallery to app

  1. Install
  2. Your data
  3. Make it yours

Installation

Complete the one-time setup first.

Usage

Build the definition with TanStack Charts. Show it with Chart, in a ChartFrame.

traffic-chart.tsx

Composition

  • ChartFrame

    Sets the series colors and the tooltip styles.

    • ChartCaptionOptional
      • ChartTitle
      • ChartValueOptional
      • ChartDescriptionOptional
    • ChartActionOptional

      Shows beside the caption. Moves below it on narrow screens.

    • Chart

      Owns the motion. Accepts the TanStack core Chart props.

      • ChartCenterOptional

        Covers the plot and centers its content, such as a donut total.

    • ChartLegendOptional
      • ChartLegendItemRepeats
    • ChartTable

      Screen readers only.

Motion

  • When a chart scrolls into view, it fades in. Its bar, line, area, and arc marks grow from their baseline.
  • A chart that the server renders on screen does not move when the page loads. A chart that mounts later, for example after a link, grows in.
  • When the data changes, each mark moves to its new value. Give each mark a stable key.

To change the motion of one chart, give it a renderer.

revenue-chart.tsx

To stop the motion, use the static SVG renderer.

revenue-chart.tsx

Theming

Charts use the colors --chart-1 to --chart-6. Set them for light and dark mode.

globals.css

To change one chart, set a color on its frame.

chart.tsx

Accessibility

  • ariaLabel names the chart for screen readers.
  • ChartTable gives screen readers the exact values.
  • Press Tab to focus a chart that has tooltips. Use the arrow keys to move between points.
  • Press Enter to pin a tooltip. Press Escape to close it.
  • When reduced motion is on, charts show at once and do not move.

All parts also accept className and native HTML attributes.

ChartFrame

--ts-chart-1: color = var(--chart-1)
The color of the first series. --ts-chart-2 to --ts-chart-6 set the other series. Set them in style to change the colors of one chart.

ChartAction

children: ReactNode
Controls for the chart, such as a period toggle.

Chart

Also accepts the props of the TanStack core Chart, such as definition, ariaLabel, height, and initialWidth.

renderer: ChartRenderer = chartMotion
Draws and animates the chart. chartMotion is a TanStack motion renderer with a spring.
children: ReactNode
Content on top of the plot, such as ChartCenter.

ChartLegendItem

color: stringRequired
The series color. Use the same value as the mark.
swatch: "square" | "line" | "dashed" = "square"
The swatch shape. Use line for a line series and dashed for a dashed line.

ChartTable

caption: stringRequired
Names the table for screen readers.
columns: string[]Required
Column headings. The first column labels each row.
rows: (string | number)[][]Required
The exact values. The table is visible to screen readers only.