docs(15-02): complete AppLayout CSS foundation + sidebar components plan

This commit is contained in:
Arthur Belleville 2026-05-16 21:43:44 +02:00
parent 9b0d335329
commit 41cf96ae66
No known key found for this signature in database

View file

@ -0,0 +1,87 @@
---
phase: 15-dashboard-tablos
plan: "02"
subsystem: backend/web/templates/css
tags: [css, templ, sidebar, dashboard, wave-1]
dependency_graph:
requires: [15-01]
provides: [AppLayout, DashboardSidebar, SidebarProjectsSection, SidebarOrganizationFooter, app.css]
affects:
- backend/internal/web/ui/app.css
- backend/tailwind.input.css
- backend/templates/app_layout.templ
- backend/templates/app_layout_helpers.go
tech_stack:
added: []
patterns: [templ component composition, CSS design token usage, sidebar nav active state]
key_files:
created:
- backend/internal/web/ui/app.css
- backend/templates/app_layout.templ
- backend/templates/app_layout_helpers.go
modified:
- backend/tailwind.input.css
decisions:
- "SidebarNavIcon implemented inline in app_layout.templ (not extending UIIcon) to avoid cross-package coupling for sidebar-only icons"
- "Tasks/Chat/Files nav items render as non-interactive divs (no href) per D-N02 — visual-only in Phase 15"
- "SidebarOrganizationFooter shows user email as both avatar initial and name; no separate org concept in Phase 15"
- "app.css imports 18 CSS sections ported verbatim from go-backend with all var(--...) tokens preserved"
metrics:
duration: ~15min
completed: "2026-05-16"
tasks_completed: 2
files_modified: 4
---
# Phase 15 Plan 02: AppLayout CSS Foundation + Templ Components Summary
Dashboard shell CSS (sidebar, project-card) ported verbatim from go-backend, plus AppLayout + DashboardSidebar + SidebarProjectsSection + SidebarOrganizationFooter templ components with isActivePath and sidebarPrimaryNavItems helpers — all compile cleanly.
## Tasks Completed
| Task | Name | Commit | Files |
|------|------|--------|-------|
| 1 | Port sidebar + project-card CSS into app.css and register in tailwind | f533d53 | backend/internal/web/ui/app.css, backend/tailwind.input.css |
| 2 | Create app_layout_helpers.go and app_layout.templ with all sidebar sub-components | 9b0d335 | backend/templates/app_layout.templ, backend/templates/app_layout_helpers.go |
## Acceptance Criteria Verification
### Task 1
- `backend/internal/web/ui/app.css` exists with `.dashboard-shell`: PASSED (1 match)
- File contains `.project-card`: PASSED (7 matches)
- File contains `.sidebar-organization`: PASSED (1 match)
- No hard-coded hex colors: PASSED (0 matches)
- `backend/tailwind.input.css` imports app.css: PASSED (1 match)
- `go build ./...` exits 0: PASSED
### Task 2
- `templ generate ./...` exits 0: PASSED
- `go build ./...` exits 0: PASSED
- `app_layout.templ` contains `templ AppLayout(`: PASSED (1 match)
- `app_layout.templ` contains `templ DashboardSidebar(`: PASSED (1 match)
- `app_layout.templ` contains `templ SidebarProjectsSection(`: PASSED (1 match)
- `app_layout.templ` contains `templ SidebarOrganizationFooter(`: PASSED (1 match)
- `app_layout_helpers.go` contains `func isActivePath`: PASSED (1 match)
- `app_layout_helpers.go` contains `func sidebarPrimaryNavItems`: PASSED (1 match)
- `go test ./... -count=1` exits 0 (all existing tests pass): PASSED
## Deviations from Plan
None — plan executed exactly as written.
## Known Stubs
None — this plan delivers CSS and templ components only. No data wiring; AppLayout is ready to be called by handlers in Plan 03.
## Threat Flags
None — CSS and templ component changes only. No new network endpoints or auth paths introduced.
## Self-Check: PASSED
- File exists: backend/internal/web/ui/app.css — FOUND
- File exists: backend/templates/app_layout.templ — FOUND
- File exists: backend/templates/app_layout_helpers.go — FOUND
- Commit f533d53 exists — FOUND
- Commit 9b0d335 exists — FOUND
- templ generate + go build + go test all exit 0 — VERIFIED