Status: active Figma assembly contract.
Scope
Use this contract for the local reusable body-row shell. It composes published body-cell instances; it does not define a screen's columns, data, or toolbar.
Source Evidence
Identity and exposed anatomy rechecked read-only on 2026-09-05 at exact node. This confirms the documented owner/reference, not every assembly predicate or runtime token parity.
Direct Figma evidence: row frame
18785:186763and parent18298:105880passed Figma checks. The verified row screenshot is1074×62.
Required Assembly
- Dependency classification: every mapped
Table Cell/*contract is optional at this generic row boundary because a concrete column model selects only a subset. List all nine in the manifest and mark only the variants present in the authored row as Used. - Rule ID:
table.local-owner— create_table-rowunder the current screen's_table; never reuse a feature-local row master from another screen. - Rule ID:
table.body-row.top-align— use horizontal Auto Layout withcounterAxisAlignItems=MIN; every directTable Cell/*instance useslayoutAlign=INHERITand begins aty=0. - Rule ID:
table.body-row.bottom-stroke-only— set row strokes to top0, right0, bottom1, left0, with the bottom stroke bound tostroke/secondary. Do not create a four-sided outline. - Rule ID:
table.body-row.opaque-base— keep an opaque fill bound tobg/level 1 base; default rows and their instances must not be transparent. - Compose cells in table-column order and choose the narrowest applicable
Table Cell/*contract. Keep fixed-column separators on affected cells. - Make each row instance horizontally
Fillinside a scrolling_table; the enclosing table owns the screen-specific minimum content width. - Use clickable/selected treatment only when the enclosing table supplies that interaction state. Do not invent a generic selected variant.
Verification Checklist
table.local-owner:_table-rowbelongs to the same screen-local_table.table.body-row.top-align: direct cells inherit cross-axisMINand havey=0.table.body-row.bottom-stroke-only: only the1pxbottom secondary stroke is present at row level.table.body-row.opaque-base: the default row resolves to opaquebg/level 1 base.- Every direct child is the intended published Table Cell variant in column order; no unrelated frames recreate cells.