Platforms
Lock Screen, widgets and Live Activities
System surfaces on iOS: Lock Screen, Dynamic Island, StandBy, widget families and Live Activities.
Lock Screen, Dynamic Island and StandBy
HIG sizes for a 402 pt-wide phone: 371 pt wide, 84–160 pt tall, 14 pt margins. Content follows the approved v3 Live Activity spec.
Widget families and sizes
HIG widget dimensions. Apple's table stops at the 430 × 932 class. Standard margin is 16 pt.
| Family | 393 × 852 class | 430 × 932 class | Where (iPhone) | v3 spec | App today | Status |
|---|---|---|---|---|---|---|
systemSmall | 158 × 158 | 170 × 170 | Home Screen, Today, StandBy, CarPlay | 2 arrivals, refresh top-right (proposed) | Shipped, tap only | Compliant |
systemMedium | 338 × 158 | 364 × 170 | Home Screen, Today | 4 arrivals | Shipped, tap only | Compliant |
systemLarge | 338 × 354 | 364 × 382 | Home Screen, Today | 6 arrivals (proposed) | Not supported | Gap |
systemExtraLarge | Not supported on iPhone | iPad only | Conditional | n/a (iPhone-only app) | n/a | |
accessoryRectangular | 160 × 72 | 172 × 76 | Lock Screen | 3 lines, refresh (proposed) | Shipped, tap only | Compliant |
accessoryCircular | 72 × 72 | 76 × 76 | Lock Screen | Route over value, no refresh (decided) | Not supported | Gap |
accessoryInline | 234 × 26 | 257 × 26 | Lock Screen | Stop · route · value | Shipped | Compliant |
Rendering modes
Full colourHome Screen in light or dark, StandBy and CarPlay with the background removed. We use
containerBackground(.background, for: .widget). CompliantAccented / tinted / clear (iOS 18 / 26)The system removes the background and tints or glasses the content. The app has no
widgetAccentable or rendering-mode handling, so the CTA route fills fall back to the default conversion. GapVibrantLock Screen, and StandBy in low light. Text is desaturated and the night mode is red. Status is already a word (Due / Delayed), never colour alone. Compliant
Live Activities
| Presentation | HIG size / rule | v3 (approved 2026-10-01) | App today | Status |
|---|---|---|---|---|
| Lock Screen / banner | 371 × 84–160 pt on a 402 pt-wide phone, with a 14 pt standard margin | Header, freshness, up to 3 arrivals, refresh in a 44 pt target | Up to 3 arrivals, a status line when stale or failed, activityBackgroundTint(systemBackground). No refresh button yet. | Compliant |
| Compact | 230 × 36.67 (6.3″) · 250 × 36.67 (Air / Max), leading + trailing | Route badge · value | Route badge · time | Compliant |
| Minimal | 36.67–45 × 36.67 | Value or Stale, at most 4 characters | Time, or Stale | Compliant |
| Expanded | 371 × 84–160, corner radius 44 | 2 arrivals and a footer, centre region unused | Leading routes, trailing times, bottom info | Compliant |
| StandBy | Minimal first, then Lock Screen layout at 2×. The HIG suggests the default background. | Lock Screen layout. Must work in night red. | Sets an explicit systemBackground tint | Deviation |
| Watch Smart Stack / CarPlay | The system mirror, compact leading + trailing. CarPlay disables buttons. | Default mirror only (decided) | No supplementalActivityFamilies | Compliant |
| Updates | Keep content timely. Use push for updates while the app isn't running, and set staleDate. | Push updates planned | pushType: nil. Local updates only, with staleDate at the next minute + 30 s. | Gap |
| Badge text | Minimum text size 11 pt | Train circles without codes | 7–8 pt fixed line codes inside train circles | Gap |