Area Chart

A line chart with a light wash under each line, for totals and stacked parts over time.
Stable
Web
iOS
Android
@advui/charts
Source

One series

People displacedMillions, estimated

Installation

pnpm
pnpm add @advui/charts
npm
npm install @advui/charts

Usage

import { AreaChart } from '@advui/charts'

<AreaChart
  title="People displaced"
  data={[{ month: 'Mar', displaced: 1.21 }, { month: 'Apr', displaced: 1.34 }]}
  index="month"
  series={[{ key: 'displaced', label: 'Displaced (millions)' }]}
/>

Examples

Stacked

Assistance by modalityMillions of USD; the top edge is the total.
Cash
In kind
Services

API reference

AreaChart

Takes every Line Chart prop, plus:
PropTypeDefaultDescription
title requiredstring—Names the chart: its heading and accessible name.
descriptionstring—Muted line under the title (units, period).
data requiredT[]—One object per category or x position. Its type `T` (an interface works) is inferred, and `index` and `series` must name its fields.
index requiredkeyof T & string—Field holding each row’s label.
indexLabelstring`index`Heading of the label column in the table view.
series required{ key: keyof T & string; label: string }[]—Numeric fields to plot. Colors follow this order (`chart1`…`chart8`), never the values. An array declared apart from the chart needs `as const` to keep its keys literal.
stackedbooleanfalseStacks the series, so the top edge is their total. The tooltip and table keep each series’ own value.
valueFormatter(value: number) => string—Formats tooltip and table values. Axis ticks are compact (1.2K).
heightnumber240Pixels, including the axes.
widthnumber—Fixed width. By default it fills its container.
labelsPartial<ChartLabels>—"Show table", "Hide table" and the keyboard hint, for translation.

Accessibility

  • The chart is a figure named by its title. The plot is one focusable image whose name gives the title, description and a hint; the arrow keys (Home / End too) step through the values, which a polite live region reads out.
  • Every chart has a table view ("Show table") with the same values, so nothing depends on seeing colors or hovering.
  • Identity never relies on color alone: two or more series get a legend, and the tooltip names each value.
  • Colors come from the chart1…chart8 theme keys, a palette checked for color-blind separation in light and dark mode.
Keyboard interactions
KeyAction
TabFocuses the plot, then the table button.
Arrow keys / Home / EndMove between values and read them.
EscapeHides the tooltip.

Responsive behavior

Fills its container; x labels thin out when they would overlap.

Platform notes

Web
SVG in the page. Hover shows the tooltip; the arrow keys work once the plot has focus.
iOS
Drawn with react-native-svg. Tap the plot to show the tooltip for that point. VoiceOver and TalkBack read the title and description, without the arrow-key hint; Show table lists every value.
Android
Same as iOS.
Since v0.6.0Last updated Nov 2, 2026Edit this page on GitHub