Commit Graph
4 Commits
Author SHA1 Message Date
tiennm99 d583e173d2 fix(ui): resize on Ctrl+wheel only after 100 px of gesture travel
A new gesture, including one started by a change of direction, used to
send a full step at once, so a few px of reversed jitter in a touchpad
pinch shrank and grew the bubble back and forth. A new gesture now starts
from its own travel and steps only once that reaches 100 px.
2026-10-23 03:37:38 +07:00
tiennm99 a4f8011b26 fix(ui): accumulate Ctrl+wheel travel before resizing the bubble
Every wheel event used to send one resize step, so a touchpad's stream
of small deltas jumped straight to the smallest or largest size. Wheel
travel is now normalised to px and accumulated: the first event of a
gesture gives one step, then each further 100 px gives another. A
200 ms pause or a change of direction starts a new gesture, so one
mouse notch still resizes by exactly one step.
2026-10-23 03:25:37 +07:00
tiennm99 c4ad23236e fix(ui): reserve the weekly percent column at its semibold weight
The tail percent is drawn at weight 600 but its column was measured at
400, so "100%" was clipped at larger bubble sizes. The layout now asks
the measure callback for the weight the text is drawn in.
2026-10-23 03:25:28 +07:00
tiennm99 094b6bdcb0 feat: draw the bubble from the payload in HTML, CSS and SVG
The stadium pill holds SVG usage and time rings, pill-shaped tail bars and
the payload's texts, laid out in physical px from canvasW, canvasH and dpi
with the GDI bubble's formulas (ui/layout.js, unit-tested). The palette is
CSS custom properties per theme; fills come from Rust. The ring arc, weekly
fill and weekly percent pulse at 95% and above on an 80 ms step, and the
time progress advances every minute.

Only the pill takes pointer input, so the corners are dead. A press that
moves 3 physical px starts an OS drag after arming the move end; an earlier
release is a click. Right-click opens the native menu and Ctrl+wheel resizes.
2026-10-21 14:40:18 +07:00