Skip to content

TTRPG Progress Clock v1.2

Latest

Choose a tag to compare

@seetee seetee released this 21 Jul 15:17
· 1 commit to main since this release

Typography, a cold-glass visual direction, and clocks that get visibly more urgent as they fill.

Escalating tempo

A clock's animation is now a function of how full it is. Empty, it sits near-dormant at a 7-second cycle and doesn't flash at all; at the last segment it runs at 1.7 seconds. Pulse, completion ring and sweep all read one shared value, so nothing beats against anything else. Dread you can read from across the table without reading the numbers.

Look

Warm phosphor on cold machined glass, borrowed from the npc session overlay — surfaces at one hue, everything lit at another, so the clock palettes read as illuminated rather than painted. Clock names are set in a condensed grotesque and treated as signage rather than body copy, and each name carries a rule beneath it filled to the same count as the ring.

Arcane is now Cypher. There is no magic in Numenera, only salvaged prior-world tech. Clocks saved under the old name keep their name, segments and progress but revert to Crimson.

Fixes

  • Keyboard users could advance a clock exactly once. Ticking re-rendered the whole grid, destroying the focused element. Ticks now patch a single card in place, which also lets CSS transitions run at all.
  • The clock announced itself as an image despite being tappable and keyboard-operable. It's now a button that names its clock and reports changes through a live region.
  • A single unknown palette key permanently bricked the app — it threw during startup, leaving a blank page with no in-app recovery. Stored state is now validated and clamped on load.
  • Added an <h1> and made the grid a real list; cards were <article>.
  • Added a Content-Security-Policy as defence-in-depth around the app's innerHTML rendering.
  • The v1.1 service worker cache was never invalidated, so installed apps would not have received this release's assets.

Notes

Contrast verified against the brightest point of the new background rather than its average — AA holds throughout. Screen-reader output has not been verified by ear.