refactor(figma): derive footer responsive safety from structure, not layer names - #1562
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1556
What
Replaces responsive footer branches keyed to literal Figma layer names (
newsletter signup,frame 19,frame 20) with structural detection: an inset primary panel and a full-width lower band are identified from their geometry relative to the footer box.Why
Responsive output changed based on mutable presentation-layer names. Renaming a layer silently disabled the behavior, and an unrelated design reusing a name inherited fixture-shaped geometry.
Verification
php tests/contract/run.phppasses.newsletter signup/frame 19/frame 20references remain infigma-transformer/src.Risk
The structural thresholds (inset panel at least half the footer width and inside its box; band at footer width below the panel) are derived from the existing fixture geometry. Designs that express the same intent with materially different geometry may now fall through to generic mobile safety.
AI assistance
OpenAI
gpt-5.6-solrunning in OpenCode implemented the structural model, repaired a contract regression in an earlier draft, added the name-independence coverage, and ran the contract suite. A human directed the work and reviewed the result.