# Phase 11: UI Enhancements - Context
**Gathered:** 2026-04-15
**Status:** Ready for planning
## Phase Boundary
Improve daily usability of ImpTune with five targeted UI changes: printer editing via modal, better form/list layout separation, client-scoped navigation, dark/light theme toggle, and bilingual FR/EN support. No new backend capabilities — pure frontend/UX improvements on top of the v1.0 base.
## Implementation Decisions
### Printer Edit (UIE-01)
- Edit button added to each row in the Actions column, next to the existing Delete button (small button, labelled "Edit")
- Clicking Edit opens a native HTML `
## Existing Code Insights
### Reusable Assets
- `imptune/templates/base.html`: `` — Pico CSS theme support already wired; just toggle the attribute value
- `imptune/templates/partials/printer_form.html`: HTMX + Alpine.js form with all printer fields — reuse this markup for the edit modal (change form action to PATCH `/printers/{id}`)
- `imptune/templates/partials/printer_list.html`: Actions column already exists with Delete button — Edit button slots in alongside it
- `imptune/static/pico.min.css`: Native `` styling included in Pico CSS; no extra modal library needed
- `imptune/static/app.css`: CSS variables via Pico tokens (`--pico-primary`, `--pico-muted-border-color`) — theme toggle inherits correctly without extra CSS
### Established Patterns
- HTMX for server interactions: targets, swaps, and OOB responses — edit PATCH should follow the same pattern as Delete (refresh `#printer-list` on success)
- Alpine.js for client-side reactivity: `x-data`, `x-model`, `@input` — translation store fits naturally as a global Alpine store
- Jinja2 `{% include %}` for partials — edit modal can be a new partial included in the pages that need it
- No page reloads for list mutations — maintain this pattern for edit (HTMX in-place update)
### Integration Points
- `/printers` route (GET): currently renders form + list — remove form, render list only + "Add Printer" button
- `/printers/new` route (GET): new route, renders the add-printer form page
- `/printers` route (POST): unchanged — still handles printer creation, but now redirects to `/printers` after success
- `/printers/{id}` route (PATCH): new route — handles edit form submission, returns updated printer list HTML
- `/clients/{id}` route (GET): new route — renders client page with filtered printer list
- `base.html`: add top-right controls area (theme icon + language toggle) visible on all pages
## Specific Ideas
- Top-right corner should have both theme icon and FR/EN toggle together as a small control group
- The Add Printer button on `/printers` should feel prominent enough that it's not missed when the form is gone from the page
- Edit modal should feel lightweight — just the fields, a Save button, and a way to close/cancel
## Deferred Ideas
None — discussion stayed within phase scope.
---
*Phase: 11-ui-enhancements*
*Context gathered: 2026-04-15*