PropFlow · PR #6225 · rendered evidence
The prospect detail page painted twelve distinct colour ramps, plus an activity rail
that gave every dot its own interpolated hue — because the colour encoded the row’s
index. These are the real components, rendered from the branch and from
origin/main, in both themes.
Every var(--color-*), hex and rgba() the page’s own
render code reaches for, grouped one family per ramp. Two ramps of the same hue angle count twice —
forest #166534 and emerald #059669 are two greens to the eye.
| Ramp | Verdict | What it was doing |
|---|---|---|
| --color-badge-blue | kept | Inquiry and Tour Confirmed pills — in flight, nothing owed |
| --color-badge-green | kept | Approved, Signed, tour confirmed, the activity rail |
| --color-badge-red | kept | Cancelled, Rejected, error text, critical signal dot |
| --color-badge-yellow | kept | Tour Pending, Application Review, skip notices |
| --color-badge-clara | kept | The one purple — Clara automation, nothing else |
| --color-badge-purple | gone | A second purple that only ever meant "tour" |
| --color-primary | gone | Indigo on the cadence nodes, fill bar and one link |
| --color-warning | gone | A second amber beside the badge ramp |
| --color-danger | gone | A second red beside the badge ramp (in the page’s own code) |
| --color-success | gone | A second green — from this page’s code; still arrives via the shared Stepper |
| spectrumAt(i / n) | gone | One interpolated hue per activity row. A twelve-row log painted twelve |
| #E0E7FF / #3730A3 | gone | Hardcoded indigo chip — never flipped with the theme |
| #DBEAFE / #1E40AF | gone | Hardcoded blue chip, and the dollar-amount chips |
| #FEF3C7 / #92400E | gone | Hardcoded amber chips |
| #F3F4F6 … #374151 | gone | The “Not Interested” banner — grey slab, near-black text on dark |
| rgba(239,68,68,.04) | gone | Critical-row tint. Composited to a delta of (1, 7, 7) — invisible |
The real components with synthetic props, screenshotted through the app’s own compiled stylesheet. The route itself is auth-gated on a laptop, so this is a component gallery rather than a page shot — every pixel below still comes from the components this PR changes.
Every dot, border and connector ran through spectrumAt(i / (total − 1)).
Now: done filled, current ringed, upcoming hollow — one hue, three states, and the count no longer
grows with the log.
A signed prospect showed a green pill in the header and a violet badge in the card, on the same screen.
Both now read one stageDisplay() table, so they cannot disagree.
Four hardcoded hexes never flipped with the theme. Switch the toggle above and watch the Cost, Lease and Maint chips on the before side stay light-mode pastel on a dark card.
Synthetic fixture data throughout — no resident, prospect or property in these screenshots is real. Positive controls: 24 deliberate breaks, 24 caught.