Skip to content

Database: list-view chips painted over row titles on iconless rows#156

Merged
th3-br41n merged 1 commit into
mainfrom
fix/tasks-list-column-overlap
Jul 13, 2026
Merged

Database: list-view chips painted over row titles on iconless rows#156
th3-br41n merged 1 commit into
mainfrom
fix/tasks-list-column-overlap

Conversation

@th3-br41n

Copy link
Copy Markdown
Contributor

The bug (user screenshot, v0.4.2)

In any Database list view (e.g. the curated Tasks → "Upcoming"), rows whose entities have no icon rendered the status/priority/date chips on top of the title text, at what looked like random fixed columns.

Root cause — reproduced with a real-shell probe

A dogfood Playwright probe dumped the row's computed grid: grid-template-columns: 133.578px 660.422px 0px.

.dbv-list__glyph:empty { display: none } removes the glyph from the grid flow when the entity has no icon, so auto-placement shifts every child one track left:

  • the title lands in the auto track — which can't shrink below the full nowrap string,
  • the props strip lands in 1fr — which collapses to ~0,
  • and the strip's right-packed (justify-content: flex-end) chips overflow leftward over the title.

Two amplifiers made it look like phantom table columns: the SDK date/link cells carry width: 100% (for their panel/grid hosts), inflating each to the full 28ch cap inside the strip — a 212px button for an 11-char date, and for an empty value.

Fixes

  1. Pin each row child to its explicit grid column (glyph 1 / title 2 / props 3) — a hidden glyph can no longer reflow the row.
  2. Size date/link cells to content inside the strip (scoped in the app CSS; the SDK panel/grid rule is untouched).
  3. Read-only strip parity: skip title/name columns like the editable strip already does (it painted the full title again as the first chip).

Verification

Re-ran the probe against the rebuilt bundle: grid-template-columns: 0px 671.906px 122.094px — title owns the middle track, chips content-sized at the right edge (pill 36px, date 86px), overlap geometrically impossible. Screenshot in tests/dogfood/.sessions/900-dbv-list-probe/ (harness) confirms visually. Database react suite 49/49, per-app tsc clean.

🤖 Generated with Claude Code

Reproduced in the real shell (dogfood probe, computed grid):
`grid-template-columns` resolved to `133px 660px 0px` — an iconless entity's
glyph (`.dbv-list__glyph:empty { display:none }`) drops out of the grid FLOW,
so auto-placement shifts every child one track left: the title lands in the
`auto` track (which can't shrink below the full nowrap string), the props strip
lands in `1fr` (collapses to ~0), and the right-packed chips overflow leftward
ON TOP of the title. Every iconless row in every list view rendered this way.

Fixes, verified by re-running the probe (`0px 672px 122px`, chips right,
no overlap):
- pin each row child to its explicit grid column (glyph 1 / title 2 / props 3)
  so a hidden glyph can't reflow the row;
- size the SDK date/link cells to content inside the strip — their panel/grid
  `width:100%` inflated each to the full 28ch cap (a 212px button for an
  11-char date, and for an EMPTY value), reading as phantom misaligned columns;
- read-only strip now skips `title`/`name` columns like the editable strip does
  (it painted the full title AGAIN as the first chip).

Database react suite 49/49 green; per-app tsc clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@th3-br41n th3-br41n merged commit 11a50c0 into main Jul 13, 2026
1 of 3 checks passed
@th3-br41n th3-br41n deleted the fix/tasks-list-column-overlap branch July 13, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant