feat: shine a code redeemed or an event completed on its way out
A code redeemed on its last server sweeps in the game's colour and greys in place for 0.8 s, then lands in Redeemed or expired. A completed event greys and shines while its Moved to Archive notice holds, now 0.9 s rather than 1.5 s, which read as unresponsive; an ignored one only greys. Settings → Appearance gains Motion & celebrations as three What to track cards: Reduce motion (stops every animation and the fireworks, adding to the device's own setting), Fireworks, and Shine. Reduce motion locks the other two off without forgetting them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9c22a85134
commit
54d13d7472
15 files changed
+628
-59
No files matched your search
+26
-2
@@ -626,8 +626,32 @@ legend on the same baseline as "Next: …".
|
||||
fires the small burst in the "Moved to Archive" notice; ignoring one fires nothing.
|
||||
- **When it fires.** Only an action taken now that completes the item or section, never arriving
|
||||
complete. Reduced motion removes all of it, and so does `prefs.celebrations: false` (Settings →
|
||||
Appearance → Celebrations), read through `CelebrationsContext` in `Fireworks.tsx`. The row's own
|
||||
tick animation (wash, pop, check) stays either way: it is feedback, not celebration.
|
||||
Appearance → Motion & celebrations → Fireworks), read through `CelebrationsContext` in
|
||||
`Fireworks.tsx`. The row's own tick animation (wash, pop, check) stays either way: it is feedback,
|
||||
not celebration.
|
||||
- **Shine (2026-10-20, owner).** Something leaving the list shines first: the dailies' light sweep
|
||||
(held bright until it has crossed, as `code-sweep`, since a single row is too thin for one that
|
||||
fades as it travels) and ring, in the game's colour. A code redeemed on its last server shines in
|
||||
place for 0.8 s (the sweep 640 ms, the glow 560 ms), fades, and lands in "Redeemed or expired";
|
||||
ticking one of two servers only pops that box, and the code's text greys to 45% while it shines
|
||||
(its Redeemed boxes stay full strength). A completed event's text greys the same while its "Moved
|
||||
to Archive" notice holds, and the row shines; an ignored one greys without the shine. No fireworks
|
||||
on a code: redeeming is a chore cleared, not a finish, and six in a row would be noise. Settings →
|
||||
Appearance → Motion & celebrations → Shine (`prefs.shine: false`) turns the sweep off; the greying
|
||||
stays, since it says where the row is going. Only the reader's own action shines, never a row
|
||||
arriving.
|
||||
- **Reduce motion (2026-10-20, owner).** Settings → Appearance → Motion & celebrations.
|
||||
`prefs.reduceMotion: true` sets `data-motion="reduce"` on the root, and `styles.css` stops every
|
||||
animation and transition and hides the fireworks. Off, it follows the device's
|
||||
`prefers-reduced-motion`: a stylesheet cannot undo the device's request, so the switch can only
|
||||
add to it, and its card says so. While it is on, the Fireworks and Shine cards show off, dimmed
|
||||
and unpressable, with "Off while Reduce motion is on"; the saved choices underneath are kept, so
|
||||
they come back as they were.
|
||||
- **Motion & celebrations cards (2026-10-20, owner, mockup B of three).** The three switches are a
|
||||
game's What to track cards (`.comp`, shared with `.game-settings` through `:is()`), three across
|
||||
and one per row on phones, Reduce motion first: each explanation inside its own card, rather than
|
||||
checkboxes with help text above and below them. The owner chose it over rows with switches (a
|
||||
control type the app does not otherwise use) and nested checkboxes.
|
||||
|
||||
### Other pages
|
||||
|
||||
|
||||
Reference in new issue
Block a user