From eed5872173a208942a2d9b457caa4bfb4a948873 Mon Sep 17 00:00:00 2001 From: Alexey Dubovskoy Date: Sat, 15 Aug 2026 20:33:29 +0100 Subject: [PATCH 01/42] docs: add web UI design refresh spec and reference mockup --- .../specs/2026-08-15-web-ui-refresh-design.md | 204 +++++++++ .../2026-08-15-web-ui-refresh-mockup.html | 395 ++++++++++++++++++ 2 files changed, 599 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-15-web-ui-refresh-design.md create mode 100644 docs/superpowers/specs/2026-08-15-web-ui-refresh-mockup.html diff --git a/docs/superpowers/specs/2026-08-15-web-ui-refresh-design.md b/docs/superpowers/specs/2026-08-15-web-ui-refresh-design.md new file mode 100644 index 0000000..ea562ed --- /dev/null +++ b/docs/superpowers/specs/2026-08-15-web-ui-refresh-design.md @@ -0,0 +1,204 @@ +# Web UI Design Refresh + +**Date:** 2026-08-15 +**Status:** Approved, ready for planning +**Reference mockup:** [`2026-08-15-web-ui-refresh-mockup.html`](./2026-08-15-web-ui-refresh-mockup.html) — open directly in a browser; the `⇄` button switches between the recipe and list views, `◐` toggles light/dark. + +## Goal + +Refresh the CookCLI web server UI so it is visually consistent, more concise, and pleasant to use on a tablet. The priority use case is **cooking from a recipe on a tablet propped in the kitchen**, but the refresh applies to all pages. + +## Problem + +Measured at 820px viewport width (iPad portrait) and by inventorying the templates: + +### Density + +- Content starts ~370px down the recipe page: a ~100px nav bar, then a title block, a tag row, and one-to-two rows of metadata pills. +- Only ~2.5 method steps and half the ingredient list fit above the fold. +- The recipes index shows ~4 cards per screen; each folder card is ~190px tall to display one word and a count. + +### Layout breaks in the tablet band + +Templates use only the `md` (768px) and `lg` (1024px) breakpoints. Tablet portrait falls in "md but not lg", so it receives desktop-density layout at three-quarters of the width: + +- `recipe.html` applies `grid md:grid-cols-3` at 820px, leaving the ingredient rail ~190px wide. `mozzarella cheese` / `100 grams` wraps onto two lines. +- Action buttons hide their labels below `lg` (`