docs: update progress.txt with iteration 42 (Task 10.10 complete — CSS cleanup + polish)

This commit is contained in:
Andrew Charlwood
2026-02-06 22:41:02 +00:00
parent c5b6191a5b
commit 552b949ed9
+52
View File
@@ -2423,3 +2423,55 @@ Console error: `WARN: Multiple implied roots, cannot build icicle hierarchy of t
- If filter_bar is already in the right place, this task may just need verification and minor CSS adjustments per the design spec - If filter_bar is already in the right place, this task may just need verification and minor CSS adjustments per the design spec
### Blocked items: ### Blocked items:
- None - None
## Iteration 42 — 2026-02-06
### Task: 10.10 — CSS updates + polish
### Why this task:
- Task 10.9 (pathway filter relocation) was completed in iteration 41
- Progress.txt from iteration 41 explicitly recommended Task 10.10 as next
- This is a cleanup/polish task: remove dead CSS, add CSS variables, improve responsive behavior
### Status: COMPLETE
### What was done:
- **Removed dead CSS classes** from `dash_app/assets/nhs.css`:
- `.kpi-row`, `.kpi-card`, `.kpi-card--green`, `.kpi-card__label`, `.kpi-card__value`, `.kpi-card__sub` (28 lines) — KPI row replaced by header fraction KPIs in Task 10.3
- `.top-header__breadcrumb` (4 lines) — breadcrumb removed in Task 10.3
- `.filter-select` and `.filter-select:focus` (8 lines) — replaced by dcc.Dropdown with `.filter-dropdown` class
- `.sidebar__item--disabled` (4 lines) — disabled sidebar items removed when restructured to 2-item nav
- **Deleted dead file** `dash_app/components/kpi_row.py` — not imported anywhere since Task 10.3 removed the KPI row
- **Added CSS variables** to `:root`:
- `--sub-header-h: 44px`
- `--header-total-h: 100px` (56px header + 44px sub-header)
- **Updated `.main`** to use `var(--header-total-h)` instead of hardcoded `100px`
- **Updated `.sub-header`** to use `var(--sub-header-h)` instead of hardcoded `44px`
- **Improved responsive rules**:
- `@media (max-width: 1200px)`: tighten header KPI gap, hide KPI labels (numbers-only)
- `@media (max-width: 768px)`: hide header KPIs entirely, wrap pathway-filters, stack TC grids
- Removed dead `.kpi-row` responsive rules at 1024px and 768px breakpoints
- **Verified against design spec** (`docs/PHASE10_DESIGN.md`): all Phase 10 CSS matches spec
- **Note on `01_nhs_classic.html`**: Phase 10 diverges from the original HTML concept. The original file is retained as historical reference but `docs/PHASE10_DESIGN.md` is the current spec.
### Validation results:
- Tier 1 (Code): `from dash_app.app import app` — OK
- Tier 1 (App starts): `python run_dash.py` — OK, no errors
- Tier 2 (Layout): CSS reduced from 542 to 493 lines. All remaining classes actively used.
### Files changed:
- `dash_app/assets/nhs.css` — Removed 5 dead CSS blocks, added 2 CSS variables, updated responsive rules
- `dash_app/components/kpi_row.py` — Deleted (dead code)
- `IMPLEMENTATION_PLAN.md` — Task 10.10 marked [x]
### Committed: c5b6191 "style: clean up dead CSS, add CSS variables, improve responsive rules (Task 10.10)"
### Patterns discovered:
- CSS variable indirection (`--header-total-h`) makes layout math more maintainable than hardcoded pixel values
- Dead CSS accumulates across iterations. Cleanup pass: check every CSS class against `grep -r "classname" dash_app/ --include="*.py"` to find orphans.
### Next iteration should:
- Start Task 10.11 — Final integration + documentation
- Key sub-steps:
1. Verify all views work: Patient Pathways (Icicle + Sankey), Trust Comparison (landing + 6-chart dashboard)
2. Verify global filters (date, chart type) affect both views
3. Verify Patient Pathways filters (drug, trust, directorate) only affect Patient Pathways
4. Verify Trust Comparison directorate selector works for all directorates and indications
5. Verify no regressions in Icicle and Sankey charts
6. Test with both "directory" and "indication" chart types
7. Update CLAUDE.md with new architecture (two views, state management, callback chains)
8. `python run_dash.py` starts cleanly
- This is the FINAL task — if all checks pass, the project is complete
### Blocked items:
- None