tiennm99 bb720327a0 feat(mobile): comfort overhaul - D-pad, gesture blocking, haptics
Add on-screen D-pad (bottom-right) and action stack (UNDO / RESET /
LVLS, bottom-left), shown only on coarse-pointer devices. Hide the
duplicated header actions on touch.

Block iOS/Android browser quirks: pull-to-refresh, double-tap zoom,
long-press selection and callout. Game stays inside the viewport via
overscroll-behavior and per-element touch-action rules; viewport zoom
is left enabled for accessibility.

Add navigator.vibrate wrapper (haptics.pulse) and fire short pulses on
box push and longer pulse on level solve. Silent no-op where the API
is missing.

Reserve room for the bottom controls in computeTileSize on coarse
pointer; raise minTile to 16 for legibility on small phones.
2026-04-27 20:37:27 +07:00
2026-04-20 16:01:04 +07:00
2026-04-20 16:01:04 +07:00
2025-04-26 23:07:35 +07:00
2025-04-26 22:44:57 +07:00

Sokoban

My from-scratch Sokoban game, built with Svelte 5 and Vite. The engine, UI, level parser, and progression system are all my own implementation. The puzzle layouts themselves come from David W. Skinner's freely distributable Microban set — I'm not reusing any of his code, only his level designs.

Play: https://tiennm99.github.io/sokoban/

Features

  • All 155 puzzles from the Microban set, from beginner teasers up to the giant "Take the long way home" maze and "The Dungeon" finale.
  • Paginated level select with progress tracking and best-move record per level.
  • Controls: arrow keys or WASD. U / Z to undo, R to restart, Esc for menu.
  • Undo history, live move counter, animated moves.
  • Progress saved locally in localStorage.
  • Responsive tile sizing so small and large levels both look right.

Development

npm install
npm run dev          # dev server on http://localhost:8080
npm run build        # production build

Project layout

See docs/codebase-summary.md.

Documentation

Credits

License

  • Source code: see LICENSE.
  • Puzzle layouts (Microban): see LICENSE-LEVELS.md — Skinner's free-distribution-with-credit terms, not the main project license.
S
Description
From-scratch Sokoban puzzle game — Svelte 5 + Vite, all 155 Microban levels, undo, progress tracking
Readme Apache-2.0
1.4 MiB
0 Stars 1 Watchers 0 Forks
Languages
Svelte 56.5%
JavaScript 38%
CSS 4.8%
HTML 0.7%