Skip to content

Slideshow chrome below iOS 26: no material behind the controls, legibility over bright photos unproven (FR-300-34) #72

Description

@kipp-ing

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.
  • Sibling symptom: New-photos arrival card is illegible over a bright photo #60 (the new-photos glass card is illegible over a bright photo).

Todo

  • Implement the quiet-glass softGlass tier for iOS 17–25 (iOS 26 paths untouched) and the eased scrims, as the design record specifies.
  • Verify by capture: chrome over a near-white and a near-black photo on an iOS 17/18 simulator and an iOS 26 simulator; eyeball on Framepad.
  • Update product fact LOOK-03 (mismatch → verified) in the same commit.
  • Coordinate with New-photos arrival card is illegible over a bright photo #60 (same glass helpers).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions