Skip to content

[M3-3b] Hover previews on project cards #97

Description

@williamdemeo

Raised from the 2026-08-03 design review, and it keeps the site owner's original idea: rest on a project card (or tab into it) and a preview floats up — the paper's first page, or a screenshot of the docs site, plus two or three live facts (venue/DOI, CI status, scale).

The validated pattern is Wikipedia's page previews: rewarding curiosity cheaply, measured to increase precision of navigation (https://diff.wikimedia.org/2018/04/18/how-we-designed-page-previews-for-wikipedia/).

Why

  • The cards are the home page's second screen; today they are text in boxes. A preview turns each card into a small promise kept.
  • Everything can be generated at build time and self-hosted: paper first pages via pdftoppm, site thumbnails via the audit scripts' own headless-Chromium driver (scripts/js/_browser.mjs) — no external origin, nothing for make offline-audit to flag.

Tasks

  • Build-time thumbnail generation for each card's primary artifact; committed outputs, content-addressed or pinned like the font pipeline.
  • Preview component: appears on :hover and :focus-within, dismissible with Escape (WCAG 1.4.13), never blocks the card's own links.
  • Layout that works at the grid's narrow breakpoint (preview below, not beside).
  • Reduced motion: no translate/fade — instant show/hide.
  • Facts rows sourced from existing data (bibliography.json, repo metadata pinned at build) — no client-side fetches.

Acceptance criteria

  • Keyboard-only users can open, read, and dismiss every preview.
  • make design-audit and make offline-audit green; images self-hosted.
  • Cards without a preview degrade to exactly today's card.

Metadata

Metadata

Assignees

No one assigned

    Labels

    designVisual design and front-end work.infrastructureBuild system, tooling, and repository plumbing.milestone-3-designMilestone 3: Visual identity and design system.

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions