Stop the big blind's own chip from covering the BB badge #68
Closed
jheaps
wants to merge 1 commits from
fix/casino-holdem-blind-badge-placement into fix/casino-holdem-buyin-deals-in
pull from: fix/casino-holdem-blind-badge-placement
merge into: :fix/casino-holdem-buyin-deals-in
:master
:feature/socialism
:polish/holdem-seats-one-size
:fix/holdem-dealer-chip-eats-its-seat
:polish/holdem-game-night-ready
:polish/holdem-round-next
:polish/holdem-seat-collisions
:polish/holdem-offline-and-render
:fix/naming-a-blind-deals-the-hand
:release/casino-holdem-polish
:fix/casino-holdem-phone-look
:fix/casino-holdem-sidebar-crowding
:fix/casino-holdem-contribution-rule
:fix/casino-holdem-one-stack-rule
:fix/casino-holdem-default-stack-buyin
:feat/casino-holdem-waiting-list
:feat/casino-holdem-misdeal
:feat/casino-holdem-cash-out
:feat/casino-holdem-clock
:feat/casino-holdem-rake
:fix/casino-holdem-stadium-ring
:fix/casino-holdem-phone-felt-shape
:fix/casino-holdem-audit-runs-everything
:feat/casino-holdem-straddle
:fix/casino-holdem-landscape-ring
:feat/casino-holdem-table-file
:fix/casino-holdem-touch-targets
:fix/casino-holdem-audit-modal-blindspot
:fix/casino-holdem-quicksplit-chop
:fix/casino-holdem-buildable-bet-sizes
:fix/casino-holdem-pot-sized-raise
:fix/casino-holdem-chips-to-count-out
:fix/casino-holdem-first-buy-in
:fix/casino-holdem-seating-a-table
:fix/casino-holdem-showdown-order
:fix/casino-holdem-hand-log-filter
:fix/casino-holdem-posting-in
:fix/casino-holdem-dead-button
:fix/casino-holdem-discarded-pot
:fix/casino-holdem-honest-tank-clock
:fix/casino-holdem-export-the-notes
:fix/casino-holdem-stacks-in-chips
:fix/casino-holdem-close-audit-blind-spots
:fix/casino-holdem-readable-dim-states
:fix/casino-holdem-drop-broken-watermark
:fix/casino-holdem-two-tabs
:fix/casino-holdem-unreadable-save
:fix/casino-holdem-say-when-not-saving
:fix/casino-holdem-shortcut-discovery
:fix/casino-holdem-rulings-index-compact
:fix/casino-holdem-rulings-index
:fix/casino-holdem-payout-in-chips
:fix/casino-holdem-move-seat-on-touch
:fix/casino-holdem-amount-fields-select
:fix/casino-holdem-touch-targets-by-pointer
:fix/casino-holdem-button-box-model
:fix/casino-holdem-blind-badge-placement
:fix/casino-holdem-buyin-deals-in
:fix/casino-holdem-bet-vs-raise
:fix/casino-holdem-deal-around-broke
:fix/casino-holdem-settle-up
:fix/casino-holdem-allin-and-bar
:fix/casino-holdem-one-dealer-button
:fix/casino-holdem-manual-deal
:fix/casino-holdem-less-guessing
:feature/casino-holdem-seat-editor
:fix/casino-holdem-landscape-table
:feature/casino-holdem-acting-seat
:feature/casino-holdem-raise-guard
:feature/casino-holdem-first-run
:feature/casino-holdem-contrast-audit
:feature/casino-holdem-layout-audit
:feature/casino-holdem-blind-fairness
:feature/casino-holdem-rulings-depth
:feature/casino-holdem-bank-audit
:feature/casino-holdem-fewer-taps
:feature/casino-holdem-render-perf
:feature/casino-holdem-keyboard-focus
:feature/casino-holdem-resilience
:feature/casino-holdem-messy-tables
:feature/casino-holdem-touch-mobile
:chore/casino-holdem-tech-debt
:feature/casino-holdem-dealer-batch
:feature/casino-holdem-seat-count-safety
:feature/casino-holdem-odd-chip
:feature/casino-holdem-button-moves
:feature/casino-holdem-allin-runout
:feature/casino-holdem-heads-up
:feature/casino-holdem-contrast
:feature/casino-holdem-touch-audit
:feature/casino-holdem-wizard-polish
:feature/casino-quicksplit-side-pots
:feature/casino-holdem-rebuys
:feature/casino-holdem-rulings
:feature/casino-holdem-sidebar-polish
:feature/casino-holdem-keyboard
:feature/casino-holdem-action-undo
:feature/casino-holdem-pace
:feature/casino-holdem-side-pot-breakdown
:feature/casino-holdem-gestures
:feature/casino-holdem-card-picker
:feature/casino-holdem-live-betting
:feature/casino-holdem-bet-chips
:feature/casino-holdem-seat-legibility
:feature/casino-holdem-undo-toasts
:feature/casino-holdem-quick-split
:feature/casino-holdem-mobile-table
:feature/casino-holdem-hand-history
:feature/casino-texas-holdem
:feature/casino-holdem-dealer-mode-polish
:feature/fractional-learned-weights
:fix/stockfish-dispose-hang
:fix/blog-cache-staleness
:fix/workflows
:gitea/workflows
:echo-acoustic-ranging
:chess-ui-overhaul
:feature/customChessEngine
:feature/blog
:AddProject
:feature/generalUpdate
:tech-debt/chess-cleanup
:tests/CreatePlaywrightTests
:UpdateParticleSimulatorButton
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
On a phone the badge marking the big blind wasn't hard to read. It wasn't there — the chip showing their $2 sat on top of it. Stacked on #67.
Both live on the same spoke. Bets sit between a seat and the pot, so on the bottom half of the ring the chip comes down onto the seat's top edge, which is exactly where the badge was — and the chip is a layer above it.
So seats on the bottom of the ring wear their badge underneath instead, on the edge the pot isn't on. And badges now outrank chips regardless, so a layout this doesn't anticipate can't hide one again: which blind a seat is posting is the one thing on that puck nothing else on the felt repeats, while a bet chip's amount is on the seat's own total line as well.
Measured across 20 table sizes — badge area lost to bet chips
Two other placements were measured and rejected. Tucking the badge inside the seat's bottom edge put 38–42% of it on the seat's own stack line at every size including desktop — trading a chip covering the badge for the badge covering the money. Leaving it on top and only raising its z-index worked everywhere, but leaves the badge sitting on the chip rather than clear of it; the z-index is kept as a backstop, the move is what does the work.
What it costs
At 360x640 heads-up the bottom seat's badge moves down into the action bar, where it was visible before. That seat is already substantially behind the bar at that size — the narrow layout reserves scroll room rather than capping the felt, which #63 measured and settled on — but this change is what put the badge there, so I'm saying so rather than leaving it to be found. Every other size and seat count is clean, including 360x640 at six and nine seats.
An instrument note, because it nearly became a finding
Bet chips are
pointer-events: noneabove 900px andautobelow it, soelementFromPointreports them as covering things on a phone and as invisible on a desktop. The 35% figures above are geometric overlap plus a cropped screenshot of the rendered pixels, not hit tests. Three "chip covered by DIV" results I saw earlier were that quirk and are not real.Validation
214 tests still passing; layout audit and contrast clean at 8 sizes × 3 seat counts; no console errors. Before/after crops of the same seat confirm the badge goes from entirely hidden to plainly visible.
On a phone the badge marking the big blind was not hard to read. It was not there. The chip showing their $2 sat on top of it. Both live on the same spoke. Bets sit between a seat and the pot, so on the bottom half of the ring the chip comes down onto the seat's top edge, which is exactly where the badge was -- and the chip is a layer above it. 390x844, six seats: badge 24x12 = 288px², chip covered 196px² of it badge z-index 2, chip z-index 3 the badge's own centre hit-tested as the chip So seats on the bottom of the ring wear their badge underneath instead, on the edge the pot is not on. And badges now outrank chips regardless, so a layout this does not anticipate cannot hide one again: which blind a seat is posting is the one thing on that puck nothing else on the felt repeats, while a bet chip's amount is on the seat's own total line as well. Measured across 20 table sizes -- badge area lost to bet chips: 430x932, 390x844, 360x640 at 2 and 6 seats 35% -> 0% 8 seats 4-12%, unchanged: the blinds land on the top arc there, where the badge was already out of the way desktop and tablet 0% either way, more room Two other placements were measured and rejected. Tucking the badge inside the seat's bottom edge put 38-42% of it on the seat's own stack line at every size including desktop -- trading a chip covering the badge for the badge covering the money. Leaving it on top and only raising its z-index worked everywhere, but leaves the badge sitting on the chip rather than clear of it; the z-index is kept as a backstop, the move is what does the work. What it costs At 360x640 heads-up the bottom seat's badge moves down into the action bar, where it was visible before. That seat is already substantially behind the bar at that size -- the narrow layout reserves scroll room rather than capping the felt, which #63 measured and settled on -- but this change is what put the badge there, so I am saying so rather than leaving it to be found. Every other size and seat count is clean, including 360x640 at six and nine seats. An instrument note, because it nearly became a finding. Bet chips are pointer-events: none above 900px and auto below it, so elementFromPoint reports them as covering things on a phone and as invisible on a desktop. The 35% figures above are geometric overlap and a cropped screenshot of the rendered pixels, not hit tests. Three "chip covered by DIV" results I saw earlier were that quirk and are not real. 214 tests still passing; layout audit and contrast clean at 8 sizes x 3 seat counts; no console errors. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgbPull request closed