feat(ui): antes fly from every player into the pot at the start of the hand

Open
#927 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start with src/hooks/animations/useTableAnimations.ts, the chip definitions in src/config/chipSets.ts, and sibling issue #846 for the shared motion and pot target. Trace how previousActions supplies ante actions and how the viewed table and animation settings are identified. Done when each applicable ante chip moves into the pot, totals update, and reduced-motion and background-table behavior meet the acceptance criteria.

Written by the indexing model from the issue text.

Description

Overview

When antes are taken at the start of a hand, show it: an ante chip goes out in front of every player who posted one, then "shoop" straight into the pot. Antes are dead money and never sit as a bet, so they shouldn't linger in front of the seat the way the blinds do.

Product decision (2026-10-30): every player pays their own ante by default, in cash games and tournaments (engine: block52/poker-vm#2755). The big-blind ante remains an option (block52/poker-vm#2754); in that style only the big blind's single ante animates.

What exists today

  • No pot-sweep or ante animation exists. useTableAnimations (src/hooks/animations/useTableAnimations.ts) only returns the table size, and animateChipsToPot is mentioned only in src/hooks/README.md.
  • The sibling ticket for bets is #846 (bet chips sweep into the pot at the end of each betting round). #845 is the bet-spot move. Share the same motion and pot target.
  • Antes arrive as ante actions in previousActions (round ante), one per player, recorded right after the big blind's own ante and blind.

Steps

  1. On a new hand, read the ante actions for the hand and, for each poster, show a small ante chip (the current chip set, src/config/chipSets.ts) at that seat's bet spot.
  2. After a short beat (~150 ms), slide all ante chips into the pot together (~300 ms, eased), the same motion #846 uses for the street sweep.
  3. The pot total updates when they land. The ante is never shown as part of the seat's bet (sumOfBets excludes it already).
  4. Big-blind ante style: only the big blind's ante animates (one chip).
  5. Honour prefers-reduced-motion (no movement, pot just updates) and the existing animation/celebration settings.
  6. Multi-tabling: only animate on the table being viewed; background tables just update.

Acceptance criteria

  • AC-1 Each player who posted an ante shows an ante chip that moves into the pot at the start of the hand.
  • AC-2 Ante chips never remain in front of a seat and are never counted in that seat's bet.
  • AC-3 Big-blind ante style animates the single ante from the big blind.
  • AC-4 Reduced motion: no animation, totals correct.

Related: #846 (sweep bets to pot), #845 (bet move), #891 (antes on the create form), block52/poker-vm#2736 / #2737 / #2754.

Dominant language
TypeScript
Stars
2
Forks
5
Avg merge
22h 35m
Merged PRs (30d)
91

Getting set up

We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from block52/ui

All issues in block52/ui

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.