From 39c58b807d5f62ee55b606ceb79f21855221a8d0 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sat, 19 Sep 2026 18:32:47 +0200 Subject: fix(hub): the members table stops hanging off the side of a phone `.admin-table` column heads are `white-space: nowrap`, which meets a translated string: "Username" is one word, "Nom d'utilisateur" is three, uppercased with letter-spacing on top. The heads alone overflowed a 360px window by 11px, and on Android an overflowing document takes every sticky element with it. 11px was only what could be measured: the probe served no members, so the table measured its headers and nothing else. With one realistic username in it the same page overflowed by 248px, at 420px-wide windows too. The cells get `word-break: break-word`, as `.file-name` already had. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index 5463437..a7ecbca 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -492,6 +492,20 @@ do. Read them before writing anything that touches the same mechanism. `autofocus`, and Android's `interactive-widget` default splits the visual viewport from the layout one), which was plausible, cost a round trip, and was wrong; the screenshot showing no keyboard was already in hand. + **It came back on 2026-09-19, one table along, and the fixture hid most of + it again.** `.admin-table` overflowed a 360px window by 11px — from its + *column heads*, because `white-space: nowrap` met a translated string: + "Username" is one word and "Nom d'utilisateur" is three, uppercased with + letter-spacing on top. **A label's length is not yours to assume once it goes + through `t()`**, and a head that wraps onto two lines is legible where a + table the reader cannot reach the right of is not. The 11px was the whole of + what could be measured, because the probe served no members at all: an empty + table measures its headers and nothing else. With one realistic username in + it — no spaces to break at, a string somebody else chose — the same page + overflowed by **248px**, and at 420px-wide windows as well as 360. Same + lesson as the paragraph above, twice now: the wrapping rule belongs on every + cell that carries a name, and the fixture has to carry the names real data + has or it measures itself. - **Derived data that nothing persists is re-derived where somebody is watching.** `video_meta`, `photo_meta` and `thumbs` were durable; the audio -- cgit v1.2.3