Restart-when: a published @objectstack/console > 17.4.0 whose .objectui-sha contains objectstack-ai/objectui@bd09957380 (PR #9253) — probe the installed console bundle: span: 'full' in a 3-column section emits @md:col-span-2 as well as @2XL:col-span-3; not the issue state
Measured while discharging #1694 (the absolute-colspan-discouraged question), in Chromium against objectstack dev on pinned @objectstack/* 17.4.0. ⛔ Filed rather than fixed: the sites are this repo's, the cause is the renderer's.
The measurement
span: 'full' compiles to a single class, @2xl:col-span-3, gated at the top breakpoint only. Rendered geometry for one field in an authored 3-column section:
| authored |
390px (1 col) |
720px (2 col) |
1700px (3 col) |
| (no attribute) |
358px |
285px |
495px |
span: 'full' |
358px |
285px |
1517px |
colSpan: 2 |
358px |
586px |
1006px |
⇒ at the modal width, span: 'full' is pixel-identical to writing nothing — one column of two — while the colSpan spelling the platform discourages spans correctly there. Overflow was 0px in every configuration at every width; the readings were taken twice with a settle and were stable both times.
Why this repo has 26 of them
grep -rn "span: 'full'" src/ → 26 today. grep -rn "colSpan" src/ → 0.
24 of the 26 are there because PR #1605 rewrote colSpan: 2 into span: 'full' — to clear the absolute-colspan-discouraged warning. #1694 has now measured that warning's claim ("a fixed span only aligns at one width") and found it false at all three widths it names.
⇒ the rule steered this app out of a spelling that aligned everywhere and into one that silently does nothing at the middle width. ⭐ That is the finding: not a noisy rule, a rule whose advice made the reference app measurably worse — and no gate could see it, because the app is conformant.
What is actually broken for a reader today
Every authored "this field takes the whole row" intent is honoured on a wide page and dropped in a modal, which is where a record is most often edited. Nobody has audited which of the 26 sites care; some may look fine at half width by accident.
⛔ What NOT to do
What unblocks it
objectstack#17328 carries both halves: the false rule message and this breakpoint gating (the objectui renderer half is flagged there for platform triage). When it ships in a released line, this card is a re-measurement — ⭐ re-measure, ⛔ do not act on the table above; it is stale from the moment it was written — and then whichever spelling actually spans at all three widths.
⚠️ If the platform's answer is "span: 'full' is correct and the top-breakpoint gating is intended", then this card becomes a content question instead: 26 authored intents that the product deliberately does not honour in a modal, and the docs and the authoring guidance both say otherwise.
Refs: #1694 (the measurement, closed) · PR #1605 (the rewrite that created the 24) · #1524 (the noise question, closed) · objectstack#17328 (upstream) · #806 (why source reading is not acceptable here)
Generated by Claude Code
Restart-when: a published @objectstack/console > 17.4.0 whose .objectui-sha contains objectstack-ai/objectui@bd09957380 (PR #9253) — probe the installed console bundle: span: 'full' in a 3-column section emits @md:col-span-2 as well as @2XL:col-span-3; not the issue state
Measured while discharging #1694 (the
absolute-colspan-discouragedquestion), in Chromium againstobjectstack devon pinned@objectstack/*17.4.0. ⛔ Filed rather than fixed: the sites are this repo's, the cause is the renderer's.The measurement
span: 'full'compiles to a single class,@2xl:col-span-3, gated at the top breakpoint only. Rendered geometry for one field in an authored 3-column section:span: 'full'colSpan: 2⇒ at the modal width,
span: 'full'is pixel-identical to writing nothing — one column of two — while thecolSpanspelling the platform discourages spans correctly there. Overflow was 0px in every configuration at every width; the readings were taken twice with a settle and were stable both times.Why this repo has 26 of them
grep -rn "span: 'full'" src/→ 26 today.grep -rn "colSpan" src/→ 0.24 of the 26 are there because PR #1605 rewrote
colSpan: 2intospan: 'full'— to clear theabsolute-colspan-discouragedwarning. #1694 has now measured that warning's claim ("a fixed span only aligns at one width") and found it false at all three widths it names.⇒ the rule steered this app out of a spelling that aligned everywhere and into one that silently does nothing at the middle width. ⭐ That is the finding: not a noisy rule, a rule whose advice made the reference app measurably worse — and no gate could see it, because the app is conformant.
What is actually broken for a reader today
Every authored "this field takes the whole row" intent is honoured on a wide page and dropped in a modal, which is where a record is most often edited. Nobody has audited which of the 26 sites care; some may look fine at half width by accident.
⛔ What NOT to do
colSpan. It happens to align today, but it is discouraged by a live rule and the rule's fate is the upstream card's to decide. Reverting 24 sites into a warned spelling on the strength of one measurement swaps one silent problem for a loud one, and would have to be undone again if the platform fixes the breakpoint gating instead of the rule.os lint --strictfirst, then retire the local re-implementations by family #1579's fence stands, and a local gate cannot see a renderer breakpoint anyway.What unblocks it
objectstack#17328 carries both halves: the false rule message and this breakpoint gating (the
objectuirenderer half is flagged there for platform triage). When it ships in a released line, this card is a re-measurement — ⭐ re-measure, ⛔ do not act on the table above; it is stale from the moment it was written — and then whichever spelling actually spans at all three widths.span: 'full'is correct and the top-breakpoint gating is intended", then this card becomes a content question instead: 26 authored intents that the product deliberately does not honour in a modal, and the docs and the authoring guidance both say otherwise.Refs: #1694 (the measurement, closed) · PR #1605 (the rewrite that created the 24) · #1524 (the noise question, closed) · objectstack#17328 (upstream) · #806 (why source reading is not acceptable here)
Generated by Claude Code