fix(mobile): 44px touch targets for primary call/thread/mod controls (P1)

Deep-audit follow-up. New shared MobileTouchTarget class (@media <=750px ->
minWidth/minHeight 44px) applied via className to the primary interactive
controls folds renders below 44px:
- in-call control bar (7 buttons) + persistent call-status bar (4 buttons)
- thread "N replies" chip
- knock Approve/Deny buttons
- server-ACL entry remove button

folds size variants set only padding (no width/height/min-*), so the class
raises the hit-area floor to 44px with the icon/label staying centered at its
normal size; desktop is untouched (@media-gated). Verified by two review passes
(no distortion, no layout overflow, counts exact).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 23:57:55 -04:00
co-authored by Claude Opus 4.8
parent 1a3b1310b4
commit 8a1168bc5f
6 changed files with 38 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
import { style } from '@vanilla-extract/css';
import { toRem } from 'folds';
/**
* A 44px minimum touch target on phones for otherwise-small interactive controls
* (folds `IconButton`/`Chip` at `size="300"`/`"400"` render ~24–40px, below the
* 44px guideline). Apply via `className`; the icon/label stays its normal visual
* size — only the hit area grows — and desktop is unchanged (the rule is gated to
* `@media (max-width: 750px)`, matching MOBILE_BREAKPOINT).
*/
export const MobileTouchTarget = style({
'@media': {
'(max-width: 750px)': {
minWidth: toRem(44),
minHeight: toRem(44),
},
},
});