E1 / D3 — Einstellungen & Vorräte

5 Design-Variationen · Desktop-first · Routes /settings + /household/staples · Journey J8

Version: 1.0
Screens: E1, D3
Journey: J8
Actor: Planner
Last updated: 2026-04

Two pages, one journey. E1 is the settings hub at /settings — currently a placeholder. D3 is the StaplesManager component at /household/staples, rendered with context="settings". The component uses StapleChip — ingredient pills in flex-wrap grids per category, not a checklist. Five variations explore how the hub and staples editing relate: from navigating to a sub-page, to showing staples inline on the settings page itself. The recommended variation for v1 is V3 (Accordion) — one page, no navigation, staples always one tap away.

Five design variations
V1
Verknüpfte Abschnitte
Settings als Hub-Seite mit klickbaren Abschnitt-Zeilen. Jeder Bereich (Profil, Vorräte, Haushalt) ist eine Zeile mit Titel, Beschreibung, Stat und Pfeil. Tippen navigiert zur jeweiligen Unterseite. Klassisches iOS-Settings-Muster.
Maximal erweiterbar für künftige Settings
Desktop · D3 Vorräte-Unterseite (nach Navigation)

Vorräte

14 von 32 Zutaten als Vorrat markiert
Gemüse
Karotten Zwiebeln Lauch Knoblauch Fenchel Paprika
Getreide & Hülsenfrüchte
Pasta Reis Couscous Linsen Kichererbsen
Design-Entscheidungen
  • Vorräte-Zeile hat einen grünen linken Rand (border-left: 3px solid --green-dark) — signalisiert "primäre Aktion" ohne ihn visuell zu überfrachten.
  • Die aktive Zutat-Zahl ("14") wird als Display-Schrift-Zahl dargestellt — schafft eine Verbindung zum Wert-Versprechen der App (Varietät-Scores sind ebenfalls Zahlen).
  • D3 Unterseite im settings-Kontext: kein Onboarding-Sidebar, kein "Weiter"-Button — nur die Kategorie-Chip-Liste. "← Einstellungen" Breadcrumb für die Rücknavigation.
  • StapleChip: Ausgewählt = --green-dark Hintergrund + weißer Text. Nicht ausgewählt = transparenter Hintergrund + --color-border Rahmen + --color-text-muted Text. Kein separater Speicher-Button — Auto-Save auf Toggle.
V2
Einstellungs-Kacheln
Jeder Einstellungsbereich als Kachel mit Titel, Beschreibung, Schlüsselstatistik und direktem Aktions-Button. Die Vorräte-Kachel zeigt "14 von 32 aktiv" und einen "Bearbeiten"-Button der direkt in den D3-Kontext führt.
Gute Übersicht auf großen Bildschirmen
Desktop · 1200px

Einstellungen

Vorräte
14
von 32 aktiv
Zutaten, die immer im Haushalt vorhanden sind. Sie werden beim Generieren der Einkaufsliste automatisch herausgefiltert.
Haushalt
3
Mitglieder
Familie Raddatz. Haushaltsname und Mitgliederverwaltung.
Profil
Marcel Raddatz
marcel@email.com
Mobile · 390px
Einstellungen
Vorräte
14
von 32
Immer vorhandene Zutaten, automatisch aus Einkaufslisten gefiltert.
Haushalt
3 Mitglieder
Familie Raddatz
Profil
Marcel Raddatz · marcel@email.com
Design-Entscheidungen
  • Kacheln mit Display-Schrift-Zahlen (14, 3) als Schlüsselmetriken — konsistentes Designmuster mit der Varietätspunktzahl im Planer.
  • Der "Vorräte bearbeiten"-Button auf der Kachel führt direkt zur D3-Unterseite. Keine Zwischennavigation.
  • Nachteil gegenüber V3: erfordert einen Navigationswechsel für die häufigste Aufgabe (Vorräte bearbeiten). V3 macht das inline möglich.
V3
Akkordeon mit inline Vorräten
Die Settings-Seite zeigt alle Bereiche als aufklappbare Abschnitte. Der Vorräte-Bereich ist beim Öffnen der Seite standardmäßig aufgeklappt und zeigt direkt die StapleChip-Kategorien. Kein Seitenwechsel nötig.
Empfohlen · v1
Desktop · 1200px — Vorräte aufgeklappt (Standard)

Einstellungen

Tippe eine Zutat an um sie als Vorrat zu markieren oder zu entfernen. Änderungen werden sofort gespeichert.
Gemüse
Karotten Zwiebeln Lauch Knoblauch Fenchel
Getreide
Pasta Reis Couscous Mehl
Mobile · 390px
Einstellungen
Gemüse
Karotten Zwiebeln Lauch Knoblauch
Getreide
Pasta Reis Couscous
Design-Entscheidungen
  • Vorräte-Abschnitt ist beim Öffnen der Seite standardmäßig aufgeklappt (per URL-Hash oder initial state) — der häufigste Grund für diesen Seitenaufruf ist das Bearbeiten von Vorräten.
  • Kein Seitenwechsel zu /household/staples nötig — die StaplesManager-Komponente rendert direkt im Akkordeon-Bereich. Routing-Vorteil: die /settings URL bleibt beim Bearbeiten erhalten.
  • Akkordeon-Trigger zeigt den aktuellen Wert im eingeklappten Zustand (z. B. "14 aktiv", "Marcel Raddatz") — der Nutzer kann den Status scannen ohne aufzuklappen.
  • Auf Mobile perfekt: kein separater "Zurück"-Button nötig. Ein langer Scroll kann mit einem "Nach oben"-Link oder sticky Akkordeon-Headern optimiert werden.
  • Implementierungshinweis: Der aufgeklappte Bereich enthält direkt die StaplesManager-Komponente (<StaplesManager categories={data.categories} context="settings" />). Keine Seiten-Navigation erforderlich.
V4
Einstellungs-Sub-Navigation
Auf Desktop: eine zweite Navigationsleiste links neben dem Inhalt (Profil · Vorräte · Haushalt). Der Vorräte-Abschnitt ist der Standard-Inhalt. Auf Mobile: flache Liste als Einstieg, dann Drill-down.
Skaliert gut bei vielen Settings-Bereichen
Desktop · 1200px — Vorräte als Standardansicht
Einstellungen
Vorräte Profil Haushalt

Vorräte

14 von 32 aktiv
Tippe eine Zutat an um den Vorrats-Status zu ändern. Automatisch gespeichert.
Gemüse
Karotten Zwiebeln Lauch Knoblauch Fenchel Paprika
Getreide
Pasta Reis Couscous Mehl
Mobile · 390px (Drill-down)
Vorräte
14 aktiv
Gemüse
Karotten Zwiebeln Lauch Knoblauch
Getreide
Pasta Reis Couscous Mehl
Design-Entscheidungen
  • Dreifache Navigationsstruktur auf Desktop (App-Sidebar → Settings-Sub-Nav → Inhalt) ist für 3 Einstellungsbereiche Overkill. Skaliert erst ab 6+ Bereichen.
  • Vorrat als Default-Selektion in der Sub-Nav sinnvoll — direktester Einstieg für J8. Verhindert eine "leere Hub"-Seite.
  • Mobile-Drill-down: Sub-Nav-Liste → Unterseite. Entspricht dem Standard-Mobile-Pattern (z. B. iOS Systemeinstellungen). Klare Navigation, aber erfordert eine Zurück-Navigation.
  • Nicht empfohlen für v1: zu viel Struktur für zu wenig Inhalt. V3 (Akkordeon) ist einfacher und erreicht dasselbe Ergebnis ohne Sub-Navigation.
V5
Schnellzugriff-Dashboard
Settings als kleines Dashboard: Haushalt-Zusammenfassung oben (Name + Mitgliederzahl), darunter ein prominenter "Vorräte bearbeiten" Einstieg mit aktuellem Zählstand und zuletzt bearbeiteten Chips als Vorschau. Alles auf einer Seite — kein Drill-down.
Informationsdicht · klarer Schwerpunkt
Desktop · 1200px
MR
Marcel Raddatz
marcel@email.com · Planner
Vorräte
14
von 32 aktiv
Immer vorhandene Zutaten werden automatisch aus Einkaufslisten gefiltert.
Karotten Pasta Zwiebeln Reis +10 weitere
Haushalt
3
Mitglieder · Familie Raddatz
Mobile · 390px
MR
Marcel Raddatz
Planner · Familie Raddatz
Vorräte
14
von 32
Karotten Pasta Zwiebeln +11
Haushalt
Familie Raddatz · 3 Mitglieder
Design-Entscheidungen
  • Chip-Vorschau auf der Hub-Seite (4 aktive Vorräte + "+10 weitere") gibt dem Nutzer sofort Kontext über den aktuellen Zustand — kein Klick nötig um zu verstehen, was konfiguriert ist.
  • Profil-Leiste oben als Identitätsanker: Name, E-Mail, Rolle. Schafft eine klare "Wer bin ich in diesem Haushalt"-Aussage ohne eigene Profil-Seite besuchen zu müssen.
  • 2:1 Grid-Layout auf Desktop betont Vorräte als primäre Einstellung — genau das richtige Gewicht für J8.
  • Nachteil: Der "Alle Vorräte bearbeiten"-Button navigiert trotzdem zur D3-Unterseite (oder öffnet ein Modal). Keine wirklich inline-Bearbeitung wie bei V3. Funktioniert aber gut als Schnellzugriff-Übersicht.

Machine-readable spec — E1 Einstellungen / D3 Vorräte

Authoritative implementation reference for /settings and /household/staples?ctx=settings. Use before building either page.

/* E1 Settings + D3 Staples — implementation rules
 * 1.  Recommended variation: V3 (Accordion). Vorräte section is open by default. No navigation to sub-page required.
 * 2.  D3 = A3: StaplesManager is the same component. context="settings" removes the onboarding sidebar and "Weiter" button.
 * 3.  StapleChip renders as a pill button, NOT a checkbox. Selected = --green-dark bg + white text. Unselected = transparent bg + --color-border border + --color-text-muted text.
 * 4.  Auto-save on toggle. No explicit save button. The component already implements debounced PATCH to /household/staples.
 * 5.  Category label: font-size 10px · font-weight 500 · letter-spacing 0.08em · text-transform uppercase · color --color-text-muted.
 * 6.  Staple count display ("14 von 32 aktiv"): derive from categories prop — count isStaple=true vs total ingredients.
 * 7.  Sidebar active item: "Einstellungen" (not "Vorräte" — there is no separate Vorräte sidebar item). Active style: --green-tint bg + --green-dark text.
 * 8.  Mobile bottom nav active tab: "Einstellungen". Same for both /settings and /household/staples routes.
 * 9.  Accordion trigger shows current stat in collapsed state: "14 aktiv" for Vorräte. Stat updates reactively as user toggles chips.
 * 10. Changes to staples (J8) do NOT retroactively update an already-generated shopping list. If the current list should reflect changes, the planner must regenerate it via J5. Consider a note in the UI: "Gilt ab der nächsten Einkaufsliste."
 * 11. Profile section: show name + email. Edit action navigates to /profile or opens an inline form. Not in scope for J8 — implement minimally.
 */
ElementValue / RuleNotes
StapleChip
Shapeborder-radius: --radius-full · padding: 6px 14pxfont-size: 13px (desktop) · 12px (mobile)
Selected statebackground: --green-dark · color: #fff · font-weight: 500Toggle off: PATCH ingredient isStaple=false
Unselected statebackground: transparent · border: 1px solid --color-border · color: --color-text-muted · font-weight: 400Toggle on: PATCH ingredient isStaple=true
Debounce300ms after last toggle before PATCH firesAlready implemented in StaplesManager. Do not add extra debounce layers.
Error stateRevert chip to previous state · show inline error messageStaplesManager already handles rollback on API error
Category section
Label10px · weight 500 · tracking 0.08em · uppercase · --color-text-mutedGerman category names from API
Chip griddisplay: flex · flex-wrap: wrap · gap: 7px (desktop) · 6px (mobile)No fixed column count — chips wrap naturally
Settings page (E1) — V3 Accordion
Vorräte sectionOpen by default on page loadUse Svelte derived state or URL hash to control. Default open state.
Collapsed statShow "N aktiv" reactively next to chevronDerive from stapleState in StaplesManager — count true values
Accordion trigger min-height48px (desktop) · 44px (mobile)WCAG: interactive controls must have 44px min touch target
Accordion chevron▲ (open) / ▼ (closed) · color: --color-text-mutedOr use CSS transform on a single chevron SVG
Responsive
Desktop (≥1024px)224px app sidebar + content area (max-width ~680px centered)Active sidebar: "Einstellungen" (Haushalt section)
Mobile (<768px)No sidebar · bottom nav "Einstellungen" active · accordion stacks full-widthChips wrap to multiple lines — no truncation