Skip to main content
Titles, axes, legend, headline numbers, number formatting and layout are configuration. You add them by piping a config(...) part into the spec.

How config composes

config is just another spec part, so it follows the same pipe rules as the rest — with one twist: config deep-merges. Piping several config(...) parts combines them rather than replacing, so you can layer a shared base with per-chart overrides:
Anything you don’t set keeps its resolved default.

Sections

Data labels sit slightly apart — they’re a per-layer geom option rather than a config section, because labels attach to a specific observation.
Paint is a separate surface. The graph background, the panel border, grid and tick strokes and label typography all come from a stylesheet you pipe in as styles({...}) — see Styling.
appearance.textScale multiplies the size of every text element. Because it changes measured text — and therefore the size of every region — it’s documented with Layout.

Locale

'en-GB' | 'en-US' | 'ar' | 'pt-PT'
default:"en-US"
The locale used to interpret source values, and the fallback for formatting display output — axis labels, tick labels, tooltips and headline numbers. Pass formattingLocale to the renderer to override display only; it resolves as formattingLocale ?? parsingLocale.