Skip to content
Ritesh FirodiyaGet in touch

Work / AskCal / Wiki / Surfaces

toasts

Surfacecanonicalverified 2026-09-23

SURFACE.MOBILE.PATTERNS.TOASTS

Summary

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é