Correctness features, not decoration. Designed once and applied everywhere, and designed before any bespoke screen, because every screen needs them. Two sibling products shipped with no error state anywhere and rendered failures as empty lists; this page exists so that cannot happen a third time.
Each carries the axis it belongs to — the whole surface, one set, the link, or one machine.
The room keeps its shape. Band header, tile count, positions and machine names are all present before any state arrives, so the counter's eye lands where it will land. Only the facts are missing, and the bars sit exactly where the facts will be.
Never confusable with stale. Loading has no age and no data; stale has both. A skeleton never shows a number.
PC-03 may already be free, or may have been taken forty seconds ago.
Never confusable with live. The clocks stop, the cyan drops out of every tile, and the age counts up. A stopped watch, not a blank face — because a stale export is a wrong export that looks right.
The floor service did not answer. The queue below is local and still correct, and every visit already open is still billing on the server — this screen just cannot see them. Nothing has been lost.
Last attempt 21:04:12 · retrying by itself every 10s
Never confusable with empty. Empty is quiet and carries no rule. This is a filled panel with a coloured edge, readable at ten metres — which is the requirement, because a counter reads the floor from across the room.
Owner and technician only. On a counter this button is absent rather than disabled — it is not their errand.
Never confusable with no-match. This is a room waiting to be furnished, so it offers the thing that fills it. A set behind a filter gets the filter back instead.
It never says "no results". That sentence blames the data for a choice the user made. It names the filters back and offers the one most likely to be the mistake.
Both numbers, always in that order. A count that shows only what is loaded is how two screens end up disagreeing about one set.
It affirms that what is shown is whole. A scoped total with nothing said about it reads as the truth, and that is what separates a scoped view from a broken one. Never a spinner, never a blur — both make it look like it is still loading.
Still allowed. Offline is a mode, not an error — the work continues and queues. Only reconciliation waits.
Never confusable with a machine being down. That is a corner rule on one tile; this is a banner across the top. Different place, different sentence.
My link to the server, and that machine's link to us. The pair a counter must never confuse.
"I cannot reach the server" and "the server cannot reach PC-12" are different facts about different machines. One is true of the whole surface, so it is a banner in the chrome. The other is true of one object, so it is a mark on one tile. Place and shape keep them apart, not wording.
A command in flight, and the one word that is the whole state.
The power-off was sent and the agent has not answered. Omar Nabil is still in his visit and it is still billing.
The tone is warning, never success. No tick, no green, no past tense. Sent and done are different words and the difference is the entire state.
The tile carries the same mark. A second counter who did not send the command can still see one is in flight, so they do not send another.
The command expires. An agent that never answers would otherwise leave a stale instruction to fire an hour later, when a different customer is sitting there. It has a stated lifetime and it counts down here.
Cancelling is itself a history row. "Mostafa sent a power-off and withdrew it" is a thing a shift handover needs to know.
Offline is only credible if the surface can say which write did not survive, and why.
You seated Hossam at 21:03 while offline. The second counter seated Omar at 21:01, which the server already had. Two visits cannot hold one machine, so yours was not applied. Nothing has been billed to either of them yet.
His visit is re-applied to PC-04, which is free, starting from 21:03 — so he is not charged for the two minutes he stood at the desk. Omar keeps PC-12. The queue loses one entry.
The queued write is dropped and Hossam goes back to the head of the line with his original waiting-since time intact. Nothing was billed, so nothing is refunded.
Neither option is destructive, so neither gets a gate. Nothing here asks whether you are sure. Both buttons state what becomes true, and Hossam is standing at PC-12 either way.
Because that is how they fail — never alone, always as one state mistaken for another.
| # | The pair | Kept apart by |
|---|---|---|
S1 | Loading / Stale | Loading has no numbers and no age; stale has both, frozen, with the age counting up. A skeleton never shows a figure. |
S2 | Empty / Error | Empty is quiet with no coloured edge and offers what would fill it. Error is a filled panel with a danger rule, legible from ten metres. |
S3 | Nothing yet / Nothing matches | The first offers an action that creates something. The second names the filters back and offers to loosen one. |
S4 | My link is down / That machine is down | Place and shape. The link is a banner in the chrome, true of the surface. The machine is a corner rule on one tile, true of one object. |
S5 | Queued / Done | A queued write keeps the warning tone and the words "not yet synced" on the tile it changed. A confirmed write loses all marking — normal is silent. |
S6 | Scope-limited / Broken | Withheld rows keep their labels, name who can see them, and the surface affirms that the visible figures are complete rather than partial. |