charts

g.chart — data + intent; the theme does the rest

Trend — area, the workhorse chart

Breakdown — donut

The rules

  • The route declares 'vendors' => ['apexcharts'] + 'libs' => ['charts']; the holder is a div.genus-chart; the call is g.chart(sel, config) with DATA + INTENT only — colors, fonts, axes, grid and tooltips come from the theme tokens (both themes, automatically). Never set colors in the config.
  • The standard set: area for trends, bar for comparisons, donut for shares. Anything fancier must earn its place.
  • Fixed height in the config so cards do not jump; charts live in cards on the normal grid (the dashboard).
  • Docs: templates/app/docs/libs/charts.md; the harness: /tests/charts.