Context
Found in Grace's v13.3 polish sweep of examples/grid/issues, the 13.3 release notes' showcase, and handed to Ada as the showcase's author (#19756). With Content-sized rows unticked, each wrapped Title and Summary cell shows a slice from the middle of its text: lines cut at the top and the bottom edge.
Measured on dev (0ca204c89a), Chromium 156, 1600 × 900, the showcase spec's fixture issues, fixed mode. For each visible cell, the text's line boxes (Range#getClientRects) were compared with the cell's content box:
- a 3-line title overflows by 17 px at the top and 16 px at the bottom;
- a 4-line summary overflows by 25 px and 22 px;
- one-line cells fit.
The Problem
The toggle exists for a comparison. The notes tell readers to "untick Content-sized rows to see the same issues at a fixed height". The comparison's "before" side currently shows neither the start of the text nor a clean cut. It looks broken, worse than a fixed-row grid normally looks, and that flatters the feature.
The Architectural Reality
.neo-grid-cell is display: flex; align-items: center; contain: layout paint style (resources/scss/src/grid/Body.scss), with no white-space rule, so long text wraps.
- Without row geometry, a
wrapText column puts its text directly into the cell (src/grid/Row.mjs, the column.wrapText && gridBody.rowGeometry branch). The wrapped lines are centred in a 44 px row and clipped at both edges.
- Content-sized mode wraps the text in
.neo-grid-cell-text, which is measured, so it is unaffected.
- Design authority:
- the showcase's JSDoc: "The checkbox switches back to fixed-height rows for comparison";
- the 13.3 notes' TL;DR: "A grid with a fixed row height has to choose: clip long text, or make every row as tall as the longest one."
- Neither specifies how the text is clipped. This ticket picks the clip that represents a fixed-row grid.
The Fix
Showcase only.
onContentSizedChange toggles issues-fixed-rows on the grid while the box is unticked.
resources/scss/src/examples/grid/issues/MainContainer.scss gives the Title and Summary cells, only under that class, display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis. A fixed row then shows one line of each, cut with an ellipsis.
Acceptance Criteria
Out of Scope
- An engine default for fixed-height cells (for example one-line ellipsis in
.neo-grid-cell). Every grid with long text and a fixed row height shares this layout. The blast radius is every renderer that relies on multi-line cells in a tall rowHeight. It would need a Discussion and evidence of user friction, which there is none of.
Avoided Traps
- Top-aligning the cells (
align-items: flex-start) was the first candidate. Measured, it shows the first line, but it slices the second in half at the bottom edge: up to 49 px of a 4-line summary overflows there. In a screenshot it still reads as broken.
:has() on the missing .neo-grid-cell-text child would key the style to Row.mjs's DOM detail rather than to the showcase's own toggle.
Related
- #19756 (the showcase).
- #19661 / #19662 (content-sized rows).
- #19712 (the 13.3 notes, whose "What you can try" step 2 drives this toggle).
Live latest-open sweep: latest 20 open issues at 2026-10-16T12:05Z; no equivalent found.
A2A sweep: latest 30 messages at 12:06Z; the only message on this scope is Grace's fork to Ada (11:29Z).
MC sweep: "issues showcase fixed row height wrapped text clipped cut both edges ellipsis", 6 results; Grace's routing record of the fork, no prior decision on a fix.
Own-assignment sweep: 7 open, none overlapping.
Origin Session ID: 009de3c6-e0ea-40f0-9381-652ddc9146dd
Retrieval Hint: "issues showcase fixed row height text clipped both edges", "wrapText without rowGeometry"
Context
Found in Grace's v13.3 polish sweep of
examples/grid/issues, the 13.3 release notes' showcase, and handed to Ada as the showcase's author (#19756). With Content-sized rows unticked, each wrapped Title and Summary cell shows a slice from the middle of its text: lines cut at the top and the bottom edge.Measured on
dev(0ca204c89a), Chromium 156, 1600 × 900, the showcase spec's fixture issues, fixed mode. For each visible cell, the text's line boxes (Range#getClientRects) were compared with the cell's content box:The Problem
The toggle exists for a comparison. The notes tell readers to "untick Content-sized rows to see the same issues at a fixed height". The comparison's "before" side currently shows neither the start of the text nor a clean cut. It looks broken, worse than a fixed-row grid normally looks, and that flatters the feature.
The Architectural Reality
.neo-grid-cellisdisplay: flex; align-items: center; contain: layout paint style(resources/scss/src/grid/Body.scss), with nowhite-spacerule, so long text wraps.wrapTextcolumn puts its text directly into the cell (src/grid/Row.mjs, thecolumn.wrapText && gridBody.rowGeometrybranch). The wrapped lines are centred in a 44 px row and clipped at both edges..neo-grid-cell-text, which is measured, so it is unaffected.The Fix
Showcase only.
onContentSizedChangetogglesissues-fixed-rowson the grid while the box is unticked.resources/scss/src/examples/grid/issues/MainContainer.scssgives the Title and Summary cells, only under that class,display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis. A fixed row then shows one line of each, cut with an ellipsis.Acceptance Criteria
IssuesShowcase.spec.mjs: red ondev, green at head).every row fits its tallest wrapped text…stays green.Out of Scope
.neo-grid-cell). Every grid with long text and a fixed row height shares this layout. The blast radius is every renderer that relies on multi-line cells in a tallrowHeight. It would need a Discussion and evidence of user friction, which there is none of.Avoided Traps
align-items: flex-start) was the first candidate. Measured, it shows the first line, but it slices the second in half at the bottom edge: up to 49 px of a 4-line summary overflows there. In a screenshot it still reads as broken.:has()on the missing.neo-grid-cell-textchild would key the style toRow.mjs's DOM detail rather than to the showcase's own toggle.Related
Live latest-open sweep: latest 20 open issues at 2026-10-16T12:05Z; no equivalent found. A2A sweep: latest 30 messages at 12:06Z; the only message on this scope is Grace's fork to Ada (11:29Z). MC sweep: "issues showcase fixed row height wrapped text clipped cut both edges ellipsis", 6 results; Grace's routing record of the fork, no prior decision on a fix. Own-assignment sweep: 7 open, none overlapping.
Origin Session ID: 009de3c6-e0ea-40f0-9381-652ddc9146dd
Retrieval Hint: "issues showcase fixed row height text clipped both edges", "wrapText without rowGeometry"