Print the two shortcuts a dealer had no way to find #76

Closed
jheaps wants to merge 1 commits from fix/casino-holdem-shortcut-discovery into fix/casino-holdem-rulings-index-compact
Owner

Seven keys drive this tool. Five are printed on the control they press — F on Fold, C on Call, R on Raise, ↵ on Deal and on Raise to, esc on Cancel. Two were printed on nothing at all: Stacked on #75.

A   opens the amount pad on All-in
U   takes back the last action

A dealer who learned F, C and R from the buttons had no way to discover the other two existed — and they're the two worth knowing: A is the fastest action in the tool and U is the one that saves a misclick.

Both are on their controls now. The key lookup matches any of a button's classes, so the raise pad's four quick amounts share one class for their looks while only All-in carries a key.

And a legend in the sidebar

All seven with what they do, built from the same list the handlers are keyed off. There's a test that every key in the map has a line in the legend, and that every line names a key that really is bound — a shortcut with no line is one nobody can find, which is the whole bug this fixes.

The panel is hidden on a touch device. A phone has no keys to press, and that's the same pointer: coarse question the touch-target rules ask rather than a guess about width.

One thing I broke and fixed on the way

.actionKey pins itself to the top-right corner of a big action button. The undo control is a 30px pill with overflow: hidden and no positioning context, so the U escaped it and floated above the action bar — visible in the screenshot before I looked properly. It has its own inline class now, checked at six sizes: the cap sits inside the pill and inside the bar, and the pill isn't clipped.

Validation

5 tests (249 total). Driven at six sizes across touch and pointer contexts: the undo pill shows U, the raise pad shows A on All-in and nothing on Min / ½ pot / Pot, the legend lists all seven, and it's display: none on a phone. Contrast clean, layout audit clean but for the landscape phone already documented in #63, no console errors.

Seven keys drive this tool. Five are printed on the control they press — F on Fold, C on Call, R on Raise, ↵ on Deal and on Raise to, esc on Cancel. **Two were printed on nothing at all:** Stacked on #75. ``` A opens the amount pad on All-in U takes back the last action ``` A dealer who learned F, C and R from the buttons had no way to discover the other two existed — and they're the two worth knowing: **A is the fastest action in the tool and U is the one that saves a misclick.** Both are on their controls now. The key lookup matches any of a button's classes, so the raise pad's four quick amounts share one class for their looks while only All-in carries a key. ## And a legend in the sidebar All seven with what they do, **built from the same list the handlers are keyed off**. There's a test that every key in the map has a line in the legend, and that every line names a key that really is bound — a shortcut with no line is one nobody can find, which is the whole bug this fixes. The panel is hidden on a touch device. A phone has no keys to press, and that's the same `pointer: coarse` question the touch-target rules ask rather than a guess about width. ## One thing I broke and fixed on the way `.actionKey` pins itself to the top-right corner of a big action button. The undo control is a 30px pill with `overflow: hidden` and no positioning context, so the U **escaped it and floated above the action bar** — visible in the screenshot before I looked properly. It has its own inline class now, checked at six sizes: the cap sits inside the pill and inside the bar, and the pill isn't clipped. ## Validation **5 tests (249 total).** Driven at six sizes across touch and pointer contexts: the undo pill shows U, the raise pad shows A on All-in and nothing on Min / ½ pot / Pot, the legend lists all seven, and it's `display: none` on a phone. Contrast clean, layout audit clean but for the landscape phone already documented in #63, no console errors.
jheaps added 1 commit 2026-09-01 17:53:15 -06:00
Seven keys drive this tool. Five of them are printed on the control they press -- F on
Fold, C on Call, R on Raise, the return arrow on Deal and on Raise to, esc on Cancel.
Two were printed on nothing at all:

  A   opens the amount pad on All-in
  U   takes back the last action

A dealer who learned F, C and R from the buttons had no way to discover the other two
existed. They are the two worth knowing: A is the fastest action in the tool and U is
the one that saves a misclick.

Both are on their controls now. The key lookup matches any of a button's classes, so
the raise pad's four quick amounts can share one class for their looks while only
All-in carries a key.

And a legend in the sidebar, listing all seven with what they do, built from the same
list the handlers are keyed off. There is a test that every key in the map has a line
in the legend and that every line names a key that really is bound -- a shortcut with
no line is one nobody can find, which is the whole bug this fixes.

The panel is hidden on a touch device. A phone has no keys to press, and it is the
same pointer question the touch-target rules ask rather than a guess about width.

One thing I broke and fixed on the way. .actionKey pins itself to the top-right corner
of a big action button. The undo control is a 30px pill with overflow hidden and no
positioning context, so the U escaped it and floated above the action bar -- visible in
the screenshot before I looked properly. It has its own inline class now, checked at
six sizes: the cap sits inside the pill and inside the bar, and the pill is not
clipped.

5 tests (249 total). Driven at six sizes across touch and pointer contexts: the undo
pill shows U, the raise pad shows A on All-in and nothing on Min, half pot and Pot, the
legend lists all seven, and it is display:none on a phone. Contrast clean, layout audit
clean but for the landscape phone already known from #63, no console errors.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgb
jheaps closed this pull request 2026-09-02 09:57:54 -06:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jheaps/JoshHeaps.Net#76