- The rows' narrow layout now switches at a 608px list, not 600px. Below
769px the page pads 1rem each side, so a 640px screen gives a 608px
list: exactly the old max-width: 640px media query, where 600px left
633-640px screens on the wide layout.
- rowContainerGuard.test.ts fails if anything other than HomeView renders
SchoolRow or SecondarySchoolRow, or if one of HomeView's row lists loses
its `results` container. Outside one the rows silently keep their wide
layout on phones. (Checked: HomeView is the only importer today.)
- Picking a pin from the list beside the map now works from the keyboard:
each row carries a "Show <school> on the map" button, visually hidden
until focused, with aria-pressed for the selected school. The row itself
cannot be the button, since it holds links and buttons of its own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The list beside the map used its own cut-down card, so it showed less
than the list view (no phase, age range, denomination, trend, local
authority) and looked different. It now renders the list view's
SchoolRow / SecondarySchoolRow, through one renderRow shared by the list
view, the map pane and the phone's bottom sheet, which also gains
Remove from compare. CompactSchoolItem and its styles are gone.
The rows switched to their stacked layout on a max-width: 640px media
query, which never fires in a ~430px pane on a desktop screen. It is now
a container query on the list the row sits in (`results`, set on the
list view, the map pane and the bottom sheet). 600px of list is a 632px
screen less padding, so phones lay out as before.
Clicking a row, outside its links and buttons, still picks its pin, and
the selected row is outlined. The pane widens to 360–460px for the
taller rows.
The bottom sheet's close button was a 30px target; it is now 44px with
the same 30px circle (MOBILE.md), and the phone journey checks it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>