WORK-667
ID:WORK-667Status:done

A lead layout for blocks

A blocks entry renders through bar (a row) or definition-list (a label/value grid). Neither draws a byline, a lead value with secondary values beneath, which testimonial and cast each hand-roll in their CSS (SPEC-161 D6).

Priority:mediumComplexity:simpleMilestone:v0.44.0Source:SPEC-161

Criteria completion

Criteria completion: 5 of 5 (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. 7dc7b29
    Created (done)by bjornolofandersson

Acceptance Criteria

  • LayoutPrimitive gains lead; a block in it renders its fields in a column as data-zone-layout="lead", with the first field marked data-lead
  • Skeleton and Lumina style the lead as emphasised and the rest, by :not([data-lead]), as smaller and muted
  • Nothing in the layout sets or reads data-meta-rank, so a compact container does not hide the non-lead values (BUG-023)
  • The theme-authoring docs list lead beside bar and definition-list
  • The CSS coverage test passes and contracts are regenerated on both copies

References

  • SPEC-161: D6.

Resolution

Completed: 2026-10-29

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

What was done

  • packages/transform/src/types.ts: LayoutPrimitive gains lead; BlockDef.layout is typed as LayoutPrimitive.
  • packages/transform/src/engine.ts: renderLeadLayout — fields in their intrinsic shape, data-zone-layout="lead", first present field marked data-lead.
  • packages/skeleton/styles/dimensions/metadata.css: column layout. packages/lumina/styles/dimensions/metadata.css: lead emphasised, :not([data-lead]) smaller and muted.
  • Tests in packages/transform/test/engine-blocks.test.ts, including that no data-meta-rank is emitted.
  • site/content/extend/theme-authoring/blocks-and-layout.md documents lead.

Notes

  • No rune uses lead yet (WORK-668's testimonial will), so contracts regenerate unchanged.