Appearance
Tailwind #58 — Admin spatial (locations, maps, zones, navigation)
| Field | Value |
|---|---|
| GitLab | sourcecontrollers/safecall#58 |
| Parent | #52 |
| Roadmap | tailwind-roadmap.md |
| Depends on | #57 (closed) |
| Workflow | closed |
Goal
Migrate locations, maps, zones, and navigation admin UIs (highest modal density + canvas sidebars) from Bulma to Tailwind catalog + utilities. Pixi canvases stay; chrome around them migrates.
Design principles
- Sidebars / map listing chrome use tokens; avoid Bulma
is-lighttable/tag traps. - Draggable modal overrides in custom CSS should target catalog modal classes, not Bulma-only selectors.
- Keep canvas behavior unchanged.
Acceptance criteria
- [x]
templates/admin/locations/**+locations.tsmigrated - [x]
templates/admin/maps/**+maps.tsmigrated - [x]
templates/admin/zones/**+zones.tsmigrated (all zone/map modals) - [x]
templates/admin/navigation/**+navigation.tsmigrated (floor modals) - [x] Location/placement-adjacent CSS in styles/src css ported to tokens where touched
- [x] Smoke: open location modal; maps CRUD; zones editor chrome; navigation floors
Implementation notes
Zones alone has ~15 templates. Prioritize modal-card / field / button / sidebar patterns. If too large for one window, split zones+navigation vs locations+maps and record in roadmap.
Custom CSS: #locations-page, map listing, modal-draggable — retarget to catalog.
Out of scope
| Work | Issue |
|---|---|
| Eink designer / sensors overview | #59 |
| Placement planner tool page | #60 |
| Drop Bulma | #62 |
Key paths
web/src/templates/admin/{locations,maps,zones,navigation}/**web/src/admin/pages/{locations,maps,zones,navigation}.tsweb/src/lib/canvas.ts(only if it emits Bulma classes for overlays)
Verification
- Web typecheck.
- Smoke spatial flows; confirm canvas still pans/zooms.
- Grep those template dirs for Bulma-only leftovers → 0.
Done when / handoff
- Operator verifies → commit with
Closes #58→ pushgitlab. - Next: #59 admin eink + sensors.