Stage 17 docs: round-4 UI (inline profile, double-tap/drag recall, hover-zoom, animated shuffle, lines-off board)
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 29s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 41s
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 29s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 41s
- UI_DESIGN: double-tap recall vs zoom, hover-hold drag auto-zoom, placing & recall rules, grid-lines toggle (gapless checkerboard default), animated shuffle; fix the stale MakeMove/Reset description (direct ✅ button + ↩️ Reset tab, no popover). - FUNCTIONAL (+ru): optional trailing '.' in display names; profile edited inline. - PLAN: robot early band [1,5]→[3,10] (#14); round-4 refinements + deferred #2/#16.
This commit is contained in:
+24
-13
@@ -62,10 +62,17 @@ Login uses `Screen`.
|
||||
that works consistently across browsers; no `transform`, which broke scrolling
|
||||
differently in Safari/Chrome). Labels are sized in `cqw` against the fixed viewport, so
|
||||
they stay a constant size as the cells grow (relatively smaller at higher zoom).
|
||||
**Double-tap** toggles zoom and, on touch, placing a tile auto-zooms in centred on the
|
||||
target; the custom pinch and swipe-to-open-history gestures were dropped because they
|
||||
fight native scroll — history opens from the menu or a tap on the players plaque (below).
|
||||
A **hint** auto-zooms centred on the hint's placement, not the top-left (Stage 17).
|
||||
**Double-tap** an empty/filled cell toggles zoom centred on it; double-tap a **pending**
|
||||
tile recalls it. On touch, placing a tile auto-zooms in centred on the target, and
|
||||
**holding a dragged tile over a cell for ~1 s** auto-zooms there (Stage 17). The custom
|
||||
pinch and swipe-to-open-history gestures stay dropped — they fight both native scroll and
|
||||
the one-finger drag-back gesture; history opens from the menu or a tap on the players
|
||||
plaque (below). A **hint** auto-zooms centred on the hint's placement, not the top-left.
|
||||
- **Placing & recall** (`Game.svelte`): a rack tile is placed by tap-then-tap or by
|
||||
dragging it onto a cell; a pending tile is taken back by a **double-tap** or by **dragging
|
||||
it back onto the rack** (unzoomed board only — when zoomed the one-finger gesture scrolls).
|
||||
A single tap no longer recalls (too easy to trigger); a recalled tile returns to its
|
||||
original rack slot (Stage 17).
|
||||
- **Players plaque & history** (`Game.svelte`, Stage 17): the seats above the board share
|
||||
the width evenly; the seat whose turn it is is **raised** (a drop shadow on its sides)
|
||||
while the others read **sunk in** (an inset shadow). A tap anywhere on the plaque toggles
|
||||
@@ -86,20 +93,24 @@ Login uses `Screen`.
|
||||
- **Bonus-square labels** — a Settings choice (`boardlabels.ts`): `beginner` shows a
|
||||
split `3×` / `word` (localized слово/буква), `classic` a single `3W` / `3С`, `none`
|
||||
nothing. Default **beginner**.
|
||||
- **Grid lines**: the inter-cell gap shows a contrasting `--cell-line` (darker in light,
|
||||
lighter in dark) to avoid a wavy-line optical illusion.
|
||||
- **Grid lines** — a Settings toggle, **default off** (Stage 17). Off: a **gapless
|
||||
checkerboard** — plain cells alternate two shades, and tiles get rounded corners with a
|
||||
soft right-side shadow so adjacent gapless tiles still read apart, reclaiming ~14px of
|
||||
board width. On: the classic lined grid, where the inter-cell gap shows a contrasting
|
||||
`--cell-line` (darker in light, lighter in dark) to avoid a wavy-line optical illusion.
|
||||
|
||||
## Controls
|
||||
|
||||
- **HoldConfirm** (`components/HoldConfirm.svelte`): the shared press-and-hold control. A
|
||||
short tap opens a small popover above the button; a ~0.7 s hold runs the primary action
|
||||
immediately. Reused by:
|
||||
- **MakeMove** (appears when ≥1 tile is pending; the rack collapses its used slots and
|
||||
shifts left to free room): a **🏁** button whose popover offers **Make move ✅** /
|
||||
**Reset ❌**.
|
||||
- **Game tab bar**: 🔄 Draw (disabled when the bag is empty), 🥺 Skip, 🛟 Hint (with a
|
||||
remaining-count badge) — each confirmed by an **Ok ✅** popover; 🔀 Shuffle has no
|
||||
label and no confirm. The under-board slot shows the **Scores: N** preview.
|
||||
immediately. Used by the **Skip** and **Hint** tabs (each confirmed by an **Ok ✅** popover).
|
||||
- **MakeMove / Reset** (Stage 17): when ≥1 tile is pending the rack collapses its used slots
|
||||
and shifts left, a direct **✅** button beside the rack commits the move (no popover), and
|
||||
the 🔀 Shuffle tab is replaced by a **↩️ Reset** tab.
|
||||
- **Game tab bar**: 🔄 Draw (disabled when the bag is empty), 🥺 Skip, 🛟 Hint (with a
|
||||
remaining-count badge, disabled at zero); 🔀 Shuffle (no label, no confirm), which
|
||||
**animates** — tiles hop along a low parabola to their new slots (duration scaled by the
|
||||
distance) with a short haptic shake. The under-board slot shows the **Scores: N** preview.
|
||||
|
||||
## Announcement banner (`components/AdBanner.svelte`, `lib/banner.ts`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user