Work / AskCal / Wiki / Surfaces
toasts
Surfacecanonicalverified 2026-09-23
SURFACE.MOBILE.PATTERNS.TOASTSSummary
Every toast the app raises.
Raw wireframe
- .context/designs/mobile/patterns/toasts.html
Why it is drawn this way
Every action that changes the log is reversible for a few seconds. Logging a meal is one tap, so un-logging has to be one tap too — otherwise people stop tapping.
Four seconds, then dismiss. It sits above the tab bar and never covers the capture button.
In the app these are raised by useLogMeal and the toast store, which is what
makes the guarantee hold on every logging path rather than on the ones somebody
remembered.
The inventory table carries the detail line, not just the title. It had Tone,
Title and Action only, while claiming to be every toast the app ships — so twelve
detail lines were in no wireframe, including "Nothing was charged" on two money
paths, and "AskCal Plus restored" was missing outright. check-designs.py now
compares every toast and dialog string against the set, which is the only reason
that stays true. The throttled barcode row also carried "—" where the code
has always passed Retry.
Related
Sources
- .context/designs/mobile/patterns/toasts.html
Every project of mine is written down like this.
Read the résumé