From fc33746d4caef265703af3fa9834baefbf1f3894 Mon Sep 17 00:00:00 2001 From: timmy Date: Sun, 16 Aug 2026 16:36:49 +0000 Subject: [PATCH] feat: add mobile Plan Today navigation (Closes #975) --- frontend/dashboard.css | 7 ++ frontend/index.html | 12 ++- frontend/mobile-plan-today-nav.js | 104 +++++++++++++++++++++ frontend/service-worker.js | 1 + src/frontend_bundle.py | 2 +- tests/test_mobile_plan_today_navigation.py | 103 ++++++++++++++++++++ tests/test_service_worker.py | 1 + 7 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 frontend/mobile-plan-today-nav.js create mode 100644 tests/test_mobile_plan_today_navigation.py diff --git a/frontend/dashboard.css b/frontend/dashboard.css index 8c48178..980ddc6 100644 --- a/frontend/dashboard.css +++ b/frontend/dashboard.css @@ -201,6 +201,11 @@ textarea { resize: vertical; min-height: 120px; } .plan-today-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; } .plan-today-header h2, .plan-today-header p { margin-top:0; } .plan-today-header button { min-width:44px; min-height:44px; } +.mobile-plan-today-nav { position:sticky; top:0; z-index:5; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin:0 -18px 10px; padding:4px 18px; background:rgba(11,21,38,.98); border-block:1px solid #2a496e; } +.mobile-plan-today-nav button { min-width:0; min-height:44px; padding:4px; border-color:transparent; font-size:12px; } +.mobile-plan-today-nav button[aria-current="location"] { color:#bfdbfe; background:#17365a; border-color:#31577f; } +#plan-today-fit, #plan-today-selected, #plan-today-available-work { scroll-margin-top:54px; } +@media (min-width:601px) { .mobile-plan-today-nav { display:none; } } .plan-today-list button, .plan-today-candidates button { min-height:44px; } .plan-today-capacity { position:sticky; top:0; z-index:2; margin:8px 0; padding:10px 12px; border:1px solid #31577f; border-radius:10px; background:#10233a; font-weight:700; } .plan-today-available { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0; font-weight:700; } @@ -908,6 +913,8 @@ textarea { resize: vertical; min-height: 120px; } .card-planning:not([open]) > .card-planning-actions { display:none; } .card-planning[open] > .card-planning-actions { display:grid; margin-top:8px; } .plan-today-panel { width:100%; border-left:0; padding:14px; } + .mobile-plan-today-nav { margin-inline:-14px; padding-inline:14px; } + .plan-today-capacity { position:static; } .plan-today-item { grid-template-columns:1fr; } .plan-today-item-actions { display:grid; grid-template-columns:repeat(3,1fr); width:100%; } .plan-today-candidate-actions { grid-template-columns:repeat(2,1fr); width:100%; } diff --git a/frontend/index.html b/frontend/index.html index 6a1ca0c..2bcebe1 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -342,6 +342,12 @@

Plan Today

Choose and order the work you want to finish next.

+ +
0 of 5 selected