Skip to content

Convert static UI fragments without fallback blocks and preserve layout geometry #630

Description

@chubes4

Problem

The SSI production gate requires exact visual parity and zero fallback blocks. A fresh 87-fixture matrix run against current Blocks Engine trunk found a representative static site that imports successfully but still emits fallback block families for:

  • a search input wrapper
  • a static empty-state/editor canvas shell
  • a decorative color swatch
  • a progressively enhanced email form

The same output renders 451 px taller than the source and has a 70.90% overlap pixel mismatch. Capture readiness was high on both sides; all stylesheets and images loaded. The mismatch is therefore transformed structure/style geometry, not an incomplete browser capture.

Expected behavior

  • Generic static wrappers and controls map to editable native blocks whenever their preserved semantics can be represented by existing WordPress blocks.
  • Decorative data/style spans map without core/html.
  • Forms use the available native/provider form block contract without being reported as fallback HTML.
  • Generated grouping, spacing, typography, and dimensions preserve source geometry closely enough to pass exact visual parity.
  • Recognizers remain generic and are covered by representative DOM-shape tests, with no fixture-specific selectors or names.

Acceptance criteria

  • Zero core/html or fallback findings for the four static fragment families above.
  • Editor validation remains fully valid.
  • The representative static site no longer has a dimension mismatch and reaches exact visual parity.
  • Existing generic transformer tests and the targeted fixture matrix lane pass.

Relates to Automattic/static-site-importer#489 and Automattic/static-site-importer#651.

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenCode with OpenAI GPT-5.6 Sol
  • Used for: Ran the matrix, analyzed typed fallback and visual attribution evidence, and drafted the tracker. Chris reviewed and owns the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions