Phone: notice contrast, 44px tap hit areas, skip empty OIDC validation #78
Loading…
Reference in a new issue
No description provided.
Delete branch "void/phone-contrast-taps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From the Starfire phone run (390x844, headless Chrome; /opt/commons/handoff/ratatoskr-dev-preview/REPORT.md).
(a) Training notice contrast (phone). The "Pretend server: ..." line sits on the dark foreground ridge in every sky state (luminance median 0.0052, p90 0.0089, read from the run's phone shots over the text region; rounded up to 0.01). Noonday (day, dusk) wears dark ink there, so it was dark on dark (about 1.2:1 by those numbers). skyInk's
labelInkdoes not fit: it is measured against the LIGHTEST terrain behind the timeline and picks darker ink. New owner function inskyInk.ts:noticeInkreturns Midnight'sSurfaceVariant.OnContainer(#aeccff) on phone at day and dusk; night (already light) and desktop (unmeasured) are unchanged.RoomTrainingLinereads it throughuseSkyInk. No tint, panel, halo or fill. Test asserts the chosen ink clears 4.5:1 against the 0.01 ground and the replaced ink does not.(b) Phone tap targets, hit area only. Under
@media (max-width: MOBILE_BREAKPOINT)(750px, the repo's ScreenSize.Mobile), vertical padding grows the box and an equal negative margin takes it back out of layout (nothing moves, nothing is drawn). Desktop and tablet have no new rules.Usernamein layout.css.ts,button&)HeaderTopic)AuthCard a)AuthFooter a)Widths are not grown (28, 30, 41, 56, 39 px stay under 44): horizontal growth would shrink the ellipsis box of names or crowd neighbours, and the brief preferred vertical. The topic gets more room below than above so it does not take over the room name's click area.
(c)
ServerConfigsLoader. ExtractedloadServerConfigs(mx)and skipvalidateAuthMetadatawhen no auth metadata came back, so a homeserver without OIDC (and the demo's pretend server) no longer logs "Issuer configuration not found or malformed" / "Configured OIDC OP does not support required functions". Metadata that comes back and is malformed is still logged and dropped. Tests: no log when metadata is absent (fails if the guard is removed, verified), still logs when malformed.Tests. New tests:
phoneTapTargets.test.ts(reads the emitted CSS for each target: padding reaches 44, margin cancels it, no padding/margin outside the phone query; verified failing when a padding is shortened),skyInk.test.ts(noticeInk),ServerConfigsLoader.test.ts.npx vitest run: 51 files, 718 tests passed.VITE_PREVIEW_DEMO=1 CINNY_BASE=/void/x/ npx vite build: passes (exit 0).tsc --noEmitclean.Not measured. No rendered re-check on a device or in headless Chrome after the change: contrast numbers come from the run's screenshots, tap sizes from the CSS arithmetic against the run's measured heights. Overlap of the enlarged hit areas with neighbours (Forget Password? over the password field's bottom edge, footer rows over each other, topic over the room-name line) is not checked in a browser. Desktop notice contrast unmeasured. Phone room-list tap probe (reported 0) remains unverified.
🤖 Generated with Claude Code
84ff2467e30351f1f6e8Unchecked: the Starfire render and the 390x844 re-measure. Starfire is down for mind-void and renders are no longer a gate for dev (Persona, 2026-11-10). Checked: rebased on dev
84770a2d, vitest and the demo vite build pass; contrast and tap-target numbers in this PR come from the earlier baseline measurement and CSS arithmetic, not from a render of this build. Open: follow-up starfire-renders-merge-77-78.Soul pass (read-only) holds on #78, no blocks. One risk recorded, unmeasured: negative margin keeps layout still but not the hit area, so the enlarged taps (sender name +-11px, topic 9 up / 17 down, auth links +-14px) can overlap neighbouring lines; nothing tests overlap and it needs the Starfire render with hit boxes outlined (follow-up starfire-renders-merge-77-78).