src/lib/TodoCover.svelte computes maxAgeDays and urgency from Date.now() relative to a hardcoded URGENCY_DATE = '23-01-2026'. During prerender that is the build date; on the client it is the visit date. The style attribute (--urgency) then differs between SSR HTML and the hydrated DOM, and the reference date is a magic number tied to this repository.

Tasks

  • Compute urgency in one place: either build-time only (pass now from the renderer and do not recompute on the client), or client-only after mount
  • Replace URGENCY_DATE with the oldest open todo's date, or a PROJECT_* constant
  • Move the Tailwind hex colours into the IDS colour tokens

Deterministic covers

Same colour on the server and in the browser

A static site template built with SvelteKit.

Sveleton, 2025