Replies: 2 comments
-
|
Note: Coordinating outline for all RFCs: |
Beta Was this translation helpful? Give feedback.
-
|
Update (April 2026): Alignment with taxonomy and formatting work. Manifest —
This aligns with the three-layer naming decomposition in #806: formatting (concept order, casing, delimiters, abbreviations) is a platform-malleable concern, while taxonomy and vocabulary are shared. Cascade — semantic vs. dimension fields: The name object now distinguishes semantic fields (identity, structure, intent — advisory validation) from dimension fields (cascade axes — strict validation). Only dimension fields participate in specificity and cascade resolution. See Resolved open questions:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
[DRAFT RFC] Distributed Design Data Architecture
1. Scope
This RFC specifies how platform-owned repositories consume foundation design data from
spectrum-design-data: versioned dependencies, platform manifests (include/exclude, overrides, extensions), resolution and validation, and shared tooling (management app, Figma variable generation, upgrade automation, reports).Out of scope here (owned by sibling RFCs):
@adobe/design-system-registry.2. Problem statement
Spectrum design data today lives primarily in one repository. To scale to Web Components, React Spectrum, iOS, Android, and products, we need:
3. High-level architecture
Foundation publishes spec + base tokens; platform repos declare a pinned foundation version and a manifest; tooling operates on resolved platform data.
flowchart LR subgraph foundation ["Foundation (spectrum-design-data)"] direction TB spec["Spec + Schemas + Registry"] baseTokens[Base Token Values] end subgraph platforms ["Platform Repos"] direction TB swc[Web Components] rsp[React Spectrum] ios[iOS] android[Android] end subgraph tooling [Shared Tooling] direction TB mgmt[Management App] figma[Figma Variable Generator] bot[Upgrade Bot] report["Report / Diff Generator"] end spec --> baseTokens foundation -->|"versioned dependency + manifest"| platforms mgmt -->|"PRs as authenticated user"| platforms platforms -->|"resolved token sets"| figma foundation -->|"new release"| bot bot -->|"automated upgrade PRs"| platforms platforms --> report baseTokens --> reportInside a platform repo:
flowchart TB foundationDep["Foundation Dependency (pinned version)"] subgraph manifest [Platform Manifest] include["include (query)"] exclude["exclude (query)"] overrides["overrides (type-safe)"] extensions["extensions (new tokens, registry terms, schemas)"] end foundationDep --> manifest manifest --> resolved[Resolved Platform Token Set] resolved --> outputs["Outputs: CSS vars, Swift, Kotlin, Figma vars, etc."] validation["GitHub Actions Validation"] --> manifest foundationDep --> validation4. Cascade across layers
Resolution combines layer priority with semantic specificity (see RFC #646 for the token-level model):
Foundation publishes dimension declarations (available modes, default mode, coverage rules). Platforms inherit them; platform-only extensions must still validate against the spec.
5. Platform manifest
Each platform repo includes a manifest (name TBD, e.g.
spectrum-foundation.json) declaring:foundationVersionincludeexcludeoverridesextensionsQuery language for
include/excludeis TBD (align with JSONPath, JMESPath, or a small DSL — see open questions in #714).6. Override and extension rules
7. Distribution
spectrum-design-data(spec artifacts, schemas, registry JSON, base tokens).8. Validation
9. Tooling ecosystem
foundationVersionand apply mechanical migrations (e.g. renames from lifecycle metadata — #623).10. Migration from monolithic structure
color-setandscale-settokens split into individual cascade tokens with dimension properties in the structured name ([DRAFT RFC] Token Schema Structure and Validation System #646). Counts: on the order of hundreds per set type in currentpackages/tokens/src/.distoutputs can continue during a transition; spec defines target authoring format and validation.11. Deprecation and versioning
12. Relationship to other RFCs
13. Open questions
include/exclude.14. Request for feedback
We want input from platform teams on manifest fields, CI severity defaults, upgrade automation, and any blockers for adopting pinned foundation versions in real repos.
Please comment on this discussion with constraints, use cases, or suggested refinements.
Beta Was this translation helpful? Give feedback.
All reactions