From de37f2a0bba051d637ad5589bd1355d3fbd14614 Mon Sep 17 00:00:00 2001 From: CMaintz Date: Fri, 25 Sep 2026 22:56:47 +0200 Subject: [PATCH] fix(mobile): 44px tap targets, BETA badge on phones, dvh/safe-area, 16px inputs (A98) Emulated mobile audit (Edge; 390x844, 360x800, 768x1024; touch; both themes and languages). No horizontal overflow before or after; undersized controls fixed with phone-only min-h-11 (reset at sm/md so desktop is unchanged). The corner BETA ribbon is md+ only; phones get a header badge. Explorer files untouched (follow-ups in PR). --- app/src/components/AboutButton.tsx | 4 +- app/src/components/Account.tsx | 4 +- app/src/components/AccountMenu.tsx | 4 +- app/src/components/KnowledgeStatus.tsx | 2 +- app/src/components/Quiz.tsx | 8 +-- app/src/components/RecentTerms.tsx | 8 ++- app/src/components/Search.tsx | 7 ++- app/src/components/StudyHub.tsx | 4 +- app/src/components/Timeline.tsx | 25 +++++---- app/src/components/Tour.tsx | 18 +++--- app/src/layouts/Base.astro | 56 +++++++++++++------ app/src/pages/404.astro | 8 +-- app/src/pages/[lang]/articles/[...slug].astro | 7 ++- app/src/pages/[lang]/compare/[pair].astro | 9 ++- app/src/pages/[lang]/compare/index.astro | 11 ++-- app/src/pages/[lang]/index.astro | 8 +-- app/src/pages/[lang]/review/index.astro | 10 +++- app/src/pages/[lang]/terms/[...slug].astro | 22 +++++--- app/src/pages/[lang]/terms/index.astro | 2 +- app/src/pages/[lang]/timeline/index.astro | 4 +- app/src/styles/global.css | 11 ++++ design/AUTONOMOUS_DECISIONS.md | 1 + 22 files changed, 149 insertions(+), 84 deletions(-) diff --git a/app/src/components/AboutButton.tsx b/app/src/components/AboutButton.tsx index ac24148..8f7807d 100644 --- a/app/src/components/AboutButton.tsx +++ b/app/src/components/AboutButton.tsx @@ -143,7 +143,7 @@ export default function AboutButton({ ui, links, people, variant = 'circle' }: P aria-label={ui.close} title={ui.close} onClick={close} - class="absolute top-5 right-5 flex h-9 w-9 items-center justify-center rounded-full border border-border-strong text-muted hover:border-border-hover hover:text-fg" + class="absolute top-4 right-4 flex h-11 w-11 items-center justify-center rounded-full border border-border-strong text-muted hover:border-border-hover hover:text-fg" > + {ui.account} diff --git a/app/src/components/KnowledgeStatus.tsx b/app/src/components/KnowledgeStatus.tsx index d9ab383..3b49756 100644 --- a/app/src/components/KnowledgeStatus.tsx +++ b/app/src/components/KnowledgeStatus.tsx @@ -36,7 +36,7 @@ export default function KnowledgeStatus({ termId, ui }: Props) {
{STATUSES.map((s) => (
@@ -39,7 +43,7 @@ export default function RecentTerms({ names, termBase, ui }: Props) { {ids.map((id) => (
  • {names[id]} diff --git a/app/src/components/Search.tsx b/app/src/components/Search.tsx index a0d814a..be2e376 100644 --- a/app/src/components/Search.tsx +++ b/app/src/components/Search.tsx @@ -169,7 +169,7 @@ export default function Search({ onInput={(e) => setQuery((e.target as HTMLInputElement).value)} placeholder={placeholder} aria-label={placeholder} - class="w-full rounded border border-border-strong bg-surface px-3 py-2 text-fg placeholder:text-subtle focus:border-border-hover focus:outline-none" + class="w-full rounded border border-border-strong bg-surface px-3 py-2.5 text-base sm:py-2 text-fg placeholder:text-subtle focus:border-border-hover focus:outline-none" /> {q && !engine && (

    {action && ( @@ -227,7 +227,8 @@ export default function Search({ )} )} - {hint &&

    {hint}

    } + {/* The "/" shortcut means nothing without a keyboard. */} + {hint &&

    {hint}

    } ); } diff --git a/app/src/components/StudyHub.tsx b/app/src/components/StudyHub.tsx index 9045248..89bc704 100644 --- a/app/src/components/StudyHub.tsx +++ b/app/src/components/StudyHub.tsx @@ -79,7 +79,7 @@ export default function StudyHub({ {next.map((n) => (
  • {n.term[lang]} @@ -94,7 +94,7 @@ export default function StudyHub({
    - - atlas - -
    +
    + + atlas + + {/* Phones: a badge here, as the corner ribbon would cover content and controls. */} + +
    +