From a2d61be5a6a78d5b0e0f59ecbd867f376ea8106a Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 13:33:26 +0000 Subject: [PATCH] Enhance mario-game UX with explicit instructions and score accessibility Co-authored-by: EiJackGH <172181576+EiJackGH@users.noreply.github.com> --- .Jules/palette.md | 3 +++ requirements.txt | 1 - src/views/mario-game.njk | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.Jules/palette.md b/.Jules/palette.md index 8ee612f..a2998f4 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -12,3 +12,6 @@ ## 2025-03-23 - Game Key Scrolling **Learning:** Browsers natively scroll the page when users press Space or Arrow keys. When building a web-based game, this creates a frustrating UX where the game viewport jumps around while playing. **Action:** Always call `e.preventDefault()` on keydown events for typical game controls ("Space", "ArrowUp", etc.) when the focus is on a game container or the body. +## 2026-05-28 - Interactive Element Instructions in Nunjucks +**Learning:** For game components rendered directly in templates (like `mario-game.njk`) where the keyboard event listeners map to native browser navigation keys (Space/Arrow keys), users often don't instinctively know the custom bindings. +**Action:** Always provide explicit, visible instructional text that tells the user exactly which keys to press, and use CSS (e.g., `pointer-events: none`, `text-shadow`) to ensure the text does not interfere with the game canvas interactions and is legible against background sprites. diff --git a/requirements.txt b/requirements.txt index cfaa995..4ad1501 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ numpy pandas requests -venv diff --git a/src/views/mario-game.njk b/src/views/mario-game.njk index 67b6bd7..6ee1e71 100644 --- a/src/views/mario-game.njk +++ b/src/views/mario-game.njk @@ -52,13 +52,26 @@ font-size: 20px; font-family: Arial; } + + #instructions { + position: absolute; + bottom: 60px; + width: 100%; + text-align: center; + color: white; + font-size: 16px; + font-family: Arial; + text-shadow: 1px 1px 2px black; + pointer-events: none; + }