Krizaka
Documentation

Sparkline

A word-sized trend without axes — in a stat, a table cell or a sentence — drawn on the server when its width is known.

Web + MobileBêtaGraphiques

Web et mobile — le même composant pour React et React Native. Bêta : son API peut encore changer à une version mineure.

Quand l’utiliser

  • Beside a key figure: the last 30 days of a stat.
  • In a table, one per row: each model's throughput, each video's views.

Quand ne pas l’utiliser

  • When the reader needs the values, the axes or a comparison.À la place : Line chart
  • A value against a range.À la place : Gauge

Installation

Installer

npm install @krizaka/charts

Importer

import { Sparkline } from "@krizaka/charts/sparkline";

Exemples

In a stat

Thirty days of views beside the figure, coloured by the trend.

Views, last 30 days

2,520

Views, last 30 days

Sparkline, 30 (1 – 30). Views, last 30 days: from 820 to 2,520, lowest 760 (2), highest 2,520 (30), up 207%.

Views, last 30 days — data
CategoryViews, last 30 days
1820
2760
3910
4880
51,020
6990
71,130
81,210
91,090
101,340
111,280
121,420
131,390
141,510
151,620
161,580
171,700
181,640
191,810
201,760
211,930
222,040
231,980
242,150
252,090
262,260
272,340
282,280
292,410
302,520

In a table

One fixed-width sparkline per row, drawn on the server: latency, coloured inverse.

Chat · Mistral Large

Chat · Mistral Large, p95 latency

Sparkline, 12 (1 – 12). Chat · Mistral Large, p95 latency: from 820 ms to 676 ms, lowest 676 ms (12), highest 820 ms (1), down 18%.

Chat · Mistral Large, p95 latency — data
CategoryChat · Mistral Large, p95 latency
1820 ms
2790 ms
3805 ms
4760 ms
5742 ms
6731 ms
7720 ms
8704 ms
9699 ms
10688 ms
11690 ms
12676 ms
676 ms
Image · Flux

Image · Flux, p95 latency

Sparkline, 12 (1 – 12). Image · Flux, p95 latency: from 2,400 ms to 2,950 ms, lowest 2,380 ms (2), highest 2,950 ms (12), up 23%.

Image · Flux, p95 latency — data
CategoryImage · Flux, p95 latency
12,400 ms
22,380 ms
32,520 ms
42,610 ms
52,590 ms
62,700 ms
72,760 ms
82,810 ms
92,790 ms
102,880 ms
112,910 ms
122,950 ms
2950 ms
Speech · Whisper

Speech · Whisper, p95 latency

Sparkline, 12 (1 – 12). Speech · Whisper, p95 latency: from 310 ms to 305 ms, lowest 300 ms (5), highest 312 ms (3), down 1.6%.

Speech · Whisper, p95 latency — data
CategorySpeech · Whisper, p95 latency
1310 ms
2305 ms
3312 ms
4309 ms
5300 ms
6311 ms
7306 ms
8304 ms
9308 ms
10302 ms
11307 ms
12305 ms
305 ms

Bars

Discrete counts: jobs per hour.

Jobs per hour, today

Sparkline, 24 (1 – 24). Jobs per hour, today: from 12 to 14, lowest 2 (5), highest 70 (14), up 17%.

Jobs per hour, today — data
CategoryJobs per hour, today
112
28
35
43
52
64
79
821
938
1052
1161
1258
1364
1470
1566
1659
1763
1855
1947
2041
2133
2226
2319
2414

Props

The shape of a trend in a few pixels: a stat's last 30 days, a job's throughput.

PropTypeDéfautDescription
datarequisreadonly (number | null)[]—The values, oldest first (null for a gap).
titlerequisstring—What the chart shows, in a few words: its accessible name, and its heading unless hideTitle.
brandBrandId—The brand whose palette the charts use. Without it, a chart follows a .brand-<id> ancestor, else Krizaka. Set it when the app loads a brand stylesheet on :root (@krizaka/tokens/brands/orazaka.css).
categoriesreadonly unknown[]—The labels of the values (dates, ISO or Date), for the summary and the table. Default: their positions.
classNamestring—A class on the figure (layout: margins, grid placement).
colorSeriesColor—A palette slot, a tone or a CSS colour. Default: the trend's tone when trendTone, else slot 1.
emptyReactNode—What to show when there is nothing to draw (default: the empty label). An EmptyState of @krizaka /ui fits.
errorReactNode—The data could not be loaded: true says the default words, a node says yours (a retry button…).
formatValueFormat—How the values are written in the summary and table.
heightnumber—The height of the plot in pixels. Default 280 (a sparkline: 32).
idstring—The id of the figure.
labelsChartLabelsInput—The words, translated: the buttons, the states, the written summary.
liveboolean—Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.
loadingboolean—The data is on its way: a skeleton of the chart, announced once.
localeLocale—The locale of every figure and date ("fr-FR"). Default "en-US".
styleCSSProperties—Inline style on the figure (layout only: colours come from the tokens).
summary"hidden" | "visible"—The written summary: read by screen readers only ("hidden", default), or shown under the chart ("visible").
summaryTextstring—Your own summary instead of the generated one (still read first by screen readers).
thresholdThreshold—A dashed reference line (yesterday's average, a quota).
trendToneboolean | "inverse"—Colour by the trend: success up, danger down (or the reverse with "inverse": costs, latency).
variant"line" | "area" | "bar"—line (default), area (line over a wash) or bar (discrete counts: jobs per hour).
widthnumber—A fixed width in pixels: drawn on the server too. Default: the container's width.

Accessibilité

  • Its title is visually hidden but names it; its summary (first, last, extremes, trend) is read.
  • It does not take the focus: it is a picture of the trend, the figures are in the summary and its table.

Bonnes pratiques

  • Give it a width in a table: it renders on the server, with no placeholder.
  • Colour by the trend with trendTone ("inverse" when down is good: costs, latency).
  • Write the current value next to it: the line shows the shape, not the figure.

Générée depuis le code de @krizaka/ui 2.4.0 : son meta.ts, ses exemples et ses types.Modifier cette documentation sur GitHub

Sur cette page