WORK-664
ID:WORK-664Status:done

section takes guest-fit

The native hero and feature host a media guest with guestFit: 'bleed', a config field. A config field cannot differ between compositions that place the same section, and hero needs bleed where a card-like composition needs clip (SPEC-160 D7).

Priority:mediumComplexity:simpleMilestone:v0.44.0Source:SPEC-160
claude/value-primitives-and-grid View source

Criteria completion

Criteria completion: 4 of 4 (100%) checked; tracking started on Oct 29, no incremental history yet0%25%50%75%100%Oct 29Oct 29

Tracking started Oct 29 — check back for trends.

Branches 3
History 1
  1. 807a48b
    Created (done)by bjornolofandersson

Acceptance Criteria

  • section accepts guest-fit="clip | bleed", default clip, emitted as data-guest-fit on its media zone, as the config field emits it today
  • frame's default frame-displace-mode and its frame-overflow="bleed" check read the resolved attribute, falling back to the config field
  • Native runes keep guestFit in config, and their output is unchanged on both contract copies
  • The section docs page documents guest-fit

Blocked by

  • WORK-652: section's media zone (v0.43.0)

References

  • SPEC-160: D7.

Resolution

Completed: 2026-10-29

Branch: claude/milestone-v0-44-0-ism7ni

What was done

  • packages/runes/src/tags/section.ts: guest-fit attribute (clip | bleed), emitted into the field bag in the split path.
  • packages/transform/src/engine.ts: reads guest-fit from the field bag and folds it over config.guestFit before facets run, so the media zone's data-guest-fit, frame's displace-mode default and the frame-overflow check all see the resolved value. Not a modifier, so nothing lands on the root.
  • Tests in packages/runes/test/section-split.test.ts; docs on site/content/runes/section.md; rune-attributes.json regenerated.

Notes

  • Native hero/feature keep guestFit: 'bleed' in config; contracts are unchanged on both copies.