Files
wtc.waiswuaschd.de/app/templates/home.html
T

512 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>What To Cook? – Hauptmenü</title>
<link rel="stylesheet" href="/static/cookbook.css?v=4.5.4">
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🍽️</text></svg>">
<style>
/* Styling für das ausgeklappte Menü / Hub Dashboard */
body.home-body {
background-color: var(--grau-bg, #e6e2dc);
background-image: radial-gradient(rgba(30, 77, 59, 0.06) 1px, transparent 1px);
background-size: 20px 20px;
min-height: 100vh;
margin: 0;
padding: 0;
font-family: var(--font-sans);
color: var(--schwarz);
display: flex;
flex-direction: column;
}
.home-header {
background-color: var(--creme);
border-bottom: 2px solid var(--schwarz);
padding: 12px 20px;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
position: sticky;
top: 0;
z-index: 100;
}
.home-brand {
display: flex;
align-items: center;
gap: 12px;
text-decoration: none;
color: inherit;
}
.home-brand-icon {
font-size: 2rem;
filter: drop-shadow(1px 2px 2px rgba(0,0,0,0.15));
}
.home-brand-title {
font-family: var(--font-hand);
font-size: 1.85rem;
font-weight: 700;
color: var(--tannengruen);
margin: 0;
line-height: 1;
}
.home-brand-sub {
font-size: 0.82rem;
color: #666;
margin: 2px 0 0 0;
}
.home-header-nav {
display: flex;
align-items: center;
gap: 10px;
}
.home-header-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background: rgba(30, 77, 59, 0.1);
color: var(--tannengruen);
padding: 6px 12px;
border-radius: 20px;
font-size: 0.85rem;
font-weight: 600;
text-decoration: none;
border: 1px solid rgba(30, 77, 59, 0.2);
}
.home-logout-btn {
color: #777;
text-decoration: none;
font-size: 0.85rem;
padding: 6px 10px;
border-radius: 6px;
transition: all 0.2s;
}
.home-logout-btn:hover {
color: #b00;
background: rgba(200, 0, 0, 0.08);
}
/* Der eigentliche ausgeklappte Menü-Container */
.home-container {
max-width: 1080px;
width: 100%;
margin: 32px auto 48px auto;
padding: 0 16px;
box-sizing: border-box;
flex: 1;
}
/* Menü-Tafel Intro */
.menu-board-intro {
text-align: center;
margin-bottom: 28px;
}
.menu-board-tagline {
font-family: var(--font-hand);
font-size: 1.35rem;
color: var(--altrosa);
margin: 0 0 4px 0;
}
.menu-board-heading {
font-family: var(--font-hand);
font-size: 2.8rem;
color: var(--tannengruen);
margin: 0 0 8px 0;
line-height: 1.1;
}
.menu-board-desc {
font-size: 1rem;
color: #555;
max-width: 620px;
margin: 0 auto;
}
/* Das ausgeklappte Speisekarten-Grid */
.menu-spread {
background: var(--creme);
border: 3px solid var(--schwarz);
border-radius: 16px;
box-shadow: 0 12px 36px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.1);
padding: 32px 28px;
position: relative;
}
.menu-spread::before {
content: '';
position: absolute;
top: 6px; left: 6px; right: 6px; bottom: 6px;
border: 1.5px dashed rgba(30, 77, 59, 0.35);
border-radius: 12px;
pointer-events: none;
}
.menu-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
gap: 22px;
position: relative;
z-index: 2;
}
/* Einzelne Menükarte */
.menu-card {
background: rgba(255, 255, 255, 0.85);
border: 2px solid var(--schwarz);
border-radius: 12px;
padding: 24px 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.12);
transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.2s;
position: relative;
overflow: hidden;
}
.menu-card:hover {
transform: translateY(-4px) scale(1.01);
box-shadow: 6px 8px 0px rgba(0, 0, 0, 0.15);
}
.menu-card.featured {
background: #FFFDF0;
border-color: var(--tannengruen);
border-width: 2.5px;
}
.menu-card-top {
margin-bottom: 18px;
}
.menu-card-icon-wrap {
width: 52px;
height: 52px;
background: var(--creme);
border: 2px solid var(--schwarz);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.8rem;
margin-bottom: 14px;
box-shadow: 2px 2px 0px rgba(0,0,0,0.1);
}
.menu-card-title {
font-family: var(--font-hand);
font-size: 1.7rem;
color: var(--tannengruen);
margin: 0 0 6px 0;
line-height: 1.15;
}
.menu-card-desc {
font-size: 0.92rem;
line-height: 1.45;
color: #4a453f;
margin: 0 0 14px 0;
}
.menu-card-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 12px;
}
.menu-tag {
font-size: 0.76rem;
padding: 3px 8px;
border-radius: 6px;
font-weight: 600;
background: rgba(30, 77, 59, 0.08);
color: var(--tannengruen);
border: 1px solid rgba(30, 77, 59, 0.2);
}
.menu-tag.tag-warning {
background: rgba(210, 155, 155, 0.2);
color: #933;
border-color: rgba(210, 155, 155, 0.4);
}
.menu-card-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
padding: 12px 16px;
font-family: var(--font-sans);
font-size: 1rem;
font-weight: 700;
text-decoration: none;
border-radius: 8px;
border: 2px solid var(--schwarz);
cursor: pointer;
box-sizing: border-box;
transition: all 0.15s ease;
box-shadow: 2px 2px 0px rgba(0,0,0,0.2);
}
.menu-card-btn:active {
transform: translate(2px, 2px);
box-shadow: none;
}
.btn-green {
background: var(--tannengruen);
color: var(--creme);
}
.btn-green:hover {
background: #27624c;
color: #fff;
}
.btn-rose {
background: var(--altrosa);
color: #222;
}
.btn-rose:hover {
background: #daa8a8;
}
.btn-yellow {
background: #FFE885;
color: #4a3e14;
}
.btn-yellow:hover {
background: #ffeb99;
}
.btn-creme {
background: var(--creme);
color: var(--schwarz);
}
.btn-creme:hover {
background: #fff;
}
/* Schnelle Buch-Statistik am Fuß */
.home-footer-stats {
margin-top: 28px;
padding-top: 20px;
border-top: 1.5px dashed rgba(30, 77, 59, 0.3);
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 16px;
text-align: center;
}
.stat-item {
display: flex;
flex-direction: column;
gap: 2px;
}
.stat-val {
font-family: var(--font-hand);
font-size: 1.8rem;
font-weight: 700;
color: var(--tannengruen);
}
.stat-lbl {
font-size: 0.8rem;
color: #666;
text-transform: uppercase;
letter-spacing: 0.5px;
}
@media (max-width: 600px) {
.menu-spread {
padding: 20px 14px;
}
.menu-board-heading {
font-size: 2.2rem;
}
.home-header {
padding: 10px 14px;
}
.home-brand-title {
font-size: 1.5rem;
}
}
</style>
</head>
<body class="home-body">
<!-- Header -->
<header class="home-header">
<a href="/" class="home-brand">
<span class="home-brand-icon">📖</span>
<div>
<h1 class="home-brand-title">What To Cook?</h1>
<p class="home-brand-sub">Privates Kochbuch & Menüplaner</p>
</div>
</a>
<div class="home-header-nav">
<a href="/shopping-list" class="home-header-badge" title="Einkaufsliste aufrufen">
<span>🛒</span>
<span>{% if open_shopping_count > 0 %}{{ open_shopping_count }} offen{% else %}Einkaufsliste{% endif %}</span>
</a>
<a href="/cookbook" class="home-header-badge" title="Direkt ins Kochbuch">
<span>📖</span>
<span>{{ recipe_count }} Rezepte</span>
</a>
<a href="/logout" class="home-logout-btn" title="Abmelden">Abmelden</a>
</div>
</header>
<!-- Hauptbereich: Das ausgeklappte Menü -->
<main class="home-container">
<div class="menu-board-intro">
<div class="menu-board-tagline">✦ Willkommen in deiner Küche ✦</div>
<h2 class="menu-board-heading">Was kochen wir heute?</h2>
<p class="menu-board-desc">
Wähle einen Bereich aus der Menükarte – vom schnellen Zufallsgenerator bis hin zum vollständigen Kochbuch und deiner Einkaufsliste.
</p>
</div>
<div class="menu-spread">
<div class="menu-grid">
<!-- 1. ZUFALLSGENERATOR -->
<div class="menu-card featured">
<div class="menu-card-top">
<div class="menu-card-icon-wrap" style="background: #FFE885;">🎲</div>
<h3 class="menu-card-title">Zufallsgenerator</h3>
<p class="menu-card-desc">
Keine Idee was gekocht werden soll? Bis zu 5 Gerichte nach Aufwand auslosen und direkt in deinen Wochenplan übernehmen.
</p>
<div class="menu-card-tags">
<span class="menu-tag">Hauptgerichte</span>
<span class="menu-tag">Schnelle Auslosung</span>
<span class="menu-tag tag-warning">Ohne Kuchen/Kekse</span>
</div>
</div>
<a href="/cookbook?open=generator" class="menu-card-btn btn-green">
<span>🎲</span> <span>Generator starten</span>
</a>
</div>
<!-- 2. KOCHBUCH -->
<div class="menu-card">
<div class="menu-card-top">
<div class="menu-card-icon-wrap" style="background: #E8F2EC;">📖</div>
<h3 class="menu-card-title">Mein Kochbuch</h3>
<p class="menu-card-desc">
Blättere durch alle 11 Kapitel, finde deine Lieblingsgerichte und nutze die millimetergenaue DIN A4 Buchdruck-Engine.
</p>
<div class="menu-card-tags">
<span class="menu-tag">{{ recipe_count }} Rezepte</span>
<span class="menu-tag">11 Kapitel</span>
<span class="menu-tag">A4 Druckausgabe</span>
</div>
</div>
<a href="/cookbook" class="menu-card-btn btn-creme">
<span>📖</span> <span>Kochbuch aufschlagen</span>
</a>
</div>
<!-- 3. WOCHENMENÜPLAN -->
<div class="menu-card">
<div class="menu-card-top">
<div class="menu-card-icon-wrap" style="background: #F8EFEA;">📅</div>
<h3 class="menu-card-title">Wochenmenüplan</h3>
<p class="menu-card-desc">
Plane die Mahlzeiten der aktuellen Kalenderwoche (Früh, Mittag, Kaffee & Kuchen, Abend) mit schneller Rezept-Live-Suche.
</p>
<div class="menu-card-tags">
<span class="menu-tag">Aktuell: KW {{ current_week }}</span>
<span class="menu-tag">Früh / Mittag / Abend</span>
<span class="menu-tag">Kaffee & Kuchen</span>
</div>
</div>
<a href="/cookbook?open=mealplan" class="menu-card-btn btn-rose">
<span>📅</span> <span>Wochenplan ansehen</span>
</a>
</div>
<!-- 4. EINKAUFSLISTE -->
<div class="menu-card">
<div class="menu-card-top">
<div class="menu-card-icon-wrap" style="background: #FFF9D2;">🛒</div>
<h3 class="menu-card-title">Einkaufsliste</h3>
<p class="menu-card-desc">
Alle benötigten Zutaten aus dem Wochenplan per Klick übernehmen, eigene Notizen hinzufügen und bequem im Supermarkt abhaken.
</p>
<div class="menu-card-tags">
<span class="menu-tag">{% if open_shopping_count > 0 %}{{ open_shopping_count }} offen{% else %}Keine offenen Posten{% endif %}</span>
<span class="menu-tag">Zutatenübernahme</span>
<span class="menu-tag">Mobil optimiert</span>
</div>
</div>
<a href="/shopping-list" class="menu-card-btn btn-yellow">
<span>🛒</span> <span>Zur Einkaufsliste</span>
</a>
</div>
<!-- 5. REZEPT HINZUFÜGEN -->
<div class="menu-card">
<div class="menu-card-top">
<div class="menu-card-icon-wrap" style="background: #F3EBE1;">➕</div>
<h3 class="menu-card-title">Rezept erfassen</h3>
<p class="menu-card-desc">
Füge ein neues Rezept mit Zutatenliste, Zubereitungsschritten, Kochzeit und Portionsangaben zum Kochbuch hinzu.
</p>
<div class="menu-card-tags">
<span class="menu-tag">Zutatenliste</span>
<span class="menu-tag">Portionen</span>
<span class="menu-tag">Foto-Upload</span>
</div>
</div>
<a href="/cookbook?open=new-recipe" class="menu-card-btn btn-creme">
<span>➕</span> <span>Neues Rezept anlegen</span>
</a>
</div>
</div>
<!-- Fußzeile in der Menükarte -->
<div class="home-footer-stats">
<div class="stat-item">
<span class="stat-val">{{ recipe_count }}</span>
<span class="stat-lbl">Gespeicherte Rezepte</span>
</div>
<div class="stat-item">
<span class="stat-val">{{ chapters|length }}</span>
<span class="stat-lbl">Buch-Kapitel</span>
</div>
<div class="stat-item">
<span class="stat-val">KW {{ current_week }}</span>
<span class="stat-lbl">Aktuelle Menüwoche</span>
</div>
<div class="stat-item">
<span class="stat-val">A4</span>
<span class="stat-lbl">Druckfertig gebunden</span>
</div>
</div>
</div>
</main>
</body>
</html>