From 4af66d62c5e9c25c95d3532ca2df56e2be387733 Mon Sep 17 00:00:00 2001 From: furedea <132188853+furedea@users.noreply.github.com> Date: Mon, 19 Oct 2026 16:36:08 +0900 Subject: [PATCH] fix: align activity dates, labels, and titles in columns Lay activities out on a shared grid so titles start at the same position regardless of date or label length, with equal-width badges. Closes #79 Co-Authored-By: Claude Opus 5.5 --- src/components/activities_section.astro | 3 +++ src/components/activity_entry.astro | 13 ++++++++----- tests/e2e/site.spec.ts | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/components/activities_section.astro b/src/components/activities_section.astro index 86b2ad9..ae0c42a 100644 --- a/src/components/activities_section.astro +++ b/src/components/activities_section.astro @@ -30,6 +30,9 @@ const activities = await getActivities(); diff --git a/tests/e2e/site.spec.ts b/tests/e2e/site.spec.ts index 57eba22..ffe73de 100644 --- a/tests/e2e/site.spec.ts +++ b/tests/e2e/site.spec.ts @@ -173,6 +173,27 @@ test("shows dated activities with their periods, labels, and links", async ({ pa ); }); +test("aligns activity titles and badge widths across entries", async ({ page }) => { + for (const lang of ["ja", "en"] as const) { + await page.goto(`/${lang}/`); + + const entries = page.locator('section[aria-labelledby="activities"] .activity-entry'); + const titleLefts = await entries + .locator(".activity-title") + .evaluateAll((titles) => + titles.map((title) => Math.round(title.getBoundingClientRect().left)), + ); + const badgeWidths = await entries + .locator(".badge") + .evaluateAll((badges) => + badges.map((badge) => Math.round(badge.getBoundingClientRect().width)), + ); + expect(titleLefts.length).toBeGreaterThan(1); + expect(new Set(titleLefts).size).toBe(1); + expect(new Set(badgeWidths).size).toBe(1); + } +}); + test("renders publication collection metadata", async ({ page }) => { await page.goto("/en/");