diff --git a/LOTUS_TODO.md b/LOTUS_TODO.md index d01a4545e..96762234d 100644 --- a/LOTUS_TODO.md +++ b/LOTUS_TODO.md @@ -215,9 +215,10 @@ Intentional desktop deltas (disclosed, non-regressive): volume sliders below lab - [ ] **Runtime mobile QA** — none of the above is validated on an actual phone (static analysis only). Needs device/devtools walk-through per LOTUS_TESTING §E. - [ ] **Element Call fork in-call mobile UI** — the EC iframe (video grid, EC control bar, spotlight) is `LotusGuild/element-call` at `/root/code/element-call` (we own it); the cinny-side audit couldn't reach it. The actual on-phone call experience is unaudited. - [ ] **M2 — touch discoverability** — message quick-reactions/actions are hover-gated; long-press is the fallback but is **unreliable on iOS Safari** (deep audit). A visible touch affordance is needed but the naive fix hides unread badges / clutters messages (member-profile-style redesign). -- [ ] **Sub-44px touch-target sweep** — secondary admin/thread/media `size="300"` controls (calls Controls/call-status/PiP, knock Approve/Deny, ACL remove, thread "N replies" chip, media close/download/mute, receipt/presence dots). One deliberate `@media` sweep. -- [ ] **Avatar-decoration `prefers-reduced-motion`** — the only motion feature not honoring it; the fix hides decorations for those users (product call). -- [ ] **Twitch/Twitter/TikTok preview cards** — header renders beside content on narrow (fragment into a flex-row); wrap in `Box direction="Column"` — needs visual verify (desktop-shared). +- [~] **Sub-44px touch-target sweep** — primary controls DONE via a shared `MobileTouchTarget` `@media` class (`P1`, `8a1168bc`): in-call bar ×7, call-status bar ×4, thread "N replies" chip, knock Approve/Deny, ACL remove. **Still open:** media close/download/mute, PiP fullscreen/resize handles, read-receipt pill, presence dot (secondary). +- [x] **Avatar-decoration `prefers-reduced-motion`** — DONE (`P2`, `c3e1fbff`): renders just the avatar (no animated APNG overlay) under the preference; no static-frame asset to freeze to. +- [ ] **Twitch/Twitter/TikTok preview cards** — header renders beside content on narrow (fragment into a flex-row); wrap in `Box direction="Column"` — **needs visual verify (desktop-shared)**; safest as a mobile-only `@media flex-direction:column`. +- [ ] **M2 — message action/quick-reaction touch discoverability** — hover-gated + iOS-long-press-unreliable; a visible touch affordance collides with unread-badge placement / per-message clutter → needs a design decision + device look. ### [ ] Inline media embeds — remaining providers (LOW PRIORITY)