# Docs
What to read when.
- **What is this, and why is it shaped this way?**
[vision.md](vision.md) — the argument and the five rules.
- **Why is this decision the way it is?**
[principles/](principles/) — one file per constraint: the failure mode it
avoids, the idea, the consequences, the rejected alternatives. Files where
the claim is visual carry a generated witness chart, spliced and verified
by CI like every chart in these docs.
- **What does this word mean?**
[terminology.md](terminology.md) — the vocabulary contract, updated in the
same change as the code.
- **How do I…**
- meet any terminal honestly — [terminal.md](terminal.md)
- make a chart interactive in a TUI — [interaction.md](interaction.md)
(ratatui, and the same controller in Ink)
- draw real pixels in a terminal — [pixels.md](pixels.md)
- plot in a Jupyter notebook — [notebooks.md](notebooks.md)
- understand the speed story — [performance.md](performance.md)
- persist and interchange specs — [serde.md](serde.md)
- answer the usual requests with what exists (benchmarks through `jq`, the
pie, twin axes, out-of-range rules) — [recipes.md](recipes.md)
- use it from JavaScript — [../js/README.md](../js/README.md)
(`npx malevich`, shared goldens via `js_goldens`)
- **What does it look like?**
[../EXAMPLES.md](../EXAMPLES.md) — the gallery, every chart real program
output. `cargo run --example showcase` renders a colored tour. The JS
analog is `cd js && npm run showcase`.
- **The long form, illustrated.**
[shergin.github.io/malevich](https://shergin.github.io/malevich/)
([site/](../site/README.md)) — these files as pages, plus a guide with a
plate for every mark, stat, and scale, a playground, and the figures drawn
in the browser as ascii beside pixels with a live M4 plate. Every figure is
rendered by the library at build time.
- **API reference** — [docs.rs/malevich](https://docs.rs/malevich); npm
[malevich](https://www.npmjs.com/package/malevich).