The landing redesign (#1399) ships JSX with custom CSS variables, dark-mode tokens, and responsive layout. vitest validates units; nothing validated that the rendered page works. PR-T3 fills that gap.
| Spec | Project | Asserts |
|---|---|---|
| hero renders with brand headline + CTAs | desktop | headline split, eyebrow, both CTAs |
| proof strip shows GitHub stars | desktop | real "Nk stars" or graceful "Star on GitHub" |
| three primitive cards render with counts | desktop | building-blocks heading + 3 h3s + tabular-nums |
| all 8 recipe cards + NEW badge | desktop | each cookbook title + /ork:design-ship |
| three persona value-prop cards | desktop | 01/02/03 eyebrows + titles |
| hero foreground resolves to a real color | desktop | computed color is rgb/oklch/lab/etc, not transparent |
| primary button uses emerald token | desktop | computed background is a real color |
| layout stacks without horizontal overflow | mobile | scrollWidth ≤ clientWidth + CTAs visible |
$ cd docs/site && npx playwright test --project=chromium-desktop ✓ 1 Landing — hero › hero renders with brand headline + CTAs ✓ 2 Landing — hero › proof strip shows GitHub stars ✓ 3 Landing — primitives › three primitive cards render with counts ✓ 4 Landing — cookbook recipes › all 8 recipe cards render ✓ 5 Landing — value-prop strip › three persona cards ✓ 6 Landing — design tokens › hero foreground resolves ✓ 7 Landing — design tokens › primary button uses emerald token - 8 Landing — mobile viewport (skipped on desktop project) 7 passed, 1 skipped (8.3s)
docs/site/playwright.config.ts — auto-spawns dev server, 2 projects (desktop + mobile)docs/site/e2e/landing.spec.ts — 8 specs across 6 describe blocksdocs/site/package.json → test:e2e script + @playwright/test devDepdocs/site/.gitignore — test-results/, playwright-report/, playwright/.cache/PR-T1 formatStars unit test ✓ merged (#1412) PR-T2 sync_versions round-trip ✓ merged (#1414) PR-T3 Playwright E2E for landing ← THIS PR PR-T4 handoff bundle schema validator next PR-T5 stub-fallback integration test