diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-19 18:32:47 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-19 18:32:47 +0200 |
| commit | 39c58b807d5f62ee55b606ceb79f21855221a8d0 (patch) | |
| tree | 39289388df6c67ece508c8d060a203553d33475a /CLAUDE.md | |
| parent | 1ec316035ce9aa656dd18a05889856bce9e3aba3 (diff) | |
| download | meshbay-39c58b807d5f62ee55b606ceb79f21855221a8d0.tar.gz | |
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 <noreply@anthropic.com>
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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 |