Re-targets #118, which merged into fix/place-title-brand-doubling rather than main and so never reached the trunk. Same content, cherry-picked onto current main. No changes beyond the rebase.
Verified with git merge-base --is-ancestor, not the merged flag: main has the title fix from #117 but not this.
What it fixes
Three presentation faults on the place pages, all found by looking at a rendered page rather than at a test.
Links were unstyled. They carried no class at all, rendering as default blue underlined browser links. RankingsView sets .schoolLink to --text-primary with no underline and --brand-strong on hover; the place tables now follow that convention, and running-copy links take the brand colour.
The heading was jargon I invented.RWM expected appears nowhere else on the site. METRIC_DEFINITIONS already names the measure — Reading, Writing & Maths Combined % — surfaced at /api/metrics. The heading now reads Reading, writing & maths with the definition in the tooltip; secondary tables read Attainment 8.
The column was 30% empty, structurally. On /schools/brentwood, 8 of 27 rows were blank — an unphased page listed both phases but showed a single primary-only measure, so every secondary row was empty. Picking the other measure only inverts which rows are blank, and one shared column mixes a percentage with a 0–90 score. Each phase now gets its own table, and a blank cell inside one means the school genuinely has no published result, so it says Not published rather than a bare dash.
Verification
Backend 100 · frontend 253 · tsc --noEmit clean · next build green · 84 e2e journeys. Five component tests covering the three faults, including one that fails if the jargon heading returns.
Also verified every CSS class the component references exists in the stylesheet — a missing CSS-module class fails silently, which is how unstyled links shipped in the first place.
Re-targets #118, which merged into `fix/place-title-brand-doubling` rather than `main` and so never reached the trunk. Same content, cherry-picked onto current `main`. No changes beyond the rebase.
Verified with `git merge-base --is-ancestor`, not the merged flag: `main` has the title fix from #117 but not this.
## What it fixes
Three presentation faults on the place pages, all found by looking at a rendered page rather than at a test.
**Links were unstyled.** They carried no class at all, rendering as default blue underlined browser links. `RankingsView` sets `.schoolLink` to `--text-primary` with no underline and `--brand-strong` on hover; the place tables now follow that convention, and running-copy links take the brand colour.
**The heading was jargon I invented.** `RWM expected` appears nowhere else on the site. `METRIC_DEFINITIONS` already names the measure — *Reading, Writing & Maths Combined %* — surfaced at `/api/metrics`. The heading now reads **Reading, writing & maths** with the definition in the tooltip; secondary tables read **Attainment 8**.
**The column was 30% empty, structurally.** On `/schools/brentwood`, 8 of 27 rows were blank — an unphased page listed both phases but showed a single primary-only measure, so every secondary row was empty. Picking the other measure only inverts which rows are blank, and one shared column mixes a percentage with a 0–90 score. Each phase now gets its own table, and a blank cell inside one means the school genuinely has no published result, so it says **Not published** rather than a bare dash.
## Verification
Backend 100 · frontend 253 · `tsc --noEmit` clean · `next build` green · 84 e2e journeys. Five component tests covering the three faults, including one that fails if the jargon heading returns.
Also verified every CSS class the component references exists in the stylesheet — a missing CSS-module class fails silently, which is how unstyled links shipped in the first place.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_015mWQnpye9F299NVRCCSRvj
Three presentation faults on the place pages, all found by looking at a
rendered page rather than at a test.
An unphased place page showed one primary-only measure for a list holding both
phases: 8 of 27 rows on /schools/brentwood were blank, because secondaries
have no reading-writing-maths score. Picking the other measure would only have
inverted which rows were empty, and putting both in one column would have
mixed a percentage with a 0-90 score. Each phase now gets its own table, so a
blank cell means the school genuinely has no published result — which is worth
saying, and now says "Not published" rather than a bare dash.
"RWM expected" was invented here. The site already names the measure in
METRIC_DEFINITIONS, surfaced at /api/metrics: "Reading, Writing & Maths
Combined %". The heading now reads "Reading, writing & maths" with the full
definition in the tooltip.
Links carried no class at all, so they rendered as default blue underlined
browser links beside a site that styles table links as body colour with a
brand hover. They now follow RankingsView's convention, and running-copy links
take the brand colour.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mWQnpye9F299NVRCCSRvj
tudor
merged commit 9545aec7f4 into main2026-08-21 20:57:14 +00: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.
Re-targets #118, which merged into
fix/place-title-brand-doublingrather thanmainand so never reached the trunk. Same content, cherry-picked onto currentmain. No changes beyond the rebase.Verified with
git merge-base --is-ancestor, not the merged flag:mainhas the title fix from #117 but not this.What it fixes
Three presentation faults on the place pages, all found by looking at a rendered page rather than at a test.
Links were unstyled. They carried no class at all, rendering as default blue underlined browser links.
RankingsViewsets.schoolLinkto--text-primarywith no underline and--brand-strongon hover; the place tables now follow that convention, and running-copy links take the brand colour.The heading was jargon I invented.
RWM expectedappears nowhere else on the site.METRIC_DEFINITIONSalready names the measure — Reading, Writing & Maths Combined % — surfaced at/api/metrics. The heading now reads Reading, writing & maths with the definition in the tooltip; secondary tables read Attainment 8.The column was 30% empty, structurally. On
/schools/brentwood, 8 of 27 rows were blank — an unphased page listed both phases but showed a single primary-only measure, so every secondary row was empty. Picking the other measure only inverts which rows are blank, and one shared column mixes a percentage with a 0–90 score. Each phase now gets its own table, and a blank cell inside one means the school genuinely has no published result, so it says Not published rather than a bare dash.Verification
Backend 100 · frontend 253 ·
tsc --noEmitclean ·next buildgreen · 84 e2e journeys. Five component tests covering the three faults, including one that fails if the jargon heading returns.Also verified every CSS class the component references exists in the stylesheet — a missing CSS-module class fails silently, which is how unstyled links shipped in the first place.
🤖 Generated with Claude Code
https://claude.ai/code/session_015mWQnpye9F299NVRCCSRvj