Pattern
Fleet
The resting state of the detail pane, and the only surviving differentiator of the product. Every client's current latitude and its accuracy trend, legible at one glance where the analyst works. 10 grey screens of 62, all 10 already in colour.
It has no menu item and no route, and that is the design claim. Per tenant earned autonomy is not ours: one competitor sells it per tenant and per action class in those words. What nothing published sells is the whole fleet legible at a glance in the operator console rather than on a configuration page. A route would give it a tap, and the point is that checking it should not be a trip.
Anatomy
Live, in both themes. Five of the forty rows and the line that says so, which is the composition's whole argument: the visible rows are a sample and the last line names how big a sample.
dark, shipped
light, the pair
pane-headnames the pane and says what the order means. The same head the case pane uses, and the only zone the two fillings share pagefrowone line of the fleet. Three zones: the tenant, the highest thing Clerk may do there, and the record pagefrow--headthe column head, and the only one of the three zones that is not a link pagefleet-morewhat is not on the screen, as a count with its window. Never a control page
Behaviour at width
Below 1280, the system's one point (Width), it is not rendered, and this file has exactly one rule. The pane at rest is a desk instrument. Node 3.1 settles that selecting at that width opens the standalone case rather than a pane covering the list, so there is nothing for a pane at rest to be beside. The full list is a screen of its own and it arrives with Clients. Above the point this file fires nothing, because the parts carry their own width: frow holds its three columns and the host pane grows with --pane-w, from 320px at 1280 to 544 at 2560.
Variants
| Axis | Value | The rule |
|---|---|---|
| variants | none | Ten renderings and one form. What changes between them is the state of the strip above and the rows below, not this |
| the last line | present on 10 of 16 | The other six fleet renderings show every tenant they have. A count that is not a sample does not need a line saying it is one |
| selection | forbidden | Nothing in the fleet is being ruled on. It is the record, and the thing you rule on is a case, so frow has a hover and no selected state |
When to use it
On a queue screen with nothing selected, and only there. That is the queue and every one of its states: nothing waiting, no match, taken, stale, reconnecting, Clerk down, assembling, and the two notice states.
Not on every screen whose pane is at rest, and this is the one thing about the fleet that reads backwards. The log at rest has a pane and no case in it, and what stands there is not the fleet: it is the case pane carrying what the view covers. The fleet answers "where is attention owed across the clients", which is the question the queue is about to ask; the log is about to ask what it can and cannot tell you, and the fleet would answer neither.
Where she meets it. Constantly and without asking for it. It is what fills the right half of the screen she comes back to after every decision, which is the entire mechanism: the trend is read in passing rather than looked up.
Rule and anti-rule
Do
Leave it there. A queue screen with no case selected shows this, in every state including the failures. A screen where Clerk is down still shows the fleet, because the record of what Clerk has earned does not stop being true when Clerk stops answering.
Do not
Render an empty here. CLAUDE.md binds it as a rule of this layer: the empty state of the detail pane must read as "this is the fleet", not as "this is empty". A pane that reads as empty has failed the decision to keep the fleet out of the menu, not the layout.
Limits
Rules of composition and context that reach this pattern. Full table with sources on Architecture, and every one of them is a function in design/kit/checks/rules.mjs.
- R7. The detail pane never renders an
empty. This pattern is the reason that rule can be kept. - R10. The fleet has no route and no navigation item. It appears only inside the pane, and the full list of clients is a screen of its own that arrives with cluster 7.
- R3. No overlay covers the pane, which includes this filling of it.
Where it stands
10 grey screens, and every one of them is a state of the queue with nothing selected.
All 10 are already in colour, which it shares with the shift brief at 7 and 7. The two zones of the split behave differently here: the fillings that carry the FEW states are complete in colour, and the two that carry the many are waiting for the rollout. Live, in colour: the queue, Clerk not investigating.
What it is made of, and what moved into it
File: design/system/patterns/fleet.css. Imported in index.css after every component and before the places, because a pattern is built from components and has to be able to reach past their own declarations.
Built from pane-head, frow and fleet-more, standing in z5. Nothing new was written for it.
This file has one rule, and that is a finding rather than a shortfall. The composition is carried entirely by its parts: the head names it, frow carries its own three column grid and its own hover, fleet-more is a line of text, and the host is already a column. A pattern that needs no arrangement is a pattern whose components were drawn to fit each other, which is the outcome this level is for.
The one rule is not new either. It was half of a line in z5.css that hid the pane at 360 for two unrelated reasons at once, and it is split here so each half names its own.
Why it goes at 360 at all. Node 3.1 settles that selecting at that width opens the standalone case rather than a pane covering the list, so there is nothing for a pane at rest to be beside. The fleet is a desk instrument, and the phone has one scenario: a paged case, read and escalated.