Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

323 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tymer!

Develop

pnpm i
pnpm run dev

What it does

It's a countdown timer that can

  • be started
  • be paused (after it has started)
  • be resumed (after it has been paused)
  • be reset (after it has started or after it finishes)
  • be finished (after at least some time was recorded)
  • have multiple periods
  • have current period duration adjusted
  • have current period elapsed time adjusted
  • move to the next or previous period
  • show the total time elapsed while it was running
  • carry deadlines — wall-clock targets drawn as dashed lines over the timeline

It uses localStorage to “keep running” after closing the page and opening it again.

Deadlines

Add + lines in the durations editor (E), one per deadline:

+16:30 stretch        every day at 16:30
+today 17:00 leave    a concrete moment (today/tomorrow/yesterday/30 Dec)

Each deadline is a dashed line over the timeline with a countdown next to it (0:05 — five minutes to go, -0:05 — five minutes over). Past its moment it turns red and pulses, and a chime (picked once per deadline) repeats until silenced — with the bell button on its label or the S key. Only the most recently expired deadline rings; an older still-ringing one goes quiet for good when a newer one fires. Daily deadlines ring again the next day.

Build

Builds the app for production to the dist folder.

pnpm run build

Deployment

The app is deployed to GitHub Pages. https://benabraham.github.io/tymer/

An open page picks up a new deploy on its own — the service worker checks for one every 15 minutes and when you return to the tab. It reloads as soon as that is safe: right away when the timer is idle or finished, otherwise the build avatar in the top-right starts pulsing and reloads on click (or by itself once the session ends). Its tooltip shows which build is running.

Sounds

Tymer speaks: it announces elapsed time, time remaining, and — with rising impatience — how far past its period you are. Each event is a directory of interchangeable takes and one is picked at random per play. The words are generated rather than recorded, from prompt sets kept in the repo.

Tests

pnpm test              # Run tests with Vitest
pnpm run test:coverage # Run tests with coverage report

Formatting

pnpm run format       # Write
pnpm run format:check # Check only

Used by

Contributors

Languages