Skip to content

Commit 2dfe8f1

Browse files
committed
Use theme-aware vector branding
1 parent 366505e commit 2dfe8f1

21 files changed

Lines changed: 261 additions & 130 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: pre-production-checklist
3+
description: Run and maintain the Computational Biology at Berkeley pre-production checklist before promoting dev to production. Use when preparing a release, reviewing the staging site, changing officer photos, or deciding whether the website is ready for main.
4+
---
5+
6+
# Pre-Production Checklist
7+
8+
Treat staging as the release candidate. Run this checklist before promoting `dev` to `main`, and record any failed gate instead of treating a successful build as production approval.
9+
10+
## Gate 1 — Officer portrait framing
11+
12+
Run this gate first whenever an officer photo, the officer-card crop, or officer data has changed.
13+
14+
1. Inspect every added or modified portrait on the rendered `/officers` page at desktop and mobile widths.
15+
2. Confirm the face is approximately centered in the visible 4:3 image frame, with comfortable space around the head and shoulders.
16+
3. Confirm the portrait is not accidentally enlarged, clipped at the forehead or chin, or pushed toward an edge.
17+
4. Correct composition with a per-photo `object-position` entry in `src/data/officerPortraits.ts`. Preserve the source image and avoid destructive recropping when an offset is sufficient.
18+
5. Keep the default framing at `50% 50%`; add an override only when the rendered crop needs it.
19+
6. If depth is useful, prefer a restrained card shadow or lift. Do not add image scale that makes the face feel more zoomed-in.
20+
7. Recheck the fallback image and all unmodified portraits to ensure the shared card behavior has not regressed.
21+
22+
This gate passes only when every changed portrait has been visually checked in its rendered card and each face is comfortably framed at both widths. TypeScript or build success alone does not pass the gate.
23+
24+
## Release discipline
25+
26+
- Run checks against the public staging URL after pushing `dev`.
27+
- Leave `main` untouched until every checklist gate passes.
28+
- Add future gates to this file in release order so this skill remains the single source of truth.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Pre-Production Checklist"
3+
short_description: "Run visual and release gates before production"
4+
default_prompt: "Use $pre-production-checklist to review the staging site before promoting dev to production."

‎index.html‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88
<meta name="author" content="Computational Biology at Berkeley" />
99
<meta name="theme-color" content="#FFFFFF" />
1010
<link rel="canonical" href="https://compbioatberkeley.com/" />
11-
<link rel="icon" type="image/svg+xml" href="/comp-bio-logo-berkeley.svg" />
11+
<link
12+
rel="icon"
13+
type="image/svg+xml"
14+
href="%BASE_URL%comp-bio-logo-berkeley.svg"
15+
data-theme-favicon
16+
data-light-href="%BASE_URL%comp-bio-logo-berkeley.svg"
17+
data-dark-href="%BASE_URL%comp-bio-logo-berkeley-pearl.svg"
18+
/>
1219
<link rel="preconnect" href="https://fonts.googleapis.com" />
1320
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1421
<link href="https://fonts.googleapis.com/css2?family=Carlito:wght@400;700&display=swap" rel="stylesheet" />
@@ -23,6 +30,12 @@
2330
: (prefersDark ? "dark" : "light");
2431
document.documentElement.classList.toggle("dark", theme === "dark");
2532
document.documentElement.style.colorScheme = theme;
33+
var favicon = document.querySelector("link[data-theme-favicon]");
34+
if (favicon) {
35+
favicon.href = theme === "dark"
36+
? favicon.dataset.darkHref
37+
: favicon.dataset.lightHref;
38+
}
2639
} catch (error) {
2740
document.documentElement.classList.remove("dark");
2841
}
Lines changed: 36 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)