Patterns
States
What each surface shows off the happy path.
What each surface shows off the happy path. Pressed controls dim to 70%; disabled controls use Inactive and ignore taps; long names truncate at one line except stop titles, which wrap to two.
| Surface | Empty | Loading | Error | Other |
|---|---|---|---|---|
| Stop cards (Home) | Favorites: one card with the add-a-star hint | Two redacted rows in the arrivals area | Card says Unable to update · Updated N min ago in Muted (same freshness buckets as stop detail); cached times stay | Home remains favorites-only; location state appears on Nearby |
| Route and stop lists | No matching routes, with the search term | Six redacted rows | Couldn't load routes · Pull to refresh | n/a |
| Global search | No matches for “query” · Try a route number or shorter name | Six redacted rows | Couldn’t load search · Retry; cached results stay visible as incomplete | Empty query: Trains and Buses shortcut cards and Recents |
| Stop sheet arrivals | No arrivals in the next hour · Refresh | Four redacted arrival cards | Error card with Retry; last good list stays under it, dimmed | The sheet refreshes before arrivals reach 2 minutes old; the Updated time turns Warn only when a refresh has failed and the rows are 2 minutes old or more |
| Expanded arrival | n/a | Three redacted timeline rows | Upcoming stops unavailable | n/a |
| Map | Zoomed out past the stop threshold: Zoom in to see stops. Otherwise: No stops in view | Markers fade in | Keep last markers, toast Couldn't refresh stops | Location denied: map centres on the Loop; the system location button handles the prompt |