From 5ed9291d76196692559be6d3e0daaefbf9500a75 Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Sat, 16 May 2026 18:58:59 +0200 Subject: [PATCH] docs(14): create phase plan for auth pages restyle Two-wave plan: Plan 01 creates foundation (logo assets, full auth.css replacement with animations, auth_components.templ, auth_layout.templ); Plan 02 migrates auth_login.templ and auth_signup.templ to AuthLayout with @ui.FormField inputs and cross-page nav links, closing AUTH-UI-01..03. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .planning/ROADMAP.md | 10 +- .planning/phases/14-auth-pages/14-01-PLAN.md | 276 +++++++++++++++ .planning/phases/14-auth-pages/14-02-PLAN.md | 343 +++++++++++++++++++ 3 files changed, 628 insertions(+), 1 deletion(-) create mode 100644 .planning/phases/14-auth-pages/14-01-PLAN.md create mode 100644 .planning/phases/14-auth-pages/14-02-PLAN.md diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 0e287ea..b1c1410 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -64,6 +64,7 @@ Plans: **Mode:** mvp **Status:** Pending **Requirements:** AUTH-UI-01, AUTH-UI-02, AUTH-UI-03 +**Plans:** 2 plans **Success Criteria:** 1. Login page has gradient background with animated background layer, centered auth card with brand logo, and status banner using design tokens 2. Signup page matches the same visual treatment as login @@ -71,7 +72,14 @@ Plans: 4. All existing auth handler tests pass unchanged 5. Browser walkthrough of login and signup matches the go-backend app.css auth-card design -**User-in-loop:** Share design references (screenshots from JS app) before this phase begins; /frontend-design skill applies them during plan execution. +Plans: +**Wave 1** +- [ ] 14-01-PLAN.md — Auth foundation: logo assets + auth.css replacement + auth_components.templ + auth_layout.templ + +**Wave 2** *(blocked on Wave 1 completion)* +- [ ] 14-02-PLAN.md — Page migration: update auth_login.templ and auth_signup.templ to use AuthLayout + FormField inputs + nav links + browser verify checkpoint + +**User-in-loop:** Browser walkthrough checkpoint in Plan 02 — approve visual result before considering the phase complete. ### Phase 15: Dashboard & Tablos **Goal:** Restyle the layout shell (sidebar + main) and tablo list/dashboard to match the JS app's sidebar + project-card layout. diff --git a/.planning/phases/14-auth-pages/14-01-PLAN.md b/.planning/phases/14-auth-pages/14-01-PLAN.md new file mode 100644 index 0000000..eff979b --- /dev/null +++ b/.planning/phases/14-auth-pages/14-01-PLAN.md @@ -0,0 +1,276 @@ +--- +phase: 14-auth-pages +plan: "01" +type: execute +wave: 1 +depends_on: [] +files_modified: + - backend/static/logo_dark.png + - backend/static/logo_white.png + - backend/internal/web/ui/auth.css + - backend/templates/auth_components.templ + - backend/templates/auth_layout.templ +autonomous: true +requirements: [AUTH-UI-01, AUTH-UI-02, AUTH-UI-03] + +must_haves: + truths: + - "logo_dark.png and logo_white.png exist under backend/static/" + - "`just generate` completes without error after the new templ files are created" + - "auth.css contains all auth card, animated background, gsi-material-button, and animation CSS extracted from go-backend" + - "AnimatedBackground templ component emits exactly 35 .background-logo elements each with a single /static/logo_dark.png img" + - "GoogleButton templ component renders the gsi-material-button structure with the Google SVG and 'Sign in with Google' label" + - "AuthLayout templ component compiles and provides the .login-screen / .card-wrap / .auth-card-shell HTML shell" + artifacts: + - path: "backend/static/logo_dark.png" + provides: "Logo asset for AnimatedBackground and brand header" + - path: "backend/internal/web/ui/auth.css" + provides: "All auth page CSS: layout, animated background, auth card, Google button, animations" + contains: ".gsi-material-button" + - path: "backend/templates/auth_components.templ" + provides: "AnimatedBackground (35 elements), GoogleButton (gsi-material-button), AuthDivider components" + exports: ["AnimatedBackground", "GoogleButton", "AuthDivider"] + - path: "backend/templates/auth_layout.templ" + provides: "Standalone auth page HTML shell with .login-screen wrapper" + exports: ["AuthLayout"] + key_links: + - from: "backend/templates/auth_layout.templ" + to: "backend/templates/auth_components.templ" + via: "@AnimatedBackground() call" + pattern: "AnimatedBackground" + - from: "backend/internal/web/ui/auth.css" + to: "backend/tailwind.input.css" + via: "@import already present from Phase 13" + pattern: "auth.css" +--- + +## Phase Goal + +**As a** user opening the login page, **I want to** see a visually polished auth page with animated background and branded card, **so that** signing in feels like a professional product experience. + + +Create the auth page foundation: copy logo assets, replace auth.css with full auth card + animation CSS from go-backend, and create the new templ components (AnimatedBackground, GoogleButton, AuthDivider, AuthLayout). These artifacts are consumed by Plan 02 when it migrates the existing login/signup pages. + +Purpose: Plan 01 delivers all new files without touching existing pages. Plan 02 (wave 2) wires them in. +Output: logo_dark.png + logo_white.png copied; auth.css replaced (~500 lines); auth_components.templ created (35-element animated bg + Google button + divider); auth_layout.templ created (standalone HTML shell). + + + +@/Users/arthur.belleville/Documents/perso/projects/xtablo-source/.claude/get-shit-done/workflows/execute-plan.md +@/Users/arthur.belleville/Documents/perso/projects/xtablo-source/.claude/get-shit-done/templates/summary.md + + + +@.planning/ROADMAP.md +@.planning/phases/14-auth-pages/14-CONTEXT.md +@.planning/phases/14-auth-pages/14-UI-SPEC.md +@.planning/phases/14-auth-pages/14-PATTERNS.md + + + + +From backend/templates/layout.templ (pattern for AuthLayout): +```go +package templates + +import ( + "backend/internal/auth" + "backend/internal/web/ui" +) + +templ Layout(title string, user *auth.User, csrfToken string) { + + + + + { title } + + + + { children... } + + + +} +``` + +AuthLayout signature (from PATTERNS.md): +```go +templ AuthLayout(title string, csrfToken string) { ... } +// No auth.User param — auth pages are always unauthenticated +// No sortable.min.js or discussion-sse.js — not needed on auth pages +``` + +From go-backend/internal/web/views/auth_components.templ (reference — package name changes): +- AnimatedBackground: 35 .background-logo elements; single img per element (Phase 14 uses logo_dark.png only, no light-only/dark-only pair) +- GoogleButton: accepts (href string, configured bool); when configured,