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.

Adapter What it produces Destination Connection Status
web-css
brand/tokens/output/web/

Five CSS files (one per token category). Imported by any web project.

metanoia-web (Astro)
Live — token updates propagate automatically on sync
Active
web-flat-json
brand/tokens/output/web-flat/tokens.json

Flat {"--token-name": "value"} JSON with all aliases resolved. For any web consumer that needs token values without a CSS pipeline.

CMS tools, DOCX generation, data exports
Live — regenerated on every token sync
Active
pptx-json
brand/tokens/output/pptx/tokens.json

Flat JSON with dot-notation keys and resolved values. Consumed by python-pptx to produce brand-accurate PowerPoint files.

metanoia-pptx repo (not yet created)
Offline — DS-informed at generation only. Re-generate to pick up DS updates. Files do not self-update.
Coming Soon
email-inline
brand/tokens/output/email/inline.css

CSS with every value resolved to a raw primitive — no var() references. Email clients don't support CSS variables.

metanoia-web (Astro) — template is a live DS consumer; values baked at export time
Hybrid — template stays live in the repo. Exported HTML is static. Re-export before sending to pick up DS updates.
Coming Soon
gslides-json
brand/tokens/output/gslides/tokens.json

Flat JSON matched to Google Slides API field names.

Google Slides generation
Offline
Backlog

How adapters stay in sync

1
Source of truth: W3C JSON

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.

2
Adapters transform the source

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.

3
CI commits the outputs

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.