Four passes, and the shape they landed on. The type face is Plus Jakarta Sans (variable, wght 200-800), which brings a fix with it: it carries the rupee glyph and Switzer does not, so prices stop being set in Geist Mono to work around a missing character. Mono stays where it is earned - references and phone numbers, read digit by digit. Surfaces lift rather than outline. Cards carry two very soft shadow layers instead of a hairline, because eight outlined boxes down a screen read as a wireframe. The tab bar floats as a pill again for the same reason it was right to: it is now the same kind of object as everything above it. Screens: * Home is the greeting, the address, the sphere and one card. The card lost its progress bar - a filling line says "wait", and a parcel two days into a journey is not something anyone is waiting through - and gained the size that buys. * Orders cards are four bands: identity, destination, route, and whatever is happening right now. Plus a search field, because the list is the archive. * Tracking leads with the state at display size, then TRIP MILESTONES with a step counter, then the courier. * Review is a route thread over two particular cards. * Account opens on the person: avatar, name, and two counted figures. Three real bugs the redesign surfaced: * Quick dispatch handed `loadCities()` straight to a FutureBuilder, so the catalogue was refetched on every rebuild and Home never settled. * Order cards showed the whole visit's weight on one destination's row - somebody else's parcel. Per group now, and only once actually weighed. * The pickup window was printed beside "In transit", where it reads as a delivery time nobody promised. Nothing invented. The reference shows EXPRESS PRIORITY, CARBON OFFSET, CONCIERGE ELITE and hub-to-hub routing; this backend sends none of them, so they are absent rather than mocked up. flutter analyze: clean. flutter test: 88 passing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EqVJPB9B4QuieZnBAAKgYQ
Screens
Every screen in the app, at 390×844 @3x, with the real fonts.
These are the golden files from test/snapshots/, copied here under readable
names so the set can be browsed, shared or dropped into a deck without anyone
having to know what a golden is. test/snapshots/ is the source of truth —
this folder is a copy, and a stale copy is worse than none, so refresh it
whenever the design moves:
flutter test test/design_snapshot_test.dart --run-skipped --update-goldens
tool/screens.sh
They are rendered by the test harness rather than captured from a handset, so
they are identical on any machine and need no device attached. Two consequences
worth knowing: map tiles are blank, because the harness has no network and
CARTO is fetched live; and the data is DevDoormileApi's, so the names,
addresses and references are invented.
| File | Screen | |
|---|---|---|
00-splash-animation.png |
Splash · first beat | What the app does: a parcel on the road. |
00b-splash-mark.png |
Splash · second beat | Whose app it is. Caught mid-cross-fade. |
01-sign-in.png |
Sign in | One question, one field, one button. |
02-sign-up.png |
Create account | The same shell, three fields. |
03-verify-code.png |
Verify the code | One field behind four boxes that only draw. |
04-home.png |
Home | Welcome, the pickup address, BOOK, and the live booking. |
05-pickup-search.png |
Collect from | Changing the pickup address from the Home header. |
06-orders-active.png |
Orders · Active | State, date, route, packages, reference. |
07-orders-completed.png |
Orders · Completed | Delivered orders and what they cost. |
08-account.png |
Account | Grouped rows, and the build this handset is running. |
09-tracking.png |
Live tracking | The live card, the map, the Miler, the journey rail. |
10-cancel-pickup.png |
Cancel this pickup | The one destructive action, behind a reason. |
11-destination-states.png |
Where is it going? · states | Step one, with the state marks. |
12-destination-districts.png |
Where is it going? · districts | Step two. Multi-select where the server allows it. |
13-pickup-window.png |
Pickup window | The times, and nothing else. |
14-send-a-parcel.png |
Send a parcel | The route, the packages, the two commitments. |
15-pickup-map.png |
Pickup point | The map editor, and who the Miler asks for. |
16-pickup-booked.png |
Pickup booked | White tick on green. The reference and the live search. |
17-receipt.png |
Order details | What was collected, weighed, photographed and paid. |
Not here yet
First-run Home — the sphere's caption and the "How it works" rail only
appear for a customer with no orders, and the dev backend seeds three. It needs
a flag on DevFlags to capture, which is not worth adding for a picture.