KQ-1791 · LUMEN/CHORUS

Lumen Chorus

A glowing horizon with thin filaments of light rising from it, one per value of a data series — a quiet equaliser drawn in light, each filament a hairline core with a soft glow, a bloom at its tip, a flare where it meets the horizon and a faint reflection on the wet ground below. When new values arrive every filament's height is a spring retargeted from where it stands, released left to right in a cascade; rise picks the spring from the calibration set (springs.drift, springs.glide, springs.snap) and the tips bloom with their speed and flare softly as they land. Hovering or arrowing reads one: it brightens, the rest dim, and a readout slides above it on springs.snap while the readings cross-fade in one cell; the chorus is a slider over the index, with Home and End.

KQ-1791 · LUMEN/CHORUS

Gaugeworks Solar · Array 3

Output by hour

  • 00:00, 0 kW
  • 01:00, 0 kW
  • 02:00, 0 kW
  • 03:00, 0 kW
  • 04:00, 0 kW
  • 05:00, 0 kW
  • 06:00, 0.5 kW
  • 07:00, 1.3 kW
  • 08:00, 2 kW
  • 09:00, 2.6 kW
  • 10:00, 2 kW
  • 11:00, 2.6 kW
  • 12:00, 3.4 kW
  • 13:00, 3.2 kW
  • 14:00, 3.8 kW
  • 15:00, 2.8 kW
  • 16:00, 1.6 kW
  • 17:00, 1.1 kW
  • 18:00, 0.3 kW
  • 19:00, 0 kW
  • 20:00, 0 kW
  • 21:00, 0 kW
  • 22:00, 0 kW
  • 23:00, 0 kW

24 hours · peak 3.8 kW at 14:00 · readings live

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/lumen-chorus

Props

values
number[]
default 24 seeded hourly readings
The series: one filament per value, left to right.
labels
string[]
default "1", "2", …
A label per value, read in the readout.
colors
string[]
default ["var(--accent-bright)", "var(--signal)"]
A ramp of CSS colours across the filaments, left to right.
warmth
number
default 0.2
The light's colour temperature: 0 is the ramp as given (cool), 1 warm amber and rose, mixed in oklab.
rise
number
default 0.5
How the filaments move to new values: 0 slow and soft (drift), 0.5 glide, 1 quick with one overshoot (snap).
spacing
number
default 0.75
How wide the chorus stands, as a share of the width it could fill, 0 to 1.
max
number
default the largest value × 1.1
The value at the top of the scale.
format
(value: number) => string
default one decimal place
Formats a value for the readout.
unit
string
default ""
Appended to every formatted value, e.g. "kW".
horizon
number
default 0.74
Where the horizon sits, as a share of the height, 0.55 to 0.9.
glow
number
default 0.6
How much the filaments and horizon glow, 0 to 1.
reflection
number
default 0.5
How strongly they reflect on the ground below the horizon, 0 to 1.
shimmer
number
default 0.35
Faint pulses of light climbing the filaments while idle, 0 to 1.
active / defaultActive
number | null
default null
The filament being read, by index, or null; controlled or uncontrolled.
onActiveChange
(index: number | null) => void
default —
Fires from the hover, key or focus that changed the filament being read.
paused
boolean
default false
Hold the shimmer still; new values still arrive.
dpr
number
default 2
Cap on the canvas's device pixel ratio, at most 2.
label
string
default "Values"
The chorus's accessible name.
className
string
default —
Sizes the panel; it fills its parent by default.