From 17aed374eb1964e77191ef5c2d597515bd8364f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Fri, 15 May 2026 18:45:08 +0200 Subject: [PATCH] chore(dashboard): apply the tap-target floor across the dashboard tile and onboarding chrome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lift the GLP-1 tile range strip + tab pills, the getting-started checklist dismiss buttons, and the settings reorder + source-ladder arrow buttons so every interactive element clears the 44 px WCAG 2.5.5 floor. - `glp1-tile.tsx`: range-strip radio buttons gain `inline-flex min-h-11 items-center justify-center px-3` so each preset sits at 44 px; the tab pills (level / weight) lift the same way. - `getting-started-checklist.tsx`: dismiss-all CTA drops `size="sm"` so it sits at the default 40 px primitive height; per-row dismiss `X` button wraps in `inline-flex h-11 w-11`. - `dashboard-layout-section.tsx`: reorder up + down arrows `h-5 w-5` → `size-11`; column-header spacer widens to `w-11` to keep the layout grid aligned. - `sources-section.tsx`: metric source ladder + device-type ladder up/down arrows stack vertically on ` setRangePoints(preset.points)} className={cn( - "rounded px-1.5 py-0.5 font-medium tabular-nums", + "inline-flex min-h-11 items-center justify-center rounded px-3 font-medium tabular-nums", "hover:text-foreground focus-visible:ring-ring/50 focus-visible:ring-2 focus-visible:outline-none", rangePoints === preset.points ? "bg-card text-foreground shadow-sm" @@ -455,7 +455,7 @@ function TabButton({ data-active={active ? "true" : "false"} onClick={onClick} className={cn( - "rounded px-2 py-1 text-xs font-medium", + "inline-flex min-h-11 items-center justify-center rounded px-3 text-xs font-medium", "focus-visible:ring-ring/50 focus-visible:ring-2 focus-visible:outline-none", active ? "bg-card text-foreground shadow-sm" diff --git a/src/components/onboarding/getting-started-checklist.tsx b/src/components/onboarding/getting-started-checklist.tsx index 74f8c90ad..0ed7f2957 100644 --- a/src/components/onboarding/getting-started-checklist.tsx +++ b/src/components/onboarding/getting-started-checklist.tsx @@ -352,7 +352,6 @@ export function GettingStartedChecklist() { diff --git a/src/components/settings/dashboard-layout-section.tsx b/src/components/settings/dashboard-layout-section.tsx index 3a27b4ef6..10ec46de8 100644 --- a/src/components/settings/dashboard-layout-section.tsx +++ b/src/components/settings/dashboard-layout-section.tsx @@ -253,7 +253,7 @@ export function DashboardLayoutSection({ id }: { id: string }) { of the two surfaces (per feedback_dashboard_top_tiles _selectable.md). */}
-
{t(labelKey)} diff --git a/src/components/settings/sources-section.tsx b/src/components/settings/sources-section.tsx index fb0f48f19..ecb6c24f8 100644 --- a/src/components/settings/sources-section.tsx +++ b/src/components/settings/sources-section.tsx @@ -344,30 +344,37 @@ export function SourcesSection() { {t(SOURCE_LABEL_KEYS[source] ?? source)} - - + {/* v1.4.27 R3d MB2 — stack up/down vertically on + narrow viewports so each button keeps the + 44 px floor without crowding the row. From + `sm:` up the two buttons sit side-by-side + again to preserve the desktop layout. */} +
+ + +
))} @@ -502,32 +509,36 @@ export function SourcesSection() { {t(DEVICE_TYPE_LABEL_KEYS[deviceType])} - - + {/* v1.4.27 R3d MB2 — same stacked-on-mobile shape + as the metric source rows above. */} +
+ + +
))}