aboutsummaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-19 18:32:47 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-19 18:32:47 +0200
commit39c58b807d5f62ee55b606ceb79f21855221a8d0 (patch)
tree39289388df6c67ece508c8d060a203553d33475a /CLAUDE.md
parent1ec316035ce9aa656dd18a05889856bce9e3aba3 (diff)
downloadmeshbay-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.md14
1 files changed, 14 insertions, 0 deletions
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