Line chart

A React component in Beamline's Charts & data-vis category.

Values over time as lines: curves, point markers, dashed series for forecasts, reference lines for limits and targets, an optional zero baseline and a range handle; missing values break the line.

Use it for

  • Trends and comparisons between a few series (latency percentiles, actual vs forecast).
  • A value against a limit or target (references).

Not for

Anatomy

  • title and description (figcaption; can be visually hidden)
  • actions slot (range, type)
  • legend (toggle buttons)
  • table button
  • plot (kept left to right in RTL: time runs one way, O1 D2)
  • tooltip
  • lines
  • unmeasured band (hatched, “Not measured”) over a run where no visible series was measured
  • point markers
  • reference lines with labels (haloed by the card where a line crosses them)
  • range handle

Variants

  • 0: curve: linear · monotone · step · bump · natural
  • 1: dots: none · all · last
  • 2: series dashed (forecast)
  • 3: references (neutral · danger · success)
  • 4: zero baseline
  • 5: brush

States

  • loading (skeleton bars)
  • empty (no data for the range)
  • missing values: a series with a gap breaks; where no visible series was measured the break is a hatched band that says Not measured; tooltip and table say Not measured
  • series hidden from the legend
  • table view

Keyboard

  • Tab focuses the plot; ←/→ (or ↑/↓) move the tooltip point by point, including onto unmeasured points; the first press starts at an end; Home/End jump; Escape hides the tooltip
  • Legend buttons toggle series (aria-pressed)
  • The table button switches to a table of every value and back
  • With brush: each end of the range handle is a slider; ←/→ move it one point

Motion

Lines are revealed left to right once (sweep duration); afterwards a rescaled axis, a hidden series or new data carries the lines to their new heights. Nothing moves under reduced motion.

Props

PropTypeDefaultDescription
data / xT[] / keyof T—Rows and the column on the category axis.
seriesChartSeries[]—{ key, label, color?, format?, dashed? } per plotted column; colours follow the series palette.
title / hideTitle / descriptionstring / boolean / ReactNode—The figure's name is always its accessible name.
xFormat / yFormat(v) => string—Tick, tooltip and table formats.
heightnumber—
grid / legend / tableboolean—Default on.
loadingboolean—
actionsReactNode—Controls beside the legend.
classNamestring—
curveChartCurve—
dots"none" | "all" | "last"—
referencesChartReference[]—{ y, label, tone? } horizontal markers.
zeroboolean—Start the value axis at 0.
brushboolean—
classNamesChartClassNames—Frame, tooltip and slice-list parts as applicable to this chart.
style / refCSSProperties / Ref<HTMLElement>—The native chart figure; layout measurement refs stay internal.

Dependencies

d3-shape, motion

Import

import { LineChart } from "@/components/line-chart/line-chart";

Get it

Line chart is part of Beamline: 190 React components and screens your coding agent (Claude Code, Codex, Cursor or any MCP client) installs into your app through Beamline's MCP server, as a ready-built package or as plain React source you can change. $49 one payment (regular $200), no subscription, a year of updates, one licence for your whole team. Get Beamline · Connect your agent

More in Charts & data-vis

  • Activity heatmap: A calendar of daily counts, one cell per day on a sequential ramp: weeks across, weekdays down, month and weekday labels, a legend scale, hatched days…
  • Area chart: Amounts over time as filled areas: overlapping, stacked or as shares of 100%, five fills, two strokes, five curves, a range handle; gaps for missing…
  • Bar chart: Amounts by category as bars: columns or rows, grouped, stacked or as shares, reference lines, five looks (rounded, cells, trace, isometric, monospace), a…
  • Composed chart: Different measures on one time axis: bars, lines and areas per series, a left and a right value axis with their own formats, and reference lines.
  • Gauge: One value against a known range: a semicircle, a 270° dial or a full ring, filled or with a needle, coloured bands with their names (healthy, busy…
  • Pie chart: A few shares of a whole as a pie or donut, with spaced slices, percent labels, a centre readout and a list of every slice with value and share; hovering…
  • Radar chart: A few series compared across the same five to eight dimensions as polygons on a polygon or circle grid; hover or arrow keys pick a dimension and read…
  • Radial chart: Progress of a few measures toward their targets as concentric rings, full or half circle, with a centre readout and a list of each ring's value, target…
  • Ridgeline: Distributions per group as overlapping density ridges (response time by region, order size by plan): an overlap control, median and p95 readouts per row…
  • Sankey chart: Flows between stages as bands whose width is the amount: sources to pages to outcomes, budgets to teams; hovering or focusing a node lights its flows and…
  • Slope chart: Change between two points in time per item, by value or by rank: labels on both sides that never collide, rising and falling told by the end marker (▲ ▼)…
  • Sparkline: A compact trend beside its value: point along it or focus it and use ← → to read each point; nulls are gaps. TrendLine is the bare line.
  • Streamgraph: Stacked flows over time around a centre baseline, with silhouette, wiggle, expand (shares) and zero offsets: a legend that turns layers on and off, a…
  • Treemap: Nested rectangles sized by value (spend by team, then service), squarified so tiles stay close to square: labels that fit or hide, hover and focus…
  • Waffle chart: Units of a whole as a grid of cells by category (seats used of a plan, tickets by channel): a 10×10 grid by default, hatched cells for units whose…