Files
zooqueen d099a7eb2a every card photographs its own template, at all three sizes, in webp
Several cards were not pictures of a template at all. quantum was a Next
"Failed to compile" panel. prism was the demo link index. jobfinder and deploy
were shot with the Background layer off, so a lit scene photographed as tiles
on flat grey, and jobfinder was not even the right template. canvas caught a
full-screen intro counter mid-count.

The 56 remaining cards are now shot from the running template through one
recipe: 1920x1080, plus the 834x1112 and 390x844 portraits the detail page
switches between. Every card has all three; none had them before.

Six rows are gone because none could show a picture of its own. folio-html,
folio-full and folio-main share a single path with no page left between them,
folio-main's page being the link index itself, and each was displaying a
neighbour's photograph. folio-portfolio-details-3 is identical to its
neighbour, and betacrm-duplicate is what its name says.

The captures are webp, not png. next.config sets images.unoptimized, so what
is committed is exactly what a visitor downloads, and a grid of 56 png cards
is 54MB of page. At q82 the same pictures are 14MB for the whole set — RMSE
0.66/255 against the png, max 1.27, which is below what an eye resolves at
card size. It is also what the repo can carry: 162MB of png would not transfer
in one pack.

public/screenshots/full and /og go with them. Nothing in the app, the scripts
or the export has referenced either; they were 50MB of pictures nobody could
reach. The seven root *.md progress reports go too — LLM.md is the one place
this repo keeps what it knows.
2026-08-14 09:17:20 -07:00

19 lines
766 B
TypeScript

// One way to address a screenshot. The bare name is the desktop capture;
// tablet and phone captures sit beside it under the same name.
export const sizes = ['desktop', 'tablet', 'mobile'] as const;
export type Size = (typeof sizes)[number];
export function shot(name: string, size: Size = 'desktop'): string {
return `/screenshots/${name}${size === 'desktop' ? '' : `-${size}`}.webp`;
}
// Frames at the real capture geometry: 16:9, 834x1112, 390x844. The widths
// give all three the same height, so switching reads as a change of device
// rather than a change of scale.
export const frame: Record<Size, string> = {
desktop: 'aspect-video w-full',
tablet: 'aspect-[834/1112] w-full max-w-[480px]',
mobile: 'aspect-[390/844] w-full max-w-[296px]',
};