Skip to content

Group steering-committee teams with connecting colour bars (#808)#815

Merged
richarddushime merged 2 commits into
mainfrom
improve-808-steering-committee-display
Jun 24, 2026
Merged

Group steering-committee teams with connecting colour bars (#808)#815
richarddushime merged 2 commits into
mainfrom
improve-808-steering-committee-display

Conversation

@LukasWallrich

@LukasWallrich LukasWallrich commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Closes #808.

Problem

In the steering-committee team grid, title cards and member cards were equal-sized tiles flowing in one wrapping row. When the row wrapped, a member could land on a new line with no heading nearby — so it was ambiguous which sub-team it belonged to.

In the before shot below, Sara Lil Middleton wraps to the start of a new row and reads as part of "Ethics and Inclusion" (to her right), when she's actually the second member of "Sustainability & Strategy". Every title card is the same dark slate, so there's no way to tell teams apart across a wrap.

Fix — connecting colour bars

Kept the dense single-flow mosaic (one reading order, even rows) but made each team read as one connected run: a coloured bar runs along the top of every tile in a team (title + members), bridges the gap to the next tile, and breaks at the row edge / resumes on the next row when a team wraps. A wrapped member keeps its team colour, so it's never orphaned. Each team gets a distinct colour; Steering & Guidance (no sub-teams) stay plain.

Operations section — before vs after (worst case, 10 teams)

Operations before/after

In after, Sara Lil Middleton's purple bar keeps her with Sustainability & Strategy, while "Ethics and Inclusion" is clearly the crimson team to her right.

Full page — after

Full page after

Full page — before

Full page before

(Screenshots live on the pr-images branch under 808/ for reproducibility — see its README for how they were generated.)

Approach & alternatives

This was chosen after mocking up several alternatives (boxed panels, horizontal lanes, forced line breaks, a compact roster). The connecting-bar approach preserves the "one overarching team split into smaller teams" feel without boxes.

Implementation notes

  • Grouping and colours are now baked in at generation time (generate_sc_profiles.py), replacing the fragile runtime JS that re-fetched the source CSV and fuzzy-matched member names to re-order/colour cards. Net −317 lines.
  • Card markup gains a .sc-card-photo wrapper (clips the image/zoom) so the connecting bar can overflow into the gap; a .sc-cbar element carries the bar.
  • Heavy generator deps (pandas/requests/Pillow) are now imported optionally so the templates can be re-rendered without them.
  • index.md was regenerated from the existing committed data (no network re-fetch), so the diff is purely the layout — all 32 members, names, roles, team titles and modals are unchanged. The generator still rebuilds correctly from the two Google Sheets sources (the data/merge path is unchanged; only card rendering moved into shared helpers, verified to reproduce the committed markup byte-for-byte).

🤖 Generated with Claude Code

In the team grid, members could be orphaned across line breaks, making it
ambiguous which sub-team a wrapped member belonged to. Each team now reads
as one connected run: a coloured bar links every tile in a team (title +
members), bridging the gap between tiles and breaking cleanly at the row
edge so it resumes on the next line when a team wraps. Each team gets a
distinct colour; Steering & Guidance (which have no sub-teams) stay plain.

Grouping and colours are now baked in at generation time, replacing the
fragile runtime CSV name-matching/reorder script.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@LukasWallrich LukasWallrich requested a review from a team as a code owner June 24, 2026 20:26
@github-actions

Copy link
Copy Markdown
Contributor

👍 All image files/references (if any) are in webp format, in line with our policy.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

📝 Spell Check Results

Found 1 potential spelling issue(s) when checking 45 changed file(s):

📄 content/nowherelab/phd-survival-guide.md

Line Issue
157 Compleat ==> Complete

ℹ️ How to address these issues:

  1. Fix the typo: If it's a genuine typo, please correct it.
  2. Add to whitelist: If it's a valid word (e.g., a name, technical term), add it to .codespell-ignore.txt
  3. False positive: If this is a false positive, please report it in the PR comments.

🤖 This check was performed by codespell

@LukasWallrich

LukasWallrich commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Staging Deployment Status

This PR has been successfully deployed to staging as part of an aggregated deployment.

Deployed at: 2026-06-24 21:15:53 UTC
Staging URL: https://staging.forrt.org

The staging site shows the combined state of all compatible open PRs.

The team grid can render misaligned under the academic theme: its
`.article-style img` selector outranks the `.sc-card-img` class, so
without !important the theme can drop the avatar into normal flow and
push it below the top of the card (title cards then sit higher than the
photos, with the connecting bars detached).

Force the photo wrapper and image to stay absolutely positioned and
flush, top-align the grid explicitly, fill any lightbox <a> wrapper the
theme may add around the image, and reset theme heading margins on the
title text so title cards keep their aspect-ratio height.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@richarddushime richarddushime merged commit 375548b into main Jun 24, 2026
5 checks passed
@richarddushime richarddushime deleted the improve-808-steering-committee-display branch June 24, 2026 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve steering committee display

2 participants