Organism
Moved rows
The list of what moved while you were away. 5 instances across 5 screens, inside a block in the shift brief, and nowhere else.
The container the row split also created, and it is the reason the organisms went from 16 to 19 at step 2 rather than to 18. When .rows--moved .row became its own component, the list around it became one too: it holds a different row, it does not scroll, and it draws a rule above itself because it sits inside a block rather than filling a zone.
It does not scroll, and that is the whole difference from rows. A handover is read from the top in one pass. A scroll box here would hide the last thing that moved behind a scrollbar, inside a document that already scrolls.
Anatomy
What the bench is standing in. A 240px scrolling box, which is brief: the surface that scrolls in the product. Scroll it, and the list goes past with the document rather than inside a scrollbar of its own. That is the component, and a bench that gave the list its own height would have hidden it.
dark, shipped
What moved this shift
light, the pair
What moved this shift
.rows-movedthe list. Three declarations and no more than thatflex:0 0 autoit takes its content’s height and never grows into the space around it. The opposite ofrows, which takes what is leftoverflow:visibledeclared rather than left out. Written down because the neighbouring component setsauto, and a property that matters is a property that is said out loudborder-top--rule-hair. It sits inside a block rather than filling a zone, so it draws its own line off the heading above it.row-movedthe line inside it. Four zones at--row-tracks-moved, its own component, and the reason this one exists
Variants
| Axis | Value | Uses | The rule |
|---|---|---|---|
| none | no values | 5 | All five instances are the same list. What differs is how many lines are in it, and a count is not a variant |
| list | no values | – | Prohibited. There is one handover list and it holds one kind of line. A second track set here would be the argument that split this component off rows in the first place, made again and answered differently |
| scroll | no values | – | Prohibited, and it is the definition of the component. A scrolling handover list is rows. If a brief ever needs one, the brief is too long |
It was .rows--moved in kit.css, a variant of rows. Step 2 ruled the rename on the anatomy criterion and step 6 executed it: the five screens carry rows-moved now, and the row inside them carries row-moved. Not one pixel moved. The reconciliation table in docs/inventory.md is where both rows are recorded.
When to use it
In the shift brief, in the block that answers what moved while you were away, once. It is not a general list container: anything that fills a zone and can run past its own height is rows.
Where she meets it. Twice a shift, at the two moments the console is not about a case: coming on, and handing off. That is the second of the three MVP jobs, and this list is the part of it that answers what did I miss. Everything in it has already happened, which is why nothing in the line is a decision and why there is no severity column to sort by.
Rule and anti-rule
Do
What moved this shift
Every line visible, the whole block as tall as its content, and the page around it doing the scrolling. Nothing about the handover is hidden below a fold inside a fold.
Do not
What moved this shift
Never rows here. It is the scroll container of the queue, and inside a document it produces a second scrollbar: the last thing that moved goes below a fold the analyst has no reason to expect, on the one surface she reads exactly once.
States
None, and neither has the line inside it. That is the difference from the queue row that is easiest to miss: a queue row is opened and a handover line is read. No hover, no selected, no href, because there is nothing at the other end of it. A hover here would say the shift can be re-opened.
dark, shipped
What moved this shift
light, the pair
What moved this shift
The head row takes no states either, and it is a variant rather than a component. Same argument as the queue’s head: it names columns, it is not a decision, and it cannot be opened. 5 of the 35 handover lines in the product are heads.
At 360 there is no shift brief at all, so there is no narrow rendering of this list to document. Z4 hides the brief below 900, because coming on shift happens at a desk with two monitors and the phone has one scenario, a paged case read and escalated. The bench above keeps the desk rendering at that width and scrolls sideways to hold it, which is the nearest honest thing to showing nothing.
The container itself declares no media query. The line inside it keeps its four zones wherever it stands, because row-moved reads --row-tracks-moved directly rather than through the :root collapse that flattens the queue row to one column.
What it reads, and where it stands
| Role | Surface | Where on the component | Dark | Light |
|---|---|---|---|---|
--line-separator | line, exempt | the rule above the list, through --rule-hair. The only thing this file paints | ||
| no fill | – | transparent. The brief’s ground shows through | – | – |
| no ink | – | it has no text of its own | – | – |
--text-secondary | ink 4.5:1 | the time column, declared by row-moved rather than here |
The five screens still write the line as an a with an href to the case. row-moved.css forbids it in as many words, and the two have not been reconciled. What follows is the component file’s form.