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.
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)
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 <[email protected]>
justin
merged commit e24a7cfcc9 into main2026-06-11 10:37:27 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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", sonull→"M"→ blue.Fix: map
male→"M",female→"F", else→null, which family-chart renders ascard-genderless(gray). So:_redact, so they never imply a sex), andApplied to both charts (they share
chart.css), and bumped the genderless color from the library's washed-outlightgrayto a warm mid-gray matching the brand. Privacy-safe:_redactalready nulls gender, so this is purely the client color mapping. Frontend only, type-checks clean.🤖 Generated with Claude Code