Skip to content

Tailwind #58 — Admin spatial (locations, maps, zones, navigation)

FieldValue
GitLabsourcecontrollers/safecall#58
Parent#52
Roadmaptailwind-roadmap.md
Depends on#57 (closed)
Workflowclosed

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

  1. Sidebars / map listing chrome use tokens; avoid Bulma is-light table/tag traps.
  2. Draggable modal overrides in custom CSS should target catalog modal classes, not Bulma-only selectors.
  3. Keep canvas behavior unchanged.

Acceptance criteria

  • [x] templates/admin/locations/** + locations.ts migrated
  • [x] templates/admin/maps/** + maps.ts migrated
  • [x] templates/admin/zones/** + zones.ts migrated (all zone/map modals)
  • [x] templates/admin/navigation/** + navigation.ts migrated (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

WorkIssue
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}.ts
  • web/src/lib/canvas.ts (only if it emits Bulma classes for overlays)

Verification

  1. Web typecheck.
  2. Smoke spatial flows; confirm canvas still pans/zooms.
  3. Grep those template dirs for Bulma-only leftovers → 0.

Done when / handoff

  1. Operator verifies → commit with Closes #58 → push gitlab.
  2. Next: #59 admin eink + sensors.