Biller.app · design lane · mid-fi wireframe · rev 3
Built from the owner's rough, re-thought around the field study (#687–#702): the cashier's screen is the waiter's item picker, big targets, tap-driven, keyboard only for search. Real tokens (graphite / heat amber, no shadows, 44px floor), real dishes, real prices. Frames are drawn 1:1 — 44px in here is 44 real pixels.
Default flow shown throughout is quick bill + kitchen (per-table default, #687). Numbered badges map to the notes at the bottom.
Rev 2 carries the owner's review: rail is Tables / Bills / Kitchen / On-off / Admin, the top-bar flow chip is gone, the bill header gains a Back button, credits use the existing progress ring, search scopes to dishes and categories, picker cards carry a photo thumbnail, and customer capture is drawn as two options to choose between.
Rev 3 carries the field-study feedback: kitchen-stage language (cooking / served / late) is gone from bill lines, the heat strip and the notes — simple flows only ever know Not sent / Sent to kitchen, because paper KOTs mean the app can't see the stove; On-off is renamed Out of stock, plain availability language, switch on = available; a new Bills screen fills the rail's second slot, with Open / Completed / Due status chips and at least one credit bill; and Complete never blocks on printing — it auto-prints the customer receipt the first time, and never reprints once one has gone out.
The rough's single scroll column becomes a picker + bill split. Everything else keeps the rough's vertical order: bill header → search → categories → items → customer strip → sticky footer.
--exp-edge-w / --exp-heat-*) — nothing new invented.
One column can't hold two. The bill column collapses into a pull-up strip that sits directly above the footer — the total and how much of the bill is still unsent stay on screen at all times, the picker keeps full width. Tap the strip and the bill covers the picker.
The table's flow mode (#687) is the only thing that changes the footer. The total never moves, and there is exactly one filled amber button in every variant.
Complete is never blocked on printing. Nobody tapped Print bill yet, so Completing prints the customer receipt automatically — the cashier never needs a second step to remember.
Only advanced mode has kitchen screens, so only advanced shows stage wording. Quick modes never claim to know cooking or served status — a bill is just Open, and a line is just Not sent or Sent to kitchen.
One button, closed by default, expands upward from the footer (#696). Name first; the phone box only appears once we know this is somebody new. GST, birthday and anniversary stay behind more — a cashier at a queue never opens them.
Nothing to skip, nothing to dismiss.
We'll look them up as you type.
Only so the bill can reach them.
GST number, birthday, anniversary
Same four states above; the difference is what Complete does when there's no name. Either way the name prints on the receipt when it's there. Our pick: B — a counter at 8pm will type “.” to get past a hard gate, and junk names are worse than no names.
Every bill carries a name — and at a queue you get “a”, “x”, “cash”. Guaranteed capture, unreliable data. Phone stays optional.
Only real names get in, and nothing slows the counter — at the cost of some bills having no customer at all.
The five places the rough left as a dashed box or didn't reach.
Rs. 840 · no hardware keyboard anywhere in this flow.
Time reads “34 min”, never a timestamp. Amount on the tile so a manager can scan the room.
33Today defaults on, date range and search sit beside it — the same search idiom as the picker, scoped to bills instead of dishes.
34Three status words, nothing invented: Open (still on the floor), Completed (paid and closed), Due (closed on credit, balance still owed).
35Due = a credit bill — #1036 above, closed without full payment. The whole row is the tap target (≥44px) and opens the bill to collect the balance.
The whole 56px row toggles — switch ON = available, OFF = out of stock. An off row dims and carries the tag, never disappears. Everything off here shows dimmed on the billing screen too, never hidden.
Everything that isn't the counter lives one level down, so the rail stays at five and a cashier never scrolls past it.
Badge numbers on the frames above map to these. Everything not listed here is the rough, kept.