D DESIGNs CENTRAL HUB

Build pipeline

Everything on this site is derived. The pipeline is deterministic — same inputs, byte-identical output — and runs with zero runtime dependencies.

01
Registry
scripts/lib/registry.js

Scans projects/*/project.config.js, validates slugs, loads each token document and reports anything missing. Adding an ecosystem is creating a folder.

02
Token pipeline
scripts/lib/tokens.js

Resolves 78 semantic roles from 58 authored values, derives the 38 the documents do not state, computes WCAG contrast, and compiles one theme stylesheet per ecosystem including the shared light scaffold and 2 palette variants.

03
Asset index
scripts/lib/assets.js

Walks 122 files (27.99 MB), groups them by folder, inlines vector masters under 260 KB, and selects a brand mark per ecosystem.

04
Component library
scripts/lib/components.js

Renders the atomic library — swatches, type scale, spacing, shape, motion, controls, icon contract, molecules and organisms — against the resolved theme, with copyable markup.

05
Pages
scripts/lib/pages/*.js

Emits overview, living style guide, asset library, docs index and document pages per ecosystem, plus the hub, this pipeline page, the cross-ecosystem asset index and hub-level reference pages (media, CLI, TUI, menus, colors, organism lab).

06
Search index
scripts/build.js

Writes 4 per-ecosystem indexes plus one global index; the command palette fetches them lazily, so no page carries a hardcoded result list.

Token flow

text
projects/<slug>/tokens/tokens.json
  └─ resolveRoles()            authored keys win, rest derived + flagged
      └─ theme-<slug>.css      :root · [data-theme=light] · [data-variant=...]
          └─ --ax-*            the only contract the component library knows
              └─ components    atoms → molecules → organisms → pages

Per-ecosystem output

EcosystemKindAuthoredDerivedVariantsAssetsDocsTheme
Aetheris brand 26 10 1 41 16 theme-aetheris.css
GAMES REBORN brand 12 17 3 34 3 theme-games-reborn.css
Merlin Tribukait brand 20 11 1 47 1 theme-merlin.css
Black Manta spec 0 0 1 0 2 theme-black-manta.css

Extending the system

Add an ecosystem
  1. Create projects/<slug>/.
  2. Add project.config.js (copy a neighbour and change the identity).
  3. Add tokens/tokens.json — palette, type, space, radius, shadow, motion.
  4. Drop assets into assets/<group>/ and markdown into docs/.
  5. Run npm run build. The hub, nav switcher and search index update themselves.