🌟 Die Crumbforest Crew
Lerne unsere Characters kennen!
{{ character.name }}
{{ character.short }}
# 🏠 Home Template System - Implementation Plan ## 🎯 Ziel **Flexibles Home Template pro Container-Deployment:** - Verwendet **Pico CSS** (statt Tailwind) - **Deployment Config** (JSON) pro Container - **Branko.de Content** als Basis - **Multilingual** (de/en/fr) - **Einfach austauschbar** bei neuem Container --- ## 📁 Struktur ``` compose/ deployment_config.json # Pro Container anpassbar! app/ routers/ home.py # Home routes (/, /about, /crew, etc.) templates/ home/ base_home.html # Base für Home (ohne Auth) index.html # Landing Page about.html # Mission / Wurzeln crew.html # Character Cards hardware.html # Hardware Info software.html # Software Info contact.html # Kontakt / Impressum static/ css/ home_default.css # Standard Home Theme home_forest.css # Wald Theme (dunkel/grün) home_light.css # Hell Theme data/ testimonials.de.json # Testimonials Deutsch testimonials.en.json # English testimonials.fr.json # Français characters.json # Character Definitions assets/ logo.png hero_bg.jpg ``` --- ## 🔧 1. Deployment Config **`compose/deployment_config.json`** ```json { "deployment_id": "crumbforest_main", "deployment_name": "Crumbforest Main", "base_url": "https://branko.de", "home": { "enabled": true, "theme": "forest", "default_lang": "de", "languages": ["de", "en", "fr"], "hero": { "title": "🌳 Crumbforest", "subtitle": "Wo Fragen wachsen. Und jeder Krümel zählt.", "cta_text": "Den Wald entdecken", "cta_link": "#explore" }, "mission": { "title": "🌲 Unsere Wurzeln", "description": "Crumbforest ist ein offenes Lern-Ökosystem mit Kindern, Maschinen und Natur.", "values": [ { "icon": "🦉", "title": "Fragen", "text": "Jedes Kind darf fragen. Wir schützen dieses Recht in jedem Terminal." }, { "icon": "🛠️", "title": "Bauen", "text": "Hands-on Lernen mit Raspberry Pi, Bash, Blockly und mehr." }, { "icon": "🌐", "title": "Verbinden", "text": "Unsere Rollen und APIs bilden ein Resonanz-Netz." } ] }, "sections": { "testimonials": true, "crew": true, "hardware": true, "software": true, "contact": true }, "navigation": [ {"label": "Home", "url": "/", "icon": "🏠"}, {"label": "Mission", "url": "/about", "icon": "🌲"}, {"label": "Crew", "url": "/crew", "icon": "🌟"}, {"label": "Hardware", "url": "/hardware", "icon": "🔧"}, {"label": "Software", "url": "/software", "icon": "💻"}, {"label": "Login", "url": "/de/login", "icon": "🔐"} ], "footer": { "tagline": "Made with 💚 in the Crumbforest", "links": [ {"label": "Impressum", "url": "/impressum"}, {"label": "Datenschutz", "url": "/datenschutz"} ] } }, "features": { "rag_system": true, "diary_system": true, "document_search": true, "roles_web": false } } ``` --- ## 🎨 2. Pico CSS Home Theme **`app/static/css/home_forest.css`** ```css /* Crumbforest Forest Theme - Dark & Green */ :root { --pico-font-family: "Inter", system-ui, sans-serif; /* Forest Colors */ --pico-primary: #10b981; /* Emerald */ --pico-primary-hover: #059669; --pico-primary-focus: rgba(16, 185, 129, 0.125); --pico-background-color: #0f172a; /* Dark Blue-Gray */ --pico-color: #e2e8f0; /* Light Gray */ /* Gradients */ --hero-gradient: linear-gradient(135deg, #064e3b 0%, #10b981 100%); --section-accent: #1e293b; } /* Hero Section */ .hero { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--hero-gradient); text-align: center; padding: 2rem; } .hero h1 { font-size: 4rem; margin-bottom: 1rem; font-weight: 900; } .hero p { font-size: 1.5rem; margin-bottom: 2rem; max-width: 600px; margin-left: auto; margin-right: auto; } .hero .cta-button { background: white; color: black; padding: 1rem 2rem; border-radius: 2rem; font-weight: bold; text-decoration: none; display: inline-block; transition: all 0.3s; } .hero .cta-button:hover { background: #fbbf24; /* Yellow */ transform: scale(1.05); } /* Language Switcher */ .lang-switcher { display: flex; gap: 1rem; justify-content: center; margin-top: 2rem; } .lang-switcher a { background: white; color: black; padding: 0.5rem 1.5rem; border-radius: 2rem; font-weight: bold; text-decoration: none; } /* Mission Section */ .mission { padding: 4rem 2rem; max-width: 1200px; margin: 0 auto; text-align: center; } .mission h2 { font-size: 2.5rem; margin-bottom: 2rem; } .values-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 2rem; text-align: left; } .value-card { background: var(--section-accent); padding: 2rem; border-radius: 1rem; } .value-card h3 { font-size: 1.5rem; margin-bottom: 0.5rem; } /* Character Cards */ .crew-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; padding: 2rem; max-width: 1200px; margin: 0 auto; } .character-card { background: var(--section-accent); padding: 1.5rem; border-radius: 1rem; text-align: center; cursor: pointer; transition: all 0.3s; border: 2px solid transparent; } .character-card:hover { background: var(--pico-primary); transform: translateY(-5px); border-color: var(--pico-primary-hover); } .character-card .icon { font-size: 3rem; margin-bottom: 0.5rem; } /* Modal */ dialog { border-radius: 1rem; border: none; padding: 2rem; max-width: 600px; background: var(--pico-background-color); } dialog::backdrop { background: rgba(0, 0, 0, 0.8); } /* Testimonials */ .testimonials { background: #7c3aed; /* Purple */ padding: 4rem 2rem; text-align: center; } .testimonial-slide { max-width: 800px; margin: 0 auto; padding: 2rem; } .testimonial-slide p { font-size: 1.25rem; font-style: italic; margin-bottom: 1rem; } /* Responsive */ @media (max-width: 768px) { .hero h1 { font-size: 2.5rem; } .hero p { font-size: 1.25rem; } .values-grid { grid-template-columns: 1fr; } } ``` --- ## 🧩 3. Base Home Template **`app/templates/home/base_home.html`** ```html
{{ deployment.home.hero.subtitle }}
{{ deployment.home.hero.cta_text }}{{ deployment.home.mission.description }}
{{ value.text }}
Lerne unsere Characters kennen!
{{ character.short }}