soroban-abacus-flashcards/apps/web/.claude
Thomas Hallock 1729418dc5 feat(know-your-world): full-screen layout with squish-through pointer lock escape
Implement full-screen, no-scrolling layout for Know Your World game with seamless
pointer lock UX:

## Layout Changes
- Add react-resizable-panels for vertical panel layout (info top, map bottom)
- Wrap playing phase with StandardGameLayout for 100vh no-scroll behavior
- Extract game info (prompt, progress, error) into compact GameInfoPanel
- Map panel fills remaining space with ResizeObserver for dynamic scaling
- SVG uses aspect-ratio to prevent distortion during panel resize

## Pointer Lock UX
- Remove obtrusive "Enable Precision Controls" prompt entirely
- First click silently enables pointer lock (seamless gameplay)
- Cursor squish-through escape at boundaries:
  - 40px dampen zone: movement slows quadratically near edges
  - 20px squish zone: cursor visually compresses (50%) and stretches (140%)
  - 2px escape threshold: pointer lock releases when squished through
- Custom cursor distortion provides visual feedback for escape progress

## Testing
- Unit tests: GameInfoPanel (20+ tests), PlayingPhase (15+ tests)
- E2E tests: Layout, panel resizing, magnifier behavior
- Update vitest config with Panda CSS aliases

## Technical Details
- ResizeObserver replaces window resize listeners for panel-aware updates
- Labels and magnifier recalculate on panel resize
- All magnifier math preserved (zoom, region indicator, coordinate transforms)
- Boundary dampening uses quadratic easing for natural feel
- Squish effect animates with 0.1s ease-out transition

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 21:50:13 -06:00
..
3D_PRINTING_DOCKER.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
ARCADE_ARCHITECTURE.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
ARCADE_ROUTING_ARCHITECTURE.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
ARCADE_SETUP_PATTERN.md
BLOG_EXAMPLES_PATTERN.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
CARD_SORTING_AUDIT.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
CARD_SORTING_MULTIPLAYER_PLAN.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
CARD_SORTING_SPECTATOR_UX.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
CLAUDE.md docs: add merge conflict resolution section to CLAUDE.md 2025-11-17 10:06:09 -06:00
CODE_QUALITY_REGIME.md
COMPLEMENT_RACE_ASSESSMENT.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
COMPLEMENT_RACE_MIGRATION_PLAN.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
COMPLEMENT_RACE_MULTIPLAYER_REVIEW.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
COMPLEMENT_RACE_PROGRESS_SUMMARY.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
COMPLEMENT_RACE_STATE_ADAPTER.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
CONFIGPANEL_REFACTORING_COMPLETE.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
CONFIGPANEL_REFACTORING_PLAN.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
DEPLOYMENT.md docs: document compose-updater detection issue 2025-11-13 12:03:06 -06:00
EDUCATION_ROADMAP.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
ERROR_HANDLING.md feat: add comprehensive error handling for arcade games 2025-11-20 07:31:34 -06:00
GAME_SETTINGS_PERSISTENCE.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
GAME_SETTINGS_REFACTORING.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
GAME_STATS_COMPARISON.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
GAME_THEMES.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
GOOGLE_CLASSROOM_SETUP.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
MANUAL_MIGRATION_0011.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
MATCHING_GAME_STATS_INTEGRATION.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
MERGE_CONFLICT_RESOLUTION.md docs: add comprehensive merge conflict resolution guide 2025-11-17 10:14:36 -06:00
PANDA_CSS_DYNAMIC_TOKENS.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
PER_PLAYER_STATS_ARCHITECTURE.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
PLATFORM_INTEGRATION_ROADMAP.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
PLAYER_OWNERSHIP_CENTRALIZATION_PLAN.md
PLAYING_GUIDE_MODAL_SPEC.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
PROBLEM_GENERATION.md docs: comprehensive problem generation documentation 2025-11-12 09:19:20 -06:00
PROGRESSION_PEDAGOGY.md fix: respect user's layout options (problemNumbers/cellBorders) in mastery mode 2025-11-10 18:53:57 -06:00
RESIZE_HANDLE_TAB_REQUIREMENTS.md feat: add visual grab tab to resize handle with rounded corners 2025-11-12 12:30:21 -06:00
SAVED_WORKSHEETS_PLAN.md saved worksheets plan 2025-11-16 19:54:59 -06:00
SKILL_CONFIGURATION_PLAN.md feat: add database schema for custom skills and skill customizations 2025-11-11 13:30:36 -06:00
SUBTRACTION_BORROWING_BUG_FIX.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
THEME_AUDIT.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
THEME_AUDIT_SUMMARY.txt feat: implement light/dark theme system with semantic tokens 2025-11-07 16:47:04 -06:00
THEME_IMPLEMENTATION_CHECKLIST.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
THEME_IMPLEMENTATION_PLAN.md chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
TUTORIAL_SYSTEM.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
UI_STYLE_GUIDE.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
WORKSHEET_CONFIG_PERSISTENCE.md fix: refactor worksheet config persistence to blacklist approach + Storybook stories 2025-11-13 11:26:36 -06:00
WORKSHEET_GRADING_POSTMORTEM.md fix: respect user's layout options (problemNumbers/cellBorders) in mastery mode 2025-11-10 18:53:57 -06:00
WORKSHEET_GRADING_SPEC_V2.md fix: respect user's layout options (problemNumbers/cellBorders) in mastery mode 2025-11-10 18:53:57 -06:00
WORKSHEET_GRADING_STATUS.md fix: respect user's layout options (problemNumbers/cellBorders) in mastery mode 2025-11-10 18:53:57 -06:00
Z_INDEX_MANAGEMENT.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
settings.local.json feat(know-your-world): full-screen layout with squish-through pointer lock escape 2025-11-22 21:50:13 -06:00