Plan-graph refinement round 4 (owner): the simple white look + no entrance fly-in

Look (rectangular, white language — owner spec):
- Boxes: no corner rounding (rx dropped everywhere).
- Visited: fill-none, white stroke, white text. Upcoming: today's gray
  (fill-card, border stroke, muted text) — kept per owner. Current:
  white stroke/text + a faint yellow highlight — a blurred yellow fill
  (feGaussianBlur) that bleeds out over the node's edges, still breathing.
- Edges + interim arrowhead: white (marker swaps to the owner's SVG when
  it lands: right-pointing, solid fill, tight viewBox, tip at right edge).
- The IN-CHAT plan block renders monochrome — every node white, no
  status language, no glow; the popup/plan-window show the progression.

Popup entrance fix: the transition from round 3 animated the first fit
(graph flew in from the top-left zoom:1 state). The transition now stays
off until the first fit has been applied — the popup paints settled.
This commit is contained in:
amosblomqvist
2026-09-14 06:55:10 +03:00
parent b92237fd56
commit 739a6aed56
2 changed files with 60 additions and 20 deletions
+4 -2
View File
@@ -138,8 +138,10 @@ describe("plan popup (live derivation)", () => {
assert.match(html, /data-testid="plan-node-a" data-status="visited"/);
assert.match(html, /data-testid="plan-node-b" data-status="current"/);
assert.match(html, /data-testid="plan-node-c" data-status="upcoming"/);
// The current node is the glow target.
assert.match(html, /stroke-primary\/70 animate-pulse/);
// The current node is the glow target: a faint yellow fill, blurred
// so it bleeds over the edges (owner, plan-graph round 4).
assert.match(html, /fill-yellow-400\/25 animate-pulse/);
assert.match(html, /feGaussianBlur/);
assert.match(html, /live — statuses derive from your check outcomes/);
});