From 9966d8a31f32120175a38deafaf66616d1367e7f Mon Sep 17 00:00:00 2001 From: Matt Calthrop Date: Fri, 3 Apr 2026 12:48:59 +0100 Subject: [PATCH 1/3] =?UTF-8?q?feat(web):=20app=20shell,=20router,=20and?= =?UTF-8?q?=20bread=20+=20complementary=20theme=20(PLAN=20=C2=A74.3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add @solidjs/router with AppShell layout (header, main, footer) and routes / and /recipes/:id. - Home and recipe placeholder pages; remove scaffold counter and App.css. - Global palette: warm bread surfaces, cool slate–teal accents; safe-area padding on #root. - Document shell in apps/web/README; mark PLAN §4.3 complete. Made-with: Cursor --- PLAN.md | 2 +- apps/web/README.md | 4 ++ apps/web/package.json | 1 + apps/web/src/App.css | 22 ------ apps/web/src/App.tsx | 30 +++----- apps/web/src/index.css | 113 +++++++++++++++--------------- apps/web/src/layout/AppShell.css | 82 ++++++++++++++++++++++ apps/web/src/layout/AppShell.tsx | 24 +++++++ apps/web/src/pages/Home.tsx | 12 ++++ apps/web/src/pages/Page.css | 34 +++++++++ apps/web/src/pages/RecipePage.tsx | 18 +++++ pnpm-lock.yaml | 18 ++++- 12 files changed, 259 insertions(+), 101 deletions(-) delete mode 100644 apps/web/src/App.css create mode 100644 apps/web/src/layout/AppShell.css create mode 100644 apps/web/src/layout/AppShell.tsx create mode 100644 apps/web/src/pages/Home.tsx create mode 100644 apps/web/src/pages/Page.css create mode 100644 apps/web/src/pages/RecipePage.tsx diff --git a/PLAN.md b/PLAN.md index 72ad681..34d5703 100644 --- a/PLAN.md +++ b/PLAN.md @@ -27,7 +27,7 @@ Tasks and subtasks for building the bread-recipes app (SolidJS + Python REST + O - [x] **4.1** Scaffold SolidJS + Vite + TypeScript in `apps/web`; **Biome** (lint + format + import organise); Vitest configured; exact dependency versions only; `README.md` for the app. - [x] **4.2** Generate or synchronise typed API usage from the OpenAPI spec (client/types) so API calls stay strictly typed. -- [ ] **4.3** App shell: router, layout, and global styles (clean, minimalist, bread-appropriate palette, responsive). +- [x] **4.3** App shell: router, layout, and global styles (clean, minimalist, bread-appropriate palette, responsive). - [ ] **4.4** Home page: fetch and list bread recipes with overview + thumbnail; navigate to detail on click. - [ ] **4.5** Recipe page: full recipe content and larger image; deep-linkable route (e.g. by id). - [ ] **4.6** MSW for tests; knip configured; Vitest coverage at 100% with a CI gate. diff --git a/apps/web/README.md b/apps/web/README.md index 4fd8012..83b4da6 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -33,6 +33,10 @@ Run from **`apps/web`** (or via **`pnpm --filter web