You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
src/components/golf/coachhelm/player/CompositeRatingCard.tsx (GAME STRENGTH, "50 / 100") and the Resilience ring in src/components/golf/coachhelm/player/ShotAnalysisCard.tsx ("1.1 · Good recovery"). Both use the same hand-rolled SVG progress ring pattern.
CompositeRatingCard.tsx ~line 143-165 draws a full-circle SVG ring:
Track circle: className="stroke-warm-100" — warm-100 is near-cream, essentially invisible on the cream card background.
Value arc: an animated m.circle with strokeDasharray/strokeDashoffset filling to the value %.
At value = 50/100 the orange arc fills ~half the circle; because the grey track is invisible, the eye sees only a floating half-arc, which reads as a broken / incomplete C-shape open on the left rather than an intentional gauge. (Same pattern → same effect for the Resilience ring.)
How it should fill (architecture)
The track must be visible at a proper contrast (a real neutral ring, e.g. a warm/inset token with enough delta from the card), so a partial fill reads as "half of a full gauge," not a broken arc.
Decide the gauge intent explicitly: a full 360° ring (track always a full circle) vs a 270° speedometer arc. Whichever, make the unfilled portion legibly present.
Cap-and-rotation should place the "start" of the arc at a natural anchor (top or bottom), not leave an ambiguous left gap.
Where
src/components/golf/coachhelm/player/CompositeRatingCard.tsx(GAME STRENGTH, "50 / 100") and the Resilience ring insrc/components/golf/coachhelm/player/ShotAnalysisCard.tsx("1.1 · Good recovery"). Both use the same hand-rolled SVG progress ring pattern.Evidence
IMG_4977 (GAME STRENGTH gauge), IMG_4979 (Resilience gauge).
Root cause (confirmed in source)
CompositeRatingCard.tsx~line 143-165 draws a full-circle SVG ring:className="stroke-warm-100"— warm-100 is near-cream, essentially invisible on the cream card background.m.circlewithstrokeDasharray/strokeDashoffsetfilling to the value %.At value = 50/100 the orange arc fills ~half the circle; because the grey track is invisible, the eye sees only a floating half-arc, which reads as a broken / incomplete C-shape open on the left rather than an intentional gauge. (Same pattern → same effect for the Resilience ring.)
How it should fill (architecture)
Acceptance criteria