01
Glyphs do the drawing.
Borders are dashes and plus signs. Bars and cells are characters. To animate, change a color or swap a glyph. Anything monospace will host it: markdown, a README, a terminal.
- cpu 72
- ram 34
- ssd 91
[ rules ]
Three constraints. Break any one and it becomes another chart library. Keep them and the page looks typeset, not plotted.
01
Borders are dashes and plus signs. Bars and cells are characters. To animate, change a color or swap a glyph. Anything monospace will host it: markdown, a README, a terminal.
02
Every graph sits in a dashed edge with a [ TITLE ] and corner marks. Swap the mark. Keep the discipline. The wrapper is Graph; compose with Body, Rule, Track, Tick.
Graph · GraphBody · GraphRule · GraphTrack
Dashed edge. [ TITLE ]. Corner marks. This is Graph.
03
Unused rows recede. Color is a decision. Default is palette="mono". Pass duo or multi only when a second series earns its keep. Entrances
stay under 220ms.
[ do ]
Accent the current step, the amount due, the series that changed. Everything else stays muted ink on the dashed rail.
[ don't ]
No canvas, no chart config object, no rainbow series. If it cannot be typed, it does not belong in the frame.