Tree cards: living/unset-sex people render gray, not blue #253

Merged
justin merged 1 commits from living-and-unset-cards-gray into main 2026-06-11 10:37:27 -04:00
Owner

On the public site, redacted "Living person" cards showed blue regardless of real sex — and so did anyone with sex simply unset. Cause: the chart mapped gender === "female" ? "F" : "M", so null"M" → blue.

Fix: map male→"M", female→"F", else→null, which family-chart renders as card-genderless (gray). So:

  • Living/redacted people → gray (their gender is nulled by _redact, so they never imply a sex), and
  • unset-sex people → gray instead of defaulting to misleading blue.

Applied to both charts (they share chart.css), and bumped the genderless color from the library's washed-out lightgray to a warm mid-gray matching the brand. Privacy-safe: _redact already nulls gender, so this is purely the client color mapping. Frontend only, type-checks clean.

🤖 Generated with Claude Code

On the public site, redacted **"Living person"** cards showed **blue regardless of real sex** — and so did anyone with sex simply unset. Cause: the chart mapped `gender === "female" ? "F" : "M"`, so `null` → `"M"` → blue. Fix: map `male→"M"`, `female→"F"`, else→`null`, which family-chart renders as `card-genderless` (gray). So: - **Living/redacted people → gray** (their gender is nulled by `_redact`, so they never imply a sex), and - **unset-sex people → gray** instead of defaulting to misleading blue. Applied to both charts (they share `chart.css`), and bumped the genderless color from the library's washed-out `lightgray` to a warm mid-gray matching the brand. Privacy-safe: `_redact` already nulls gender, so this is purely the client color mapping. Frontend only, type-checks clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
justin added 1 commit 2026-06-11 10:37:26 -04:00
The chart mapped gender as `=== "female" ? "F" : "M"`, so anything non-female —
including null — became "M" (blue). On the public site, redacted living people
(whose gender the privacy engine nulls) all showed blue regardless of real sex,
and anywhere a person's sex was simply unset they also showed blue (misleading).

Map male→"M", female→"F", and everything else→null, which family-chart renders
as `card-genderless`. So living/redacted people render gray (and never imply a
sex), and unset-sex people render gray instead of defaulting to male/blue.
Applied to both the member tree (tree/page.tsx) and the public chart
(public-tree-chart.tsx), which share chart.css. Also bumped the genderless color
from the library's washed-out `lightgray` to a warm mid-gray that matches the
muted male/female tones and the brand palette.

Privacy note: `_redact` already nulls gender, so this is purely the client color
mapping — no sex leak, just a correct neutral rendering.

Signed-off-by: Justin Paul <justin@jpaul.me>
justin merged commit e24a7cfcc9 into main 2026-06-11 10:37:27 -04:00
justin deleted branch living-and-unset-cards-gray 2026-06-11 10:37:27 -04:00
Sign in to join this conversation.