J3

Cook tonight

Recipe detail → cook mode → mark as cooked. Kitchen context.

C1 → B2 → B4 → C1 · 16px body, 1.75 line-height, wake lock

Recipe detail

B2
V2 Hero header. Desktop: sidebar + full-width hero banner spanning the content area + two-column content below (ingredients left, steps right). The hero fills the horizontal space — it's not a card, it's a page section with a distinct background.
V2 · Hero header — banner CTA, 2-col content on desktop
Mobile · 320px
18:32●●● WiFi 🔋
← Planner
Slow-roasted tomato pasta
45 min Easy Serves 4
Ingredients
500g
Cherry tomatoes
300g
Penne pasta
3 cloves
Garlic
2 tbsp
Olive oil
Steps
1
Preheat oven to 180°C. Halve tomatoes.
2
Drizzle with oil, season, roast 40 min.
3
Cook pasta. Toss with roasted tomatoes and garlic.
Desktop · 1040px
Plan
📅Planner
📖Recipes
🛒Shopping
← Recipes/Slow-roasted tomato pasta
Slow-roasted tomato pasta
45 min Easy Serves 4 Vegetarian Child-friendly
Roasting the tomatoes concentrates their sweetness — great for the kids and easy to batch cook.
Ingredients · 4 items
500g
Cherry tomatoes
300g
Penne pasta
3 cloves
Garlic
2 tbsp
Olive oil
Steps · 3
1
Preheat oven to 180°C. Halve the cherry tomatoes and place cut-side up on a large baking tray.
2
Drizzle generously with olive oil, season with salt and pepper. Roast for 40 minutes until caramelized.
3
Cook pasta according to package. Toss with roasted tomatoes and minced garlic. Serve with fresh basil.

B2 · Recipe detail

/* Desktop: sidebar + topbar (breadcrumb + Edit button) + hero banner (full width, green-tint) + 2-col below.
 * Hero: name Fraunces 28px + tag pills + description + Cook button on the right.
 * Below hero: ingredients (left, border-right) + steps (right). Both panels scroll independently.
 * Hero with image: hero_image_url as bg, 40% dark overlay, text in white.
 * Mobile: hero banner → stacked ingredients → steps.
 * "Start cooking" → B4. "Edit" → B3 in edit mode. */
ElementValueNotes
Desktop hero
LayoutFull content width, green-tint bg, 32px paddingFlex: info left (flex:1) + Cook button right (flex-shrink:0)
NameFraunces 28px/500, green-deeperWith image: #fff on dark overlay
Desktop content below hero
Ingredientsflex:1, 24px padding, border-rightir-row component. Scrolls independently.
Stepsflex:1, 24px paddingNumbered circles (28px) + 14px body text, 1.6 line-height.

Cook mode

B4
V1 Centered step. Full-screen on ALL breakpoints — intentionally no sidebar, no tabs, no nav chrome. Kitchen context doesn't change with screen size. Only the text max-width scales (260→400px). The entire screen body is the tap target.
V1 · Centered step — same layout everywhere. No desktop sidebar. Tap anywhere.
Mobile · Step 2 of 3
18:45●●● WiFi 🔋
✕ Exit
Step 2 of 3
2
Drizzle with olive oil, season generously with salt and pepper. Roast for 40 minutes until caramelized.
Tap anywhere for next step →
Desktop · SAME layout, wider text
✕ Exit
Step 2 of 3
2
Drizzle with olive oil, season generously with salt and pepper. Roast for 40 minutes until caramelized.
Tap anywhere for next step →

B4 · Cook mode · KITCHEN CRITICAL

/* FULL SCREEN on all breakpoints. NO sidebar. NO tabs. NO nav chrome.
 * Body text: EXACTLY 16px, line-height 1.75. NON-NEGOTIABLE.
 * Max text width: 260px mobile, 320px tablet, 400px desktop.
 * Step number: Fraunces 56px mobile, 72px desktop. Green-light.
 * TAP ANYWHERE to advance. Wake lock on enter. Exit = top-left error red.
 * Final step: "Done — mark as cooked" → cooking_log INSERT → C1.
 * This is an EXCEPTION to nav-spec: no sidebar, no breadcrumbs, no tabs. */
ElementValueNotes
Layout — IDENTICAL all breakpoints
Body text16px, line-height 1.75NON-NEGOTIABLE
Max text width260px mobile / 320px tablet / 400px desktopOnly difference between breakpoints
Step numberFraunces 56px mobile / 72px desktop, weight 300, green-lightVisible from arm's length
Tap targetEntire body areaonclick → next step
Wake locknavigator.wakeLock.request('screen')On enter, release on exit/done

LLM Implementation Instructions — J3 Cook Tonight

This section provides structured guidance for code-generating LLMs implementing the J3 journey. Follow these rules exactly.

1. Journey Flow

C1 (today highlight) → B2 (recipe detail) → B4 (cook mode) → C1

2. Screen B2 — Recipe Detail

Mobile layout

Desktop layout

Hero variants

Component details

Navigation

3. Screen B4 — Cook Mode (KITCHEN CRITICAL)

This screen is the single exception to all responsive and navigation patterns in the app.

Layout rules

Topbar

Progress bar

Body

Interaction

Wake lock

4. Critical Feedback Loop

The cooking_log table is the data source for the variety/repetition algorithm used in J2 (meal suggestions). Meals cooked more recently are weighted more heavily in the repetition filter, causing the algorithm to deprioritize them in future suggestions. This means J3's "mark as cooked" action directly makes J2's suggestions smarter over time.

5. Data Operations

ScreenOperationTables
B2READrecipe, recipe_ingredient, ingredient, recipe_step
B4WRITEcooking_log INSERT (recipe_id, cooked_date)

6. Accessibility