Part of #652. Blocks the frame, the hand, and the lobby. No code.
Objective
Get three design decisions made that docs/client-design.md §9 leaves open. Each one changes what
gets built, and none of them can be defaulted by an implementer without inventing product design.
These are questions for the maintainer. An agent picking up this issue should present the
options and the trade-offs and then stop — do not choose.
Decision 1 — the seat bar at the Tall and Short bands
Life must never degrade (§3, "what never degrades"). But a seat bar at 360px wide cannot carry
name + life + library/hand/graveyard/exile counts + status marks + the commander state.
- Proposal in the spec: life and status stay always-visible; zone counts fold into one
expandable control.
- Alternatives: counts move into a per-seat drawer; counts become icon+number with no labels; the
opponent's bar degrades further than yours.
- What it changes:
PlayerPanel.tsx, and whether ZonePanel has a compact form at all.
Decision 2 — where the action affordance sits on touch
Tier 1 requires a fixed, known place to act. On a phone the hand is also tier 1 and also
bottom-anchored, and they compete for the only comfortably reachable region.
- Options: a bar above the hand (matches desktop, costs hand height); a floating primary control
over the hand's edge; the hand collapsing to a peek strip whenever an action is pending.
- What it changes:
ActionDock.tsx, Hand.tsx, and the Short/Tall arrangements in §4.
Decision 3 — the lobby's register
"Styled forms" is not an answer, and the maintainer has said the current lobby needs a complete
redesign. What should the lobby be?
-
A room you walk into (spatial, continuous with the table)
-
A table you sit down at (the table itself, pre-game)
-
A modern client shell (rows, filters, a deck locker — continuous with the deck builder)
-
What it changes: everything in clients/web/src/ui/lobby/, and whether the lobby shares the
scene model or is a conventional responsive layout.
Plan for whoever picks this up
- Present each decision with a concrete mock or ASCII sketch per option — the maintainer has said
design decisions must be made before code, and options are easier to judge drawn than described.
- Record the answers in
docs/client-design.md §9, converting each open question into a stated
rule in the relevant section.
- Close this issue by unblocking the three children that depend on it.
Guard rails
- Do not implement anything. Do not pick a default and proceed.
- Do not widen the question set — three decisions, no more.
Acceptance criteria
Done when
The frame, hand, and lobby issues can be implemented without asking anything.
Part of #652. Blocks the frame, the hand, and the lobby. No code.
Objective
Get three design decisions made that
docs/client-design.md§9 leaves open. Each one changes whatgets built, and none of them can be defaulted by an implementer without inventing product design.
These are questions for the maintainer. An agent picking up this issue should present the
options and the trade-offs and then stop — do not choose.
Decision 1 — the seat bar at the Tall and Short bands
Life must never degrade (§3, "what never degrades"). But a seat bar at 360px wide cannot carry
name + life + library/hand/graveyard/exile counts + status marks + the commander state.
expandable control.
opponent's bar degrades further than yours.
PlayerPanel.tsx, and whetherZonePanelhas a compact form at all.Decision 2 — where the action affordance sits on touch
Tier 1 requires a fixed, known place to act. On a phone the hand is also tier 1 and also
bottom-anchored, and they compete for the only comfortably reachable region.
over the hand's edge; the hand collapsing to a peek strip whenever an action is pending.
ActionDock.tsx,Hand.tsx, and the Short/Tall arrangements in §4.Decision 3 — the lobby's register
"Styled forms" is not an answer, and the maintainer has said the current lobby needs a complete
redesign. What should the lobby be?
A room you walk into (spatial, continuous with the table)
A table you sit down at (the table itself, pre-game)
A modern client shell (rows, filters, a deck locker — continuous with the deck builder)
What it changes: everything in
clients/web/src/ui/lobby/, and whether the lobby shares thescene model or is a conventional responsive layout.
Plan for whoever picks this up
design decisions must be made before code, and options are easier to judge drawn than described.
docs/client-design.md§9, converting each open question into a statedrule in the relevant section.
Guard rails
Acceptance criteria
docs/client-design.md, in the section it belongsto rather than in the open-questions list.
Done when
The frame, hand, and lobby issues can be implemented without asking anything.