Problem
Transform output for React, Web Components, and CSS still reads a Figma-specific extension field to resolve images. When an images-registry entry has no resolved src, all three transforms fall back to $extensions.com.figma.imageHash and match a file in _images/. That makes transform output dependent on where the spec came from, rather than on the spec's own portable data.
Solution
The images registry always carries a resolvable src, so the hash fallback — and the type declarations that exist only to support it — can be deleted. Transform output then reads no com.figma extension data at all.
Problems
- The same fallback is mirrored in three places, so it can drift independently
- Type declarations exist solely to make the extension read type-check
- A spec authored outside Figma has no
imageHash, so image resolution silently depends on provenance
Acceptance criteria
Impacted code
react-from-specs — Spec/composition.ts (image resolution + type declaration)
webcomponents-from-specs — Spec/composition.ts (same)
specs CLI — transforms/Css.ts (same), transforms/examples.ts (type declaration)
Notes
Audit finding: this is the only remaining com.figma dependency across the transforms. Nothing else — no variant, prop, layout, or naming logic — touches it. The fallback is the ADR-063 image-support path, and is pre-existing rather than newly introduced.
Implementation details are tracked internally.
Problem
Transform output for React, Web Components, and CSS still reads a Figma-specific extension field to resolve images. When an images-registry entry has no resolved
src, all three transforms fall back to$extensions.com.figma.imageHashand match a file in_images/. That makes transform output dependent on where the spec came from, rather than on the spec's own portable data.Solution
The images registry always carries a resolvable
src, so the hash fallback — and the type declarations that exist only to support it — can be deleted. Transform output then reads nocom.figmaextension data at all.Problems
imageHash, so image resolution silently depends on provenanceAcceptance criteria
src$extensions.com.figmaImpacted code
react-from-specs—Spec/composition.ts(image resolution + type declaration)webcomponents-from-specs—Spec/composition.ts(same)specsCLI —transforms/Css.ts(same),transforms/examples.ts(type declaration)Notes
Audit finding: this is the only remaining
com.figmadependency across the transforms. Nothing else — no variant, prop, layout, or naming logic — touches it. The fallback is the ADR-063 image-support path, and is pre-existing rather than newly introduced.