fix(compare): align sticky school chips with their data columns on desktop
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m1s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 10s
PR Checks / Build Frontend (no push) (pull_request) Successful in 50s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 8s

The bar was a plain flex row while sections use a 200px-label + per-school
grid, so chips drifted off the columns they label. The bar now shares the
sections' grid template (via --school-count) at the same 761px breakpoint;
verified pixel-exact against live section columns (236/615/994). Mobile
pills unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
This commit is contained in:
Tudor
2026-07-16 21:05:16 +01:00
co-authored by Claude Fable 5
parent 852ed11e4d
commit 8e0b730629
3 changed files with 38 additions and 3 deletions
+9 -3
View File
@@ -9,7 +9,7 @@
'use client';
import { useEffect, useRef, useState } from 'react';
import { useEffect, useRef, useState, type CSSProperties } from 'react';
import { useRouter, usePathname, useSearchParams } from 'next/navigation';
import { useComparison } from '@/hooks/useComparison';
@@ -342,8 +342,14 @@ export function ComparisonView({
/>
) : (
<>
{/* Sticky school bar — column identity while scrolling */}
<div className={styles.schoolBar} aria-label="Schools in this comparison">
{/* Sticky school bar — column identity while scrolling. On desktop
it shares the sections' grid template (via --school-count) so
each chip sits exactly over the column it labels. */}
<div
className={styles.schoolBar}
style={{ '--school-count': activeSchools.length } as CSSProperties}
aria-label="Schools in this comparison"
>
{activeSchools.map((school, index) => (
<div
key={school.urn}