Platforms
Gaps and sources
Open gaps against the HIG, and the sources behind the iOS pages.
Gap list
Ordered by priority. Detail and fixes: docs/specs/ios-design.md.
| # | Gap | Area | Where (82560e7) |
|---|---|---|---|
| G1 | Build with Xcode 27 | CI | .github/workflows/testflight.yml:51 |
| G2 | VoiceOver can't change the Map panel's anchor · Resolved in 3a3db9c | App · a11y | views/MapPanelView.swift:222-264 (3a3db9c) |
| G3 | Map panel ignores the fold and has no regular-width layout · Deferred until Duo testing; default layout pinned to safe-area sides | App · Duo | views/MapView.swift:190-212, 389-406 |
| G4 | Map focus out of the fold | App · Duo | views/MapView.swift:504, 616-621 |
| G5 | Tab bar hidden on the pushed stop detail · Resolved in 3a3db9c: pushed page, tab bar visible, shared panel | Spec · App | views/StopView.swift:38-121 (3a3db9c) |
| G6 | Back → .cancellationAction. Done gets an icon. | App | views/StopView.swift:77 (3a3db9c); views/HomeView.swift:265-275 |
| G7 | Size classes, flexible widths, portrait lock | App · Duo | views/StopCardView.swift:225, 230; Config/chitransit-app-Info.plist:58-61 |
| G8 | Run the iPhone Duo test plan | QA | Simulator and device |
| G9 | Map panel surface · Deviation: opaque paper throughout (decided) | — | views/MapView.swift:348-363 |
| G10 | Panel spring ignores Reduce Motion · Resolved | App · a11y | views/MapView.swift:214-223 |
| G11 | Full anchor must add details beyond half · Resolved in 3a3db9c | App | views/StopView.swift:242-258 (3a3db9c) |
| G12 | Sub-11 pt line codes | App | views/FavoritesView.swift:527 + widget + Live Activity |
| G13 | Fixed icon sizes | App | views/StopView.swift:484, 532 |
| G14 | Bold Text with Figtree | App · a11y | utils/Typography.swift |
| G15 | Service alerts in a sheet | Spec · App | views/StopView.swift:315-319 |
| G16 | Edit / Done negative padding | App | views/FavoritesView.swift:212 |
| G17 | Widgets: accented, circular, large, refresh | App | ChiTransitWidget/FavoriteStopWidget.swift:227 |
| G18 | Live Activity push (the server side shipped) | App | service/LiveActivityService.swift:477-480 |
| G19 | Dead code: tab tokens, unreachable .profile, stale comment | App | utils/DesignTokens.swift:166-167; views/StopView.swift:311 |
Sources
- docs/specs/ios-design.md: rationale, decisions, history
- Preparing your app for iPhone Duo
- HIG · Designing for iPhone Duo
- SwiftUI: presentationPlacement, toolbarVerticalBehavior, toolbarVerticalEdge, backgroundExtensionEffect, ArrangementView, ReservedRegion
- SwiftUI toolbar: cancellationAction, topBarPinnedTrailing, axisBehavior, visibilityPriority, ToolbarOverflowMenu
- UIKit: UIView.reservedRegions(kind:options:)
- Xcode 27.1 beta release notes
- FloatingPanel 3.2.4 (the version the app resolves)
- HIG: Layout, Materials, Typography, Accessibility, Buttons, Sheets, Tab bars, Toolbars, Search fields, Alerts, Maps, Widgets, Live Activities
- Device Hub · Apple Design Resources (cited, not embedded)
- Apple tech specs: iPhone 18 Pro, iPhone Duo, iPhone Air, iPhone 17, iPhone 17e