Data viz · consoles

The data is the interface

Midgard consoles put numbers first: tabular numerals, hairline grids, mono axes, and color used only to distinguish series or flag state. If a chart element doesn't encode data, delete it.

§ 1 · Principles

Rules

RuleSpec
Series order1 aurora · 2 bifrost · 3 mimir · 4 gold · 5 ember, always in this order
Grids & axesbaseline: --border-strong · gridlines: --border-subtle · labels: mono 10–11px --text-muted
Numeralstabular-nums everywhere; units in --text-muted after the value
State colorsSemantic tokens only, and only when the chart shows status (never mixed with series colors)
Forbidden3D, pie charts > 3 slices, dual y-axes, gradient fills, drop shadows on marks
§ 2 · Patterns

Console patterns

Bar · single series
Objects sealed / day7d
MonTueWedThuFriSatSun
Line · latency
First-token latencytarget < 800 ms
00:0006:0012:0018:0024:00

Thresholds are dashed danger lines with a mono annotation. KPI rows use the Stat component; tables of records use Table with mono id columns and Badge status, see Components.

§ 3 · Dashboards

Console composition

Ops consoles are dark-first (data-theme="dark"); analyst tools light-first. Layout: TopNav → Stat row (the four numbers that matter) → main chart or map → record table. Density comes from the 4px scale, never from shrinking type below 11 px.

Every chart gets a provenance line: source feed, query time, and signature state, the chart equivalent of the audit lineage requirement (NFR-SEC-2).