From b57ea864103486d5462f70ecad4b09146d88f3a7 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Sat, 11 Jul 2026 22:40:06 +0800 Subject: [PATCH 1/3] fix(differentials): shape the detail tab focus ring and firm up action taps Rebuilt on top of #483's redesigned interactive detail page (which already fixed the wrapping action labels and tab-label wrap). Remaining polish: - Add a .focus-ring-tab class (inset rounded ring: outline-offset -4px, no halo) so keyboard focus no longer draws a full-height box that collides with the tablist border; inactive tabs get a transparent bottom border to remove the 2px layout jump on tab switch. - Keep #483's roving-tabindex keyboard nav, nowrap and flex-1 layout intact. - shrink-0 on the desktop action cluster so the Save icon button stops being crushed below 44px at ~1024px; nowrap on the Compare button. - Bump the two overlap-diagnosis chips to the 44px tap standard. - Regression test: detail Save action >=44px at 1024px, Overview tab single-line with no page overflow at 320px. Co-Authored-By: Claude Fable 5 --- src/app/globals.css | 11 +++++ .../differential-detail-page.tsx | 14 +++--- tests/ui-tools.spec.ts | 44 +++++++++++++++++++ 3 files changed, 62 insertions(+), 7 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index 9c06a4ddb..9a4cb8040 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1799,6 +1799,17 @@ summary::-webkit-details-marker { box-shadow: 0 0 0 4px color-mix(in srgb, var(--focus) 25%, transparent) !important; } + /* Underline-tab focus: an inset rounded ring that hugs the label instead of the + default full-height box, which collides with the tablist border. */ + .focus-ring-tab { + border-radius: var(--radius-md); + } + .focus-ring-tab:focus-visible { + outline: 2px solid var(--focus) !important; + outline-offset: -4px !important; + box-shadow: none !important; + } + /* Premium hover transitions for source capsules */ .source-capsule-hover { transition: diff --git a/src/components/differentials/differential-detail-page.tsx b/src/components/differentials/differential-detail-page.tsx index cd595a6f4..f22bb6210 100644 --- a/src/components/differentials/differential-detail-page.tsx +++ b/src/components/differentials/differential-detail-page.tsx @@ -160,13 +160,13 @@ function SectionItems({ {slug ? ( {item} ) : ( - + {item} )} @@ -714,11 +714,11 @@ function TopActions({ onCompare: () => void; }) { return ( -
+
From 619dd99845beb02aa93f30377011b89d70fcb814 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:37:11 +0800 Subject: [PATCH 3/3] fix(medication): use per-prompt action descriptions on the prescribing home MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The MedicationHome actions hardcoded description: "Prescribing-focused search." for every prompt, ignoring the authored `medicationPrompts[].description` values ("Check renal dosing…", "Review opioid-use…", "Check maximum dose…") that the prescribing-home responsive test asserts. Restore `description: prompt.description` so each card shows its specific guidance and the advisory UI regression passes. Co-Authored-By: Claude Fable 5 --- .../clinical-dashboard/medication-prescribing-workspace.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/clinical-dashboard/medication-prescribing-workspace.tsx b/src/components/clinical-dashboard/medication-prescribing-workspace.tsx index 58213e866..c02e3cee1 100644 --- a/src/components/clinical-dashboard/medication-prescribing-workspace.tsx +++ b/src/components/clinical-dashboard/medication-prescribing-workspace.tsx @@ -207,7 +207,7 @@ function MedicationHome({ actionsLabel="Medication prompts" actions={medicationPrompts.map((prompt) => ({ title: prompt.label, - description: "Prescribing-focused search.", + description: prompt.description, icon: prompt.icon, onClick: () => onSuggestedSearch(prompt.label), disabled: loading,