feat(admissions): promote verdict to headline, move above Q&A
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 12s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 53s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 12s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 0s

The Oversubscribed badge + "Demand exceeds capacity" text lived at
the bottom of the tile as an afterthought. It's the headline finding —
a parent should read it first, then let the Q&A supply the detail.

Replace the footer badge with a Playfair Display sentence directly
under the section title: "This school is oversubscribed." (state word
coloured coral for oversubscribed, teal for undersubscribed). The
"Demand exceeds capacity" / "Supply meets demand" line sits below as
quiet muted text — present for context but not competing with the
headline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Tudor Sitaru
2026-04-14 11:03:57 +01:00
parent 5abab067a1
commit 35deedcc16
2 changed files with 37 additions and 21 deletions
@@ -980,19 +980,31 @@
}
.admissionsVerdict {
margin-top: 1rem;
padding-top: 0.9rem;
border-top: 1px solid var(--border-color, #e5dfd5);
display: flex;
align-items: center;
gap: 0.6rem;
font-size: 0.85rem;
color: var(--text-secondary, #5c564d);
flex-wrap: wrap;
margin-top: 0.75rem;
margin-bottom: 0.25rem;
}
.admissionsVerdictText {
.admissionsVerdictHeadline {
font-family: var(--font-playfair), 'Playfair Display', Georgia, serif;
font-size: 1.35rem;
font-weight: 700;
line-height: 1.2;
color: var(--text-primary, #1a1612);
}
.admissionsVerdictOver {
color: var(--accent-coral-dark, #c45a3f);
}
.admissionsVerdictUnder {
color: var(--accent-teal, #2d7d7d);
}
.admissionsVerdictSub {
font-size: 0.8rem;
color: var(--text-muted, #6d685f);
line-height: 1.4;
margin-top: 0.2rem;
}
@media (max-width: 480px) {
+15 -11
View File
@@ -788,6 +788,21 @@ export function SchoolDetailView({
<section id="admissions" className={styles.card}>
<h2 className={styles.sectionTitle}>How Hard to Get Into This School ({formatAcademicYear(admissions.year)})</h2>
{admissions.oversubscribed != null && (
<div className={styles.admissionsVerdict}>
<div className={styles.admissionsVerdictHeadline}>
This school is{' '}
<span className={admissions.oversubscribed ? styles.admissionsVerdictOver : styles.admissionsVerdictUnder}>
{admissions.oversubscribed ? 'oversubscribed' : 'not oversubscribed'}
</span>
.
</div>
<div className={styles.admissionsVerdictSub}>
{admissions.oversubscribed ? 'Demand exceeds capacity.' : 'Supply meets demand.'}
</div>
</div>
)}
<dl className={styles.admissionsQa}>
{admissions.places_offered != null && (
<div className={styles.admissionsQaRow}>
@@ -825,17 +840,6 @@ export function SchoolDetailView({
</div>
)}
</dl>
{admissions.oversubscribed != null && (
<div className={styles.admissionsVerdict}>
<span className={`${styles.admissionsBadge} ${admissions.oversubscribed ? styles.statusWarn : styles.statusGood}`}>
{admissions.oversubscribed ? 'Oversubscribed' : 'Not oversubscribed'}
</span>
<span className={styles.admissionsVerdictText}>
{admissions.oversubscribed ? 'Demand exceeds capacity.' : 'Supply meets demand.'}
</span>
</div>
)}
</section>
)}