Make whimsy mode actually whimsical: confetti, sparkles, and a suggest drumroll - #571
Open
marcdel wants to merge 16 commits into
Open
Make whimsy mode actually whimsical: confetti, sparkles, and a suggest drumroll#571marcdel wants to merge 16 commits into
marcdel wants to merge 16 commits into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d JS dep Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Team.moved_pear_ids/2 diffs track membership before/after, so pears Suggest shuffles between tracks animate too (previously only pears coming off the bench did, making swaps look static) - Slam animation: card drops in oversized with a raised shadow, squashes on impact, settles, and kicks up a grey dust poof (tied to animationend so reduced-motion users get neither) - Save confetti becomes a dual side-cannon finale so it reads differently from the local drop sparkle Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
push_event only reaches the socket that clicked, so any other tab or teammate viewing the board saw pears swap with no animation. Celebrations now broadcast over the existing team PubSub topic and each subscribed LiveView forwards them to its client. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Suggest resets pears to the bench and re-adds them, so the same pair can land back in its track in flipped order. The drumroll diffed only track membership, so those cards silently swapped text with no animation. moved_pear_ids now diffs rendered board position (track + rank within track), which animates exactly the set of cards whose text changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
marcdel
force-pushed
the
whimsy-mode-celebrations
branch
from
June 11, 2026 20:05
a8bfd27 to
a288fae
Compare
Bump Mix deps within their version ranges (finch 0.22→0.23, floki 0.38.3→0.38.4, phoenix_live_view 1.2.0→1.2.3, plug 1.19.2→1.20.1, sentry 13.1→13.2, swoosh 1.26.1→1.26.2, tailwind installer 0.4.1→0.5.1), realign the corresponding mix.exs specs to the installed minors, bump the esbuild binary to 0.28.1, and refresh vendored canvas-confetti to 1.9.4. Held back deliberately: ecto_sql 3.14 requires decimal ~> 3.0, which the o11y override pins to ~> 2.0; o11y 0.3.0 only adds an igniter dep and still pins decimal 2.x, so neither moves without a breaking decimal bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
:whimsy_modeflagdata-whimsyattribute; no sparkle on the remove zone)Team.moved_pear_ids/2diffs rendered position (track + rank), so track-to-track moves and in-track reorders animate too, not just bench assignmentsassets/vendor/(this repo has no npm toolchain)prefers-reduced-motionrespected (canvas-confetti flag + media query)With the flag off, behavior is unchanged.
Bonus bugfix
add_empty_tracksalways started numbering at 1 and swallowed the duplicate-name error, stranding available pears). New untitled tracks now take the smallest unused number. Pre-existing bug surfaced during manual testing; the test that pinned the old behavior was updated.Spec:
docs/superpowers/specs/2026-06-10-whimsy-mode-celebrations-design.htmlPlan:
docs/superpowers/plans/2026-06-10-whimsy-mode-celebrations.mdTest plan
mix test— 337 tests, 0 failures (new coverage: push-event assert/refute for both events incl. multi-board broadcast,data-whimsyrendering + live toggle flip,moved_pear_idsposition diffing, untitled-track numbering)🤖 Generated with Claude Code