The desktop row to build — the same brief as the mobile pick, so a homeowner reads it the same on both. Everything below is the exploration that led here.
All five carry the same structural changes: a select box at the head of the row, created date pushed to the far right, and Status as the last info line. In 1a–1c the label/value weight is reversed as specified — labels semibold ink, values regular muted. 1d deliberately re-grades both sides — lighter labels, values on three levels — and 1e makes the labels a different type class altogether rather than a different weight. What otherwise differs is where the PRO stack and CTA sit relative to the facts.
Shown at 1100px — the real content column at max-width 1180 minus 40px gutters. Each concept shows two rows so alignment down a list is visible; the second row of 1a is in its selected state.
Stack sits directly under the ledger, CTA anchors the right edge. Date top-right, CTA bottom-right, so the right column is a fixed frame at every row height. The stack reads as belonging to the project's facts rather than to the button. Weakness: stack and CTA are ~700px apart, so the two halves of one decision sit at opposite ends of the row.
The tightest decision cluster. Who replied and how to read them sit together in one right-hand column, directly above each other — the decision is a single glance rather than a scan across the row. Facts stay a quiet left-hand ledger. The date caps the column at the top, so the right edge reads date → stack → CTA every time. Weakness: the middle column is now purely reference, which makes the row feel emptier at wide viewports.
Treats the list as a table. Fixed column widths with faint headers, so Proposals and Created are genuinely columnar — scannable down twenty rows, not three. The date is a true right-hand column rather than a floating caption. Weakness: headers plus four columns is the most structure of the three, which pushes against the minimalist brief; and at three or four briefs a table header earns very little.
Labels light, values weighted by how much they identify the project. Labels are medium --text-body; values now run on three levels instead of one flat muted grey — rooms and status take medium ink because they are what you recognise a brief by, budget and target sit at regular --text-body as real figures you read rather than scan, and the date keeps medium --text-body so the right column has something to hold at the top. Net effect: the ledger is now the same three-level hierarchy as the rest of the row, and the values read louder than the labels — the opposite of 1b, and more legible because the words that matter are the darkest thing in the block.
Labels stop competing by becoming a different kind of text. Rather than out-weighting the values, they drop to an uppercase micro column in --text-muted — the same field-label treatment the product uses in forms. That reads as a label at a glance without needing weight, which frees every value to sit at regular --text-strong: the content is the darkest thing in the row, and with four facts stacked the label column still forms the fixed rhythm you scan by. Distinct from 1b (heavy labels, muted values) and 1d (graded values); the trade is that uppercase micro is a fifth type style on the row.
My pick: 1d — 1b's layout, because stack and CTA belong to one decision and should sit adjacent, with 1d's re-graded weights. It knowingly departs from the strict label-darker rule: labels recede to medium --text-body, and the values split three ways — rooms and status in medium ink because they identify the brief, budget and target in regular --text-body, the date medium to anchor the right column. Emphasis lands on the words you scan for rather than on four repeating field names. If the label column must lead without dimming the content, take 1e — uppercase micro labels do that job without spending weight. Take 1b unchanged for the strict reversal as originally specified; take 1c only if the list runs long enough for column scanning to pay.