feat: finish portfolio title, navigation, and destination effects
Add the approved name animation, rounded docking navigation, localized keyboard focus cue, unified builds card, and destination copy hierarchy.
Introduce lightweight one-shot meteors and a sun ring that repeats every three seconds at Contact. Open the email action in a separate browsing context. Preserve reduced-motion behavior and keep private handoff and visual-check artifacts out of version control.
Validation: 649 tests passed; all 20 failures in world-models and SceneCanvas reproduce on baseline 103427f. Typecheck, artifact verification, and transfer budgets passed. Client/SSR preview build passed before this commit. Existing baseline test failures remain unchanged.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { PortfolioContent } from "@/content/types";
|
||||
import { expect, expectInsetFocusIndicator, test } from "../helpers/serve-dist";
|
||||
import { expect, expectContentFocusCue, test } from "../helpers/serve-dist";
|
||||
|
||||
test.use({ javaScriptEnabled: false });
|
||||
|
||||
@@ -401,7 +401,7 @@ test("keeps every raw SSR reading-path segment visible without JavaScript", asyn
|
||||
.locator("main > section")
|
||||
.evaluateAll((sections) => sections.map((section) => section.id)),
|
||||
).toEqual(sectionIds);
|
||||
expect(await page.locator("main > section > h2").allTextContents()).toEqual(
|
||||
expect(await page.locator("main > section h2").allTextContents()).toEqual(
|
||||
sectionHeadings,
|
||||
);
|
||||
|
||||
@@ -518,7 +518,7 @@ test("activating the skip link focuses visible portfolio content without JavaScr
|
||||
"tabindex",
|
||||
"-1",
|
||||
);
|
||||
await expectInsetFocusIndicator(page, "#portfolio-content");
|
||||
await expectContentFocusCue(page);
|
||||
});
|
||||
|
||||
test("retains native section navigation when scripts are disabled", async ({
|
||||
|
||||
Reference in New Issue
Block a user