diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c19f048..1dfbcc09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ persistence and technical views. - Added widescreen layout guardrails for AI workspaces and regression coverage for project lifecycle, packaged cleanup and the new component boundaries. +- Bounded the 15-theme selector on narrow mobile screens so the primary map + and result flow is no longer displaced by the complete theme inventory. - Hardened the packaged archive command for direct container execution and added a subprocess regression for the documented operator invocation. diff --git a/backend/tests/test_sprint72_mobile_overflow_hardening.py b/backend/tests/test_sprint72_mobile_overflow_hardening.py index 180f3ae3..28522c9e 100644 --- a/backend/tests/test_sprint72_mobile_overflow_hardening.py +++ b/backend/tests/test_sprint72_mobile_overflow_hardening.py @@ -27,6 +27,12 @@ def test_mobile_overflow_hardening_css_contracts() -> None: explorer_mobile_rule = explorer_mobile_css.split(".geo-explorer-layout", 1)[1] assert "display: block;" in explorer_mobile_rule.split("}", 1)[0] + compact_mobile_css = css.rsplit("@media (max-width: 620px)", 1)[1] + compact_theme_rule = compact_mobile_css.split(".geo-theme-list {", 1)[1].split("}", 1)[0] + assert "max-height: 16rem;" in compact_theme_rule + assert "overflow-y: auto;" in compact_theme_rule + assert "overscroll-behavior-y: contain;" in compact_theme_rule + def test_long_identifier_wrapping_contracts() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index b791e168..e30abd08 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -10006,4 +10006,7 @@ Validation: - Live browser inspection found no console errors or document overflow at 3440x1440. Map and Detection workspaces keep a bounded 1,680 px operational canvas, technical disclosures are collapsed and persisted AI internals now - use friendly labels in the ordinary result tables. + use friendly labels in the ordinary result tables. At 390x844 the document + stays within its 375 px client width; the theme inventory is bounded to a + compact scrollable selector so it no longer pushes the map behind all 15 + theme cards. diff --git a/frontend/src/styles/app.css b/frontend/src/styles/app.css index 5a6bfadb..1f509211 100644 --- a/frontend/src/styles/app.css +++ b/frontend/src/styles/app.css @@ -6695,6 +6695,14 @@ section { grid-template-columns: 1fr; } + .geo-theme-list { + max-height: 16rem; + overflow-y: auto; + overscroll-behavior-y: contain; + padding-right: 0.18rem; + scrollbar-gutter: stable; + } + .geo-temporal-summary > div { border-top: 1px solid #e1e8e5; border-left: 0;