From c05711f344e707c891498483c387087d2c0ed6d8 Mon Sep 17 00:00:00 2001
From: sneak
Date: Mon, 10 Aug 2026 13:54:58 +0000
Subject: [PATCH] fix(frontend): meet the 44x44 minimum tap target on every
control (closes #43)
Every interactive control measured below the 44x44 CSS px floor (Apple
HIG, WCAG 2.2 SC 2.5.5) on touch viewports: .pin-btn at 16x16, the
debug-log label at 89.3x14, #interval-select at 64x28 and, in the narrow
layout, #pause-btn at 108.2x39.8.
The pin button keeps its 16x16 layout footprint: the button box grows to
44x44 and matching negative margins take the growth back out of layout,
so neither row height nor the icon's position changes in either layout.
The select and the pause button get a min-height, the debug-log label
becomes an inline-flex box 44 tall. Applied unconditionally rather than
under a breakpoint, since a phone in landscape is above the 768px
breakpoint and still a touch device.
---
TODO.md | 4 ++++
src/main.js | 2 +-
src/styles.css | 35 ++++++++++++++++++++++++++++++++++-
3 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/TODO.md b/TODO.md
index 0caaa52..1da8930 100644
--- a/TODO.md
+++ b/TODO.md
@@ -22,6 +22,10 @@ files, so merging it also closes most compliance gaps.
# Completed Steps
+- 2026-08-10: every interactive control now meets the 44x44 CSS px minimum tap
+ target (`.pin-btn`, `#interval-select`, the debug-log label and, on narrow
+ viewports, `#pause-btn`). The pin button's hit area grows via matching
+ negative margins, so its layout footprint and row density are unchanged
- 2026-08-10: per-host status line wraps below the 768px breakpoint instead of
forcing horizontal page scroll at 320px
- 2026-08-09: `Dockerfile.backend` reworked to the mandated Go multistage
diff --git a/src/main.js b/src/main.js
index aaa3cdf..135d36a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -677,7 +677,7 @@ function buildUI(state) {