You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found: 2026-09-14 while settling product fact LOOK-03 against the code. Matters directly for the real frame: Framepad runs iOS 17.7, the deployment floor.
Spec: FR-300-34 — chrome controls MUST stay legible regardless of the photo's brightness, including near-white and near-black images.
Today:
iOS 26+: real Liquid Glass (OwnFrame/Slideshow/View+Compat.swift:14-32,45-57) — fine.
Below iOS 26, glassButtonStyle falls back to .bordered — a tinted fill with no material/blur (View+Compat.swift:26-31). Only cards (photo info, clock, new-photos card) get ultraThinMaterial.
Legibility rests on two fixed 45%-to-clear black edge gradients (SlideshowChrome.swift:56-71). No test or capture checks FR-300-34.
The design record already names the problem: docs/design/quiet-glass-2026-07-18.html (≈:706-712) calls the iOS 17 fallback "washed-out" and specifies a softGlass tier — the ultraThinMaterial fallback with a baked-in dark tint (≈ black 20%) — plus eased four-stop scrims. Neither is in the code.
Found: 2026-09-14 while settling product fact LOOK-03 against the code. Matters directly for the real frame: Framepad runs iOS 17.7, the deployment floor.
Spec: FR-300-34 — chrome controls MUST stay legible regardless of the photo's brightness, including near-white and near-black images.
Today:
OwnFrame/Slideshow/View+Compat.swift:14-32,45-57) — fine.glassButtonStylefalls back to.bordered— a tinted fill with no material/blur (View+Compat.swift:26-31). Only cards (photo info, clock, new-photos card) getultraThinMaterial.SlideshowChrome.swift:56-71). No test or capture checks FR-300-34.docs/design/quiet-glass-2026-07-18.html(≈:706-712) calls the iOS 17 fallback "washed-out" and specifies a softGlass tier — theultraThinMaterialfallback with a baked-in dark tint (≈ black 20%) — plus eased four-stop scrims. Neither is in the code.Todo