Skip to content

feat(WhereUI): add Folio and Quiet Glass themes - #241

Closed
kyleve wants to merge 16 commits into
mainfrom
codex/where-quiet-luxury-motion
Closed

feat(WhereUI): add Folio and Quiet Glass themes#241
kyleve wants to merge 16 commits into
mainfrom
codex/where-quiet-luxury-motion

Conversation

@kyleve

@kyleve kyleve commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Posted by an AI agent on kve's behalf.

Summary

  • turn the foundation's standard identity into a restrained Quiet Glass presentation and its alternate identity into the editorial Folio presentation
  • preserve Quiet Glass as the default while making Folio an explicit user choice
  • apply the visual distinction across Locations, Calendar, Timeline, Your Year, launch, privacy, evidence, widgets, snippets, and feature discovery
  • preserve ordinary Settings rows and icon-chip colors, native navigation, domain semantics, and persistence formats

Quiet Glass (standard)

  • retain the familiar Liquid Glass direction with mist/charcoal surfaces, system typography, restored card rosettes, softer ornament, and no record indices
  • use native glass materials on region cards, calendar sheets, timeline records, the annual cover, Elsewhere, widgets, and snippets
  • remain the default for existing installations and for missing or unknown stored theme values

Folio (alternate)

  • rebuild Locations as an editorial recorded-year folio with ranked paper records, provenance details, and a focused card-to-calendar destination
  • turn Your Year into a midnight annual-ledger cover that expands into ledger detail while preserving Calendar/Timeline controls
  • use warm paper, midnight stock, serif headings, tabular figures, enamel region ink, the W-and-meridian seal, and restrained archival ornament
  • extend that identity to launch, onboarding, privacy, export preparation, evidence, widgets, snippets, and feature discovery

Review focus

  • the distinction between Folio and Quiet Glass on Locations, Calendar, Timeline, and Your Year
  • readability and hierarchy in both light and dark appearances
  • the theme specimens in onboarding and Appearance Settings
  • perceived hero-transition cadence on physical 60 Hz and 120 Hz hardware

Testing

  • ./swiftformat --lint
  • ./xcstrings --lint
  • ./test --everything — 1,849 unit/integration tests and 49 snapshot suites passed
  • manually reviewed Standard/Glass and Alternate/Folio references across light, dark, increased contrast, RTL, standard Dynamic Type, and accessibility Dynamic Type

Stack

  • Depends on Add Where multi-theme foundation #244, which adds the neutral multi-theme storage, model, selection, widget, and App Intent foundation.
  • This PR is intentionally based on codex/where-theme-foundation; its diff contains the visual Glass/Folio divergence and design-specific tests/assets.
  • Merge Add Where multi-theme foundation #244 first. Do not merge this PR until the visual direction is approved.

@kyleve kyleve changed the title feat(WhereUI): introduce quiet-luxury brand and motion language feat(WhereUI): redesign Where as a signature folio Aug 11, 2026
@kyleve kyleve changed the title feat(WhereUI): redesign Where as a signature folio feat(WhereUI): add Folio and Quiet Glass themes Aug 12, 2026
@kyleve
kyleve changed the base branch from main to codex/where-theme-foundation August 12, 2026 21:11
@kyleve
kyleve force-pushed the codex/where-quiet-luxury-motion branch 4 times, most recently from 4757ec2 to f46c66d Compare August 13, 2026 19:50
Base automatically changed from codex/where-theme-foundation to main August 13, 2026 20:09
kyleve added a commit that referenced this pull request Aug 13, 2026
## Summary

- add stable `standard` and `alternate` theme identities backed by
device-local preferences and Broadway
- add neutral theme selectors to onboarding and Appearance Settings
while keeping both choices visually identical to the current Liquid
Glass UI
- propagate the selected identity atomically to App Intent snippets and
widgets, with widget presentation stored independently from aggregated
widget data
- publish Standard explicitly during reset so extensions cannot retain
the prior theme through onboarding

The two themes are intentionally identical scaffolding in this PR.
Standard is the default and preserves the current app, widget, and
snippet presentation. Theme-only widget changes write a small
`widget-presentation.json` value and reload timelines without rebuilding
the annual data snapshot.

## Testing

- `./swiftformat --lint`
- `./sf-symbols --lint`
- `./xcstrings --lint`
- `./test WhereCoreTests` (551 tests passed)
- `./test WhereUITests` (420 tests passed)
- `./test WhereIntentsTests` (30 tests passed)
- `./test --snapshots` (42 snapshot tests passed)
- `./test --everything` (1,850 unit tests and 42 snapshot tests passed)

## Stack

- This foundation PR targets `main` and should merge first.
- PR #241 targets this branch and contains the Glass/Folio visual
divergence.
- Neither PR has been merged.
kyleve added 16 commits August 13, 2026 13:09
Introduce semantic brand colors, editorial typography, restrained component motion, and coordinated reduced-motion behavior across Where's primary surfaces. Retune cards, onboarding, Settings, launch, annual reporting, and export feedback; add the Grand Tour alternate icon; and refresh the visual regression matrix.
Keep the established per-section system colors and adaptive white-or-black glyph treatment for Settings icon chips while preserving the quiet-luxury palette and motion work elsewhere.
@kyleve
kyleve force-pushed the codex/where-quiet-luxury-motion branch from f46c66d to 84e35d4 Compare August 13, 2026 20:09
@kyleve

kyleve commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

Going to close this out as it was mostly an experiment; the infrastructure portion has been merged.

@kyleve kyleve closed this Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant