From 5e326335af37e5d9bc353b7cbed90737aa606f2c Mon Sep 17 00:00:00 2001 From: mrhid6 Date: Mon, 27 Jul 2026 23:28:53 +0100 Subject: [PATCH] fix(web): stop long tokens and button rows overflowing on mobile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three root causes behind five reported overflows: - Td below sm is a flex row, and a flex item's default min-width:auto is its min-content width. A fingerprint or target URL is one unbreakable token, so the value could not shrink and spilled out of the card. The value now sits in a min-w-0 break-words wrapper that is display:contents above sm, leaving the desktop table untouched. Fixes /keys, /monitors and the installed-keys table on /servers/[id] in one place. - The ESO read URL and the secrets group endpoint are unbreakable tokens in prose with the default overflow-wrap:normal. Both paragraphs now break-words. - Three page headers (servers/[id], keys/[id], monitors/[id]) held an unwrapped button row. They stack below sm and the clusters wrap. These used items-start, which is why the earlier responsive sweep — matching items-center — skipped all three; only one was reported. Verified: tsc clean, next build clean, and the compiled stylesheet confirms max-sm:min-w-0 / max-sm:break-words land in the below-640px query and sm:contents in the above-640px one. --- web/app/(app)/keys/[id]/page.tsx | 12 +++++++----- web/app/(app)/monitors/[id]/page.tsx | 8 ++++---- web/app/(app)/secrets/[group]/page.tsx | 8 ++++---- web/app/(app)/servers/[id]/page.tsx | 4 ++-- web/app/(app)/settings/page.tsx | 4 +++- web/components/ui/Table.tsx | 16 ++++++++++++++-- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/web/app/(app)/keys/[id]/page.tsx b/web/app/(app)/keys/[id]/page.tsx index f90a23c..0e68f12 100644 --- a/web/app/(app)/keys/[id]/page.tsx +++ b/web/app/(app)/keys/[id]/page.tsx @@ -248,20 +248,22 @@ export default function KeyDetailPage() { /> )} -
-
+
+
← SSH Keys -
+

{key.label}

{key.source}
-

{key.fingerprint}

+ {/* A fingerprint is one unbreakable token; without break-all it + overflows the column rather than wrapping. */} +

{key.fingerprint}

-
+
diff --git a/web/app/(app)/secrets/[group]/page.tsx b/web/app/(app)/secrets/[group]/page.tsx index 0745b68..1fdf4c9 100644 --- a/web/app/(app)/secrets/[group]/page.tsx +++ b/web/app/(app)/secrets/[group]/page.tsx @@ -249,13 +249,13 @@ export default function SecretGroupPage() {
-
-

{group}

-

+

+

{group}

+

ESO reads this group at GET /api/secrets/{group}/values

-
+