Foundations
Token Adapters
An adapter takes Metanoia's design tokens and exports them in a format a specific tool can read. Each adapter reads from the same source — so when a designer updates Figma and runs a sync, every active adapter's output updates automatically.
Active adapters
Adapters fall into two categories. Live adapters write to files that are imported directly by web surfaces — a token change propagates automatically on the next sync. Offline adapters produce files that are consumed at generation time; once a PPTX or exported email is in the wild, it holds the values it was built with. Re-generating creates a fresh, current file — but it does not update existing ones.
web-css Five CSS files (one per token category). Imported by any web project.
web-flat-json Flat {"--token-name": "value"} JSON with all aliases resolved. For any web consumer that needs token values without a CSS pipeline.
pptx-json Flat JSON with dot-notation keys and resolved values. Consumed by python-pptx to produce brand-accurate PowerPoint files.
email-inline CSS with every value resolved to a raw primitive — no var() references. Email clients don't support CSS variables.
gslides-json Flat JSON matched to Google Slides API field names.
How adapters stay in sync
All token values live in brand/tokens/source/*.tokens.json — W3C Design Token format. These are the only files ever hand-edited. Everything else is generated.
Running node sweden/engine/run-adapters.js reads the source JSON and writes every adapter output — CSS, flat JSON, email CSS, PPTX, and Google Slides — in one pass.
On every merge to main that touches brand/, the CI workflow runs run-adapters.js automatically and commits any changed outputs — no manual rebuild needed.