Labels previously rendered as near-white text (#e2e8f0) on a transparent
canvas. UnrealBloomPass (threshold 0.2) amplified every bright pixel
into a huge white halo that made labels unreadable at normal camera
distances — reported by Sam 2026-04-19 with a screenshot of the LoRA
training label blown out into a luminous blob.
New design:
- Dark rounded pill (rgba(10,16,28,0.82)) sits below the text and
hugs its measured width. That keeps the pill background well below
bloom threshold so the halo can't spread past the label footprint.
- Text dimmed to mid-luminance slate (#94a3b8). Still legible at the
standard camera distance but dim enough that bloom only adds a soft
glow instead of a blast.
- Font trimmed to 22px / weight 600 (was bold 28px); sprite scale
tightened from 12×1.5 to 9×1.2 so labels don't visually out-compete
the node spheres they annotate.
- Hairline slate stroke (18% alpha) on the pill for definition when
the camera gets close.
The canvas mock in the vitest setup grew beginPath / closePath /
moveTo / lineTo / quadraticCurveTo / arc / fill / stroke / strokeText
stubs so createTextSprite can exercise the full rounded-rect path in
unit tests without a real DOM. All 251 tests stay green.