sheengemologic ui
All components

TimeSeries

Progressively enhances a deterministic time-series fallback with a responsive themed uPlot canvas and native data alternative.@gemologic/sheen-charts · data

Playground

This example has no scalar controls. Its validated source remains interactive below.
API latencyLatency declined; one p99 sample is missing.
View as table

Latency declined; one p99 sample is missing.

API latency
Timep50p99
Jan 1, 2024, 12:00:00 AM18 ms42 ms
Jan 1, 2024, 12:01:00 AM16 msMissing value
Jan 1, 2024, 12:02:00 AM15 ms34 ms
<TimeSeries label="API latency" summary="Latency declined; one p99 sample is missing." xLabel="Time" series={latencySeries} data={latencyData} x={{ type: "time", tz: "UTC" }} y={{ format: "duration" }} height={220} legend="inline" />

Variant matrix

API latency
API latencyLatency declined; one p99 sample is missing.
View as table

Latency declined; one p99 sample is missing.

API latency
Timep50p99
Jan 1, 2024, 12:00:00 AM18 ms42 ms
Jan 1, 2024, 12:01:00 AM16 msMissing value
Jan 1, 2024, 12:02:00 AM15 ms34 ms

Anatomy

Package
@gemologic/sheen-charts
Source
packages/charts/src/TimeSeries.tsx
Tokens
  • --sheen-chart-1
  • --sheen-chart-2
  • --sheen-chart-3
  • --sheen-chart-4
  • --sheen-chart-5
  • --sheen-chart-6
  • --sheen-chart-7
  • --sheen-chart-8
  • --sheen-chart-grid
  • --sheen-chart-axis
  • --sheen-chart-crosshair
  • --sheen-chart-line-width
  • --sheen-color-fg
  • --sheen-color-fg-muted

Accessibility

Role: labeled figure with an image description and native table disclosureKeyboard: Focus the plot and use Left/Right, Home/End, and Escape to inspect samples., Use the native view-as-table disclosure for complete keyboard access to every sample., Use legend buttons and zoom controls when those interactions are enabled.

Do

  • Keep series identities stable and retain accepted data while a refresh is pending.
  • Use UTC epoch milliseconds and NaN for gaps, then provide an interpretive summary.
  • Use explicit non-color encodings when palette colors repeat or color alone cannot carry the distinction.

Do not

  • Do not hide the native table alternative or pass Date/string timestamps.
  • Do not key the chart by data revision, theme, or size.

Generated props

NameTypeDefaultDescription
x *import("./chart-types.ts").ChartTimeAxisTime formatting configuration; timezone changes presentation only.
cursorimport("./chart-types.ts").ChartCursorOptionsOptional named cursor-sync group.
onZoom(range: readonly [number, number] | null) => voidReceives the accepted x range after drag zoom and null after reset.
__unsafe_uplotimport("./chart-types.ts").TimeSeriesUPlotOptionsExplicit typed escape hatch for uPlot options not owned by the Sheen lifecycle.
label *stringRequired visible and accessible chart name.
summary *stringRequired narrative interpretation used alongside the visual and table alternative.
xLabel *stringRequired time-axis label and native table heading.
series *readonly ChartSeries[]Stable validated series definitions with semantic color tokens and optional solid, dashed, dotted, or dash-dot non-color encoding.
data *ChartDataEqual-length Float64 columns using UTC epoch milliseconds and NaN gaps.
yimport("./chart-types.ts").ChartValueAxisShared value formatting and optional zero baseline.
height *numberPositive finite reserved plot height in CSS pixels.
legendimport("./chart-types.ts").ChartLegendinlineLegend presentation; false hides it.
tooltipbooleantrueWhether single-tab-stop pointer and keyboard crosshair inspection is enabled.
annotationsreadonly ChartAnnotation[]Optional labeled events at UTC epoch-millisecond positions.
emptyJSX.ElementOptional retained empty-state content for a zero-row dataset.
loadingbooleanfalseMarks accepted chart and table content busy without replacing either.
tableimport("./chart-types.ts").ChartTableOptionsNative table page size and disclosure label; the alternative cannot be disabled.
classstringOptional class appended to the figure root.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.