Skip to content
Data & ChartsPro

River Chart

River chart (streamgraph) for how a mix changes over time: plain, with gradient bands or offset.

Usage

Tickets by topic

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.
Support tickets by topic, data table
monthBillingAccessBugsAPIOther
Jan110114628664
Feb140119679672
Mar151123978379
Apr17399937573
May1521001136169
Jun152931255570
Jul124691243969
Aug100781355575
Sep79631326267
Oct80611437561
Nov69541629766
Dec91591809078

Installation

River Chart comes with WunderUI Core and Pro, in the package from your plan. See the plans.

Then import what you need:

tsx
import { RiverChart, RiverChartProps, RiverChartVariant } from "@wunderui/react"

Examples

Basic River

Tickets by topic

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.
Support tickets by topic, data table
monthBillingAccessBugsAPIOther
Jan110114628664
Feb140119679672
Mar151123978379
Apr17399937573
May1521001136169
Jun152931255570
Jul124691243969
Aug100781355575
Sep79631326267
Oct80611437561
Nov69541629766
Dec91591809078

Gradient River

Tickets by topic

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.
Support tickets by topic, data table
monthBillingAccessBugsAPIOther
Jan110114628664
Feb140119679672
Mar151123978379
Apr17399937573
May1521001136169
Jun152931255570
Jul124691243969
Aug100781355575
Sep79631326267
Oct80611437561
Nov69541629766
Dec91591809078

Offset River

Tickets by topic

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.
Support tickets by topic, data table
monthBillingAccessBugsAPIOther
Jan110114628664
Feb140119679672
Mar151123978379
Apr17399937573
May1521001136169
Jun152931255570
Jul124691243969
Aug100781355575
Sep79631326267
Oct80611437561
Nov69541629766
Dec91591809078

State – Loading

Tickets by topic

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.

In context

How the component is used inside real screens — the same compositions as the Usage section of the Figma page.

Ticket Topics

What customers write about, month by month.

What customers write about

Support tickets by topic, last 12 months

River chart, 12 points from Jan to Dec. Billing from 110 to 91, lowest 69, highest 173; Access from 114 to 59, lowest 54, highest 123; Bugs from 62 to 180, lowest 62, highest 180; API from 86 to 90, lowest 39, highest 97; Other from 64 to 78, lowest 61, highest 79.
Support tickets by topic, data table
monthBillingAccessBugsAPIOther
Jan110114628664
Feb140119679672
Mar151123978379
Apr17399937573
May1521001136169
Jun152931255570
Jul124691243969
Aug100781355575
Sep79631326267
Oct80611437561
Nov69541629766
Dec91591809078

API Reference

PropTypeDefault
variant"basic-river" | "gradient-river" | "offset-river""basic-river"
data · index · seriesrows · string · { key, label?, color? }[]—
state"ready" | "loading" | "empty" | "error""ready"
hiddenSeries · animate · animationKeystring[] · boolean · string | number—
data*readonly ChartDatum[]—
index*string—
series*readonly ChartSeries[]—
activeIndexnumber | null—
animateboolean—
animationKeystring | number—
axisFormatterChartValueFormatter—
categoryAxisboolean—
categoryFormatter(label: string) => string—
categoryTicksreadonly string[]—
classNamestring—
defaultActiveIndexnumber | null—
defaultSelectedRangeChartRange | null—
descriptionstring—
emptyDescriptionstring—
emptyTitlestring—
errorDescriptionstring—
errorTitlestring—
gridboolean—
gridIntervalsnumber—
gridStyle"solid" | "dashed"—
heightnumber—
hiddenSeriesreadonly string[]—
includeZeroboolean—
labelstring—
onActiveIndexChange(index: number | null) => void—
onRetry() => void—
onSelectedRangeChange(range: ChartRange | null) => void—
rangeSelectableboolean—
selectedRangeChartRange | null—
tooltipboolean—
tooltipTitle(datum: ChartDatum, index: number) => React.ReactNode—
valueAxisboolean—
valueAxisSide"left" | "right"—
valueDomainreadonly [number, number]—
valueFormatterChartValueFormatter—
valueTicksreadonly number[]—
widthnumber—

Theming

The CSS variables this component reads. Set one on any wrapper to restyle everything inside it. More in Theming.

VariableUsed forDefault
Color
Value#FFFFFFdark #1C1D20
Motion
Duration250ms
Easingcubic-bezier(0.22, 1, 0.36, 1)