Skip to content

Keep class-owned max-width off core/column serialized style #714

Description

@chubes4

Problem

Fixture 37 now emits an editor-invalid core/column because class-owned max-width: var(--essay) is serialized onto the column wrapper in addition to its generated geometry carrier. Gutenberg core/column save output does not include that unsupported inline max-width, so validation fails.

Evidence

SSI eight-surface proof: Homeboy run 4610bb1b-6a98-40fb-b2b6-bed00bc1fba3.

Observed mismatch:

core/column
expected style: margin-top:0;...;padding-left:0
received style: margin-top:0;...;padding-left:0;max-width:var(--essay)

Source CSS:

.essay__body {
  grid-column: 2;
  max-width: var(--essay);
}

BlockFactory already excludes max-width from serialized styles for core/group, core/columns, core/list-item, core/paragraph, and core/separator, retaining it through generated geometry CSS. core/column is omitted from that policy even though it uses the same carrier path.

Acceptance criteria

  • Class-owned max-width on a source element converted to core/column is retained through generated geometry CSS, not unsupported serialized block style.
  • The transformed wrapper remains visually equivalent.
  • Gutenberg validation reports the fixture-37 column valid.
  • Add focused canonical save-shape and geometry parity coverage.
  • Existing PHP transformer contract and canonical suites pass.

Related

AI assistance

  • Model: OpenAI GPT-5.6 Sol
  • Tool: OpenCode and Homeboy
  • Used for: ran the eight-surface SSI proof, isolated the exact save-shape mismatch, and traced the missing block-policy entry. Chris Huber owns review and decisions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions