* chore: unify product name display to OpenDesign repo-wide Rename the user-facing product name from "Open Design" to "OpenDesign" across documentation, web/desktop UI strings, i18n locales, prompts, plugin/skill/design-system content, changelogs, and specs, matching the landing-page rename already in flight. Deliberately excluded so installed-app identity stays untouched: - packages/release PRODUCT_NAME and everything derived from it (app bundle names, installer/registry identity, updater feeds) - tools/pack, tools/release, apps/packaged, landing page (PR #6983) - mocks/ recorded traces and LICENSE - test fixtures and comments that encode real on-disk install paths (Open Design.app, Program Files\Open Design, AppData paths) Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host test runs over the renamed strings. * fix(web): keep two-letter author monogram for CamelCase brand names authorInitials split words on whitespace only, so the renamed single-token author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper CamelCase boundaries as word breaks so the avatar fallback stays "OD". * fix(release): restore spaced Windows source artifact names in win.ps1 tools/pack still derives builder outputs from the unchanged PRODUCT_NAME ("Open Design"), so the asset script must look for the spaced filenames. Matches the mac/mac-intel/linux asset scripts, which were already kept on the original names. --------- Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
7.7 KiB
Design System 2.0 Backfill Plan
Summary
OpenDesign now has two related but different design-system states:
- The bundled catalog already has Design System 1.0 structured fixtures: all
150 bundled systems ship
tokens.cssandcomponents.html, and the guard confirms those files satisfy the shared token schema. - New user imports now use the Design System 2.0 importer: local, GitHub, and
shadcn imports generate a complete project package with
manifest.json,design-tokens.json,tailwind-v4.css, source evidence, and a token contract quality report.
The remaining gap is bundled-catalog parity. The 150 bundled systems should be backfilled into the same auditable package shape that new user imports already receive. This plan records the evidence, scope, and rollout sequence before the large generated-file batches begin.
Current Coverage
Latest main was checked on 2026-06-06.
Guard and file-count observations:
| Surface | Current state |
|---|---|
| Bundled systems | 150 design-systems/<id>/ folders |
tokens.css |
150 present |
components.html |
150 present |
manifest.json |
1 present (default) |
design-tokens.json |
0 present in bundled catalog |
tailwind-v4.css |
0 present in bundled catalog |
source/token-contract.report.json |
0 present in bundled catalog |
| Token guard | 150 brands declare all A1, A2, and B-slot tokens |
| Token/fixture sync | 150 components.html fixtures match their paired tokens.css roots |
This means bundled systems are already safe at the token/fixture layer, but are not yet full 2.0 packages.
Experiment
The comparison used the same three fixture source projects against two extractor baselines:
- 1.0 baseline: the pre-2.0 importer at
fd8159216. - 2.0 baseline: current main at
1b9c4dcb.
The three cases were chosen to exercise sparse source evidence, rich source evidence, and unsafe alias input:
| Case | Purpose |
|---|---|
kami-minimal |
Sparse project: accent, background, and radius only. |
aurora-rich |
Rich token source: surfaces, text tiers, semantic colors, font, radius, motion, shadow, and layout gutters. |
broken-alias |
Source tokens contain var() references to missing upstream variables. |
Component fixture comparison
Color evidence comparison
Data comparison
Data Improvements
The visual screenshots intentionally do not show a dramatic color shift in every case. The old extractor could already pick obvious values such as background, border, and accent from many source files. The 2.0 improvement is mainly contractual: controls and downstream tools now read a stable token vocabulary, unsafe values are filtered, and every import has auditable quality metadata.
| Case | Metric | 1.0 | 2.0 | Improvement |
|---|---|---|---|---|
kami-minimal |
Key schema coverage | 11 / 17 | 17 / 17 | Complete selected schema surface. |
aurora-rich |
Key schema coverage | 12 / 17 | 17 / 17 | Complete selected schema surface. |
broken-alias |
Key schema coverage | 11 / 17 | 17 / 17 | Complete selected schema surface. |
| all cases | Legacy-only token names | 8 each | 0 each | Removes old names such as --font-sans, --text-md, --section-y, --container, --motion-med, and --elev-1. |
kami-minimal |
Raw source aliases in final :root |
2 | 0 | Source variables are normalized into schema names. |
aurora-rich |
Raw source aliases in final :root |
1 | 0 | Source variables are normalized into schema names. |
broken-alias |
Raw source aliases in final :root |
3 | 0 | Unsafe source variables are not leaked. |
broken-alias |
Unresolved var() references |
5 | 0 | Prevents broken button/surface/radius values. |
| all cases | Token contract report | no | yes | Adds score, grade, source-backed count, fallback count, weak-token evidence, and self-check status. |
| all cases | design-tokens.json |
no | yes, 56 tokens | Adds portable token JSON for downstream tools. |
| all cases | tailwind-v4.css |
no | yes, 57 bindings | Adds a Tailwind v4 @theme bridge derived from the same contract. |
The largest gains are:
- Schema completeness: selected key coverage moves from 11-12 / 17 to 17 / 17. The full emitted contract contains 56 schema tokens.
- Vocabulary cleanup: legacy role names disappear from the final root.
- Bad-value containment: unresolved source aliases are blocked before they can break component rendering.
- Auditability: the output is graded and reviewable instead of being only a rendered fixture.
- Downstream portability: design-token JSON and Tailwind outputs are derived from the same source of truth.
Backfill Scope
The bundled backfill should derive 2.0 package files from the curated bundled inputs that already exist:
DESIGN.mdtokens.csscomponents.html
This is not a claim that OpenDesign has re-crawled every original upstream brand repository. For bundled systems, provenance should be explicit: the derived package is based on the curated OpenDesign design-system fixture. That keeps the audit trail honest while still making bundled systems match the same machine-readable package shape as new imports.
Each backfilled bundled system should add, at minimum:
manifest.jsondesign-tokens.jsontailwind-v4.csssource/token-contract.report.json- minimal
source/evidence.md - minimal
source/tokens.source.json
If a system already has richer source evidence in the future, the same manifest
shape can point at richer source/ files without changing the downstream
contract.
Rollout Plan
Backfilling all 150 systems in one PR would add roughly 5 MB of generated content and well over 100k lines. That is too large to review comfortably.
Use one setup PR followed by ten generated-data PRs:
| PR | Scope |
|---|---|
| 0 | This plan plus derivation/validation tooling, with no broad catalog backfill. |
| 1 | Batch 01: agentic through brutalism |
| 2 | Batch 02: bugatti through contemporary |
| 3 | Batch 03: corporate through energetic |
| 4 | Batch 04: enterprise through hud |
| 5 | Batch 05: huggingface through meta |
| 6 | Batch 06: minimal through nvidia |
| 7 | Batch 07: ollama through refined |
| 8 | Batch 08: renault through spacex |
| 9 | Batch 09: spacious through urdu |
| 10 | Batch 10: vercel through zapier |
Each generated-data PR should:
- touch only the selected 15 design-system folders;
- avoid schema, importer, or UI behavior changes;
- include the same generated file set for every system in the batch;
- run
pnpm guardor, at minimum, the design-system manifest and token guards; - cite this plan in the PR body.
Validation Checklist
For the setup PR:
pnpm exec tsx scripts/check-tokens-fixture-sync.tspnpm exec tsx scripts/check-design-system-manifests.ts
For each generated batch PR:
pnpm guard- Spot-check several generated
manifest.jsonfiles. - Confirm
design-tokens.jsonregenerates exactly fromsource/token-contract.report.json. - Confirm
tailwind-v4.cssregenerates exactly fromtokens.css. - Confirm no generated
source/report claims original upstream evidence when the source is only the curated bundled fixture.
Non-Goals
- Rewriting the 150 bundled
DESIGN.mdfiles. - Re-extracting every brand from original upstream source repositories.
- Changing
TOKEN_SCHEMA. - Changing visual design choices in the existing
tokens.cssfiles. - Implementing Design System 3.0 component/layout recipes.


