site: small interaction bugs — sticky filter bar covers 28% of a desktop viewport; arrow keys push history; hash navigation wipes typing; no cap on `q`
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 新手友好度
- 68/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- javascript
- 領域
- frontend
研究方向
Start with site/public/app.js for chip keyboard handling, popstate behavior, and the existing is-collapsed machinery; check site/public/styles.css for sticky controls and anchor offsets. Read site/lib/search.mjs for query parsing and inspect how input updates the URL. Done when the bar is under 100 px on desktop, arrowing across chips adds at most one history entry, hash navigation preserves typing, and q is bounded.
由索引模型根據 Issue 內容生成。
描述
Why it matters
Each one breaks a small expectation: a quarter of the screen should not be a permanent control panel, Back should undo a choice rather than every key press, typing should never be erased, and the URL should not grow without bound.
Evidence (at 69387df, local build)
.controls { position: sticky; top: 0 }(site/public/styles.css:297-299). At 1440x900 while scrolled into the catalog the bar is 252 px tall (283 px with an active-filter row), and--sticky-hdrivesscroll-margin-top(styles.css:1109), so anchor jumps ("Show all", chip links) land 300 px down.site/public/app.js:231-242keydown handler callsapply({ push: true })per arrow press: 5 ArrowRight presses ->history.length+5.app.js:693-697popstate handler runsreadUrl(); syncControls(); apply()on every popstate, which also fires on hash-only navigation (topnav#stacks,#catalog): type "ken" then click#stackswithin the 120 ms debounce -> the search input is emptied.site/lib/search.mjs:117if (p.has("q")) state.q = p.get("q")has no cap; a 4000-character query produced a 4 KB URL and a 4 KB active-filter chip.
Suggested approach
Collapse the controls to one row (search, active chips, a "Filters" disclosure) once scrolled past, using the existing is-collapsed machinery (app.js:773-780) driven by an IntersectionObserver, or make only the search row sticky. Arrows -> apply() (replace) and push only on click/Enter/Space. In popstate, return early when location.search equals the query string last written by writeUrl. Clamp q to about 200 characters in readState and on input.
Done when
The stuck bar is under 100 px on desktop; arrowing across all chips adds at most one history entry; hash navigation never changes the search box; q is bounded.
- 主要語言
- JavaScript
- 星號
- 58
- 分支
- 15
- 平均合併
- 16 小時 53 分鐘
- 30 天內合併 PR
- 14
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
TMHSDigital/Free-Game-Dev-Assets 的其他 Issue
-
community marketing priority: low
難度 2/5 1-3 小時 新手友好度 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
維護者通常 1 天內回覆
-
documentation priority: medium
難度 2/5 1-3 小時 新手友好度 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
維護者通常 1 天內回覆
-
enhancement
難度 1/5 1-3 小時 新手友好度 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 則留言 ·
維護者通常 1 天內回覆
-
marketing priority: low
難度 2/5 1-3 小時 新手友好度 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
維護者通常 1 天內回覆
-
feature priority: medium
難度 5/5 一週以上 新手友好度 25/100
TMHSDigital/Free-Game-Dev-Assets#144 ·
維護者通常 1 天內回覆
查看 TMHSDigital/Free-Game-Dev-Assets 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
維護者通常 1 天內回覆
-
Cloudredirect未關閉
難度 1/5 1 小時以內 新手友好度 70/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 75/100
維護者通常 1 天內回覆
-
0.2.1-rc.3 compatibility: 21 peer ranges enumerate exact versions, so rc.3 is rejected可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 76/100
NanmiCoder/dsh-agent-teams#277 ·
維護者通常 1 天內回覆
-
[ordering-review] workshop order graph: 1 confirmed ordering problem, 3 cycles are false positives未關閉
難度 2/5 1-3 小時 新手友好度 78/100
githubnext/gh-aw-workshop#4943 ·
維護者通常 1 天內回覆