Statische Website zur Psychoedukation für Angehörige von Menschen mit bipolarer Störung. Entwickelt im Rahmen des Projekts der Psychiatrischen Universitätsklinik Zürich (PUK Zürich).
Die Website wird mit Eleventy (11ty) aus dem src/-Verzeichnis nach _site/ gebaut. Quellcode immer in src/ bearbeiten, nie direkt in _site/.
BipolarSite/
├── src/ # Quellverzeichnis (Eleventy-Input)
│ ├── index.njk # Startseite
│ ├── 404.njk # Fehlerseite
│ ├── robots.njk # robots.txt
│ ├── sitemap.njk # sitemap.xml
│ ├── _layouts/
│ │ ├── base.njk # Basis-Layout (alle Seiten)
│ │ └── handout-draft.njk # Layout für Handout-Vorschauen
│ ├── _includes/
│ │ ├── nav-full.njk # Hauptnavigation
│ │ ├── nav-tool.njk # Tool-Rücknavigation
│ │ ├── footer-medium.njk # Footer
│ │ └── community-block.njk # Community-Abschnitt
│ ├── _data/
│ │ └── site.js # Globale Metadaten (URL, Org, Kontakt)
│ ├── css/
│ │ ├── tokens.css # Design-Tokens (CSS custom properties)
│ │ ├── shared.css # Globale Stile (Nav, Layout, Typografie)
│ │ ├── module.css # Modul-spezifische Stile
│ │ ├── tools.css # Tool-spezifische Stile
│ │ ├── print.css # Druckstile
│ │ └── overrides.css # Kaskaden-Overrides (lädt zuletzt)
│ ├── fonts/ # Selbst gehostete WOFF2-Fonts
│ │ └── fonts.css # Font-Face-Deklarationen
│ ├── js/
│ │ └── nav.js # Navigationslogik (Hamburger-Menü etc.)
│ ├── modul/ # Einzelne Psychoedukations-Module (1–8)
│ │ ├── 1/index.njk
│ │ ├── 2/index.njk
│ │ └── …
│ ├── module/ # Übersichtsseite aller Module (/module/)
│ ├── tools/ # Einzelne interaktive Tools
│ │ ├── eisberg/
│ │ ├── phasenverlauf/
│ │ ├── krisenplan/
│ │ ├── komm-trainer/
│ │ ├── saeulen-check/
│ │ ├── selbsttest/
│ │ ├── solidaritaets-chart/
│ │ ├── ee-kreislauf/
│ │ └── durchatmen/
│ ├── werkzeuge/ # Übersichtsseite aller Tools (/werkzeuge/)
│ ├── notfall/ # Notfallhilfe-Seite
│ ├── impressum/ # Impressum
│ ├── handouts/ # Herunterladbare PDFs
│ ├── handout-drafts/ # Handout-Entwürfe (Vorschau, nicht öffentlich)
│ ├── downloads/ # Weitere Downloads
│ ├── visuals/ # Bilder und SVG-Grafiken
│ └── og-image.png # Open Graph-Bild
├── _site/ # Build-Output (von Git ignoriert)
├── .eleventy.js # Eleventy-Konfiguration
├── netlify.toml # Netlify-Konfiguration (Deployment, Header, Caching)
└── package.json
Hinweis zur Namenskonvention: Die ähnlich klingenden Verzeichnisnamen sind bewusst getrennt:
src/modul/enthält die 8 Einzelmodule (je ein Unterordner1/–8/),src/module/ist ausschließlich die Übersichtsseite (/module/).src/tools/enthält die 8 einzelnen interaktiven Tools (je ein Unterordner),src/werkzeuge/ist ausschließlich die Übersichtsseite (/werkzeuge/).Neue Inhalte (Module oder Tools) gehören also immer in
modul/bzw.tools/, nicht in die Übersichtsordner.
git clone https://github.com/christaegger-dot/BipolarSite.git
cd BipolarSitenpm installnpm run serveDer Dev-Server läuft standardmässig auf http://localhost:8080 und lädt bei Änderungen in src/ automatisch neu.
npm run buildAusgabe landet in _site/ (von Git ignoriert).
Die Stylesheets werden in dieser Reihenfolge geladen:
tokens.css— nur:root-Variablen, keine Selektorenfonts.css—@font-face-Deklarationenshared.css— globale Stile, Navigation, Layoutmodule.css— Modul-spezifische Stiletools.css— Tool-spezifische Stile- Inline-
<style>im Template overrides.css— gewinnt durch Kaskadenposition (lädt zuletzt)
overrides.css nutzt !important nur für Inline-style=""-Attribute auf HTML-Elementen. Nicht entfernen.
Die automatischen Prüfungen des Projekts werden durch kurze, reproduzierbare manuelle Browser-Tests ergänzt. Die dafür maßgeblichen Dokumente liegen im docs/-Verzeichnis:
docs/qa-checklist.mdfür den standardisierten Kurztest vor Mergedocs/test-matrix.mdfür priorisierte Geräte-, Browser- und Kernpfad-Abdeckungdocs/release-audit.mdfür den repo-nativen Release-Audit und seine Befehle
Bei Änderungen an Layout, Navigation, Modulseiten, Tool-Seiten oder Notfallpfaden soll vor dem Merge zusätzlich ein frischer Browser-Test durchgeführt werden. Ein Merge bei roter GitHub-CI ist ausgeschlossen.
Für den gebündelten technischen Release-Check steht zusätzlich zur Verfügung:
npm run audit:releaseDie Website wird automatisch über Netlify aus dem main-Branch deployt. Konfiguration: netlify.toml.
- Build-Kommando:
npm install && npx eleventy - Publish-Verzeichnis:
_site - Node-Version: 22
- Security-Header (CSP, X-Frame-Options, …)
- Caching-Regeln für CSS, Fonts, HTML, PDFs
- Static Site Generator: Eleventy (11ty) v2 mit Nunjucks-Templates
- Sprache: Deutsch (
lang="de") - Fonts: DM Serif Display, DM Sans — selbst gehostet als WOFF2
- Farbpalette: Navy
#1C2B3A, Teal#1E656D, Teal-light#8DD4D9, Amber#B45309 - Design-Tokens: CSS custom properties in
src/css/tokens.css
- Repository forken
- Feature-Branch erstellen:
git checkout -b feature/mein-feature - Änderungen in
src/vornehmen (nicht in_site/) - Änderungen committen:
git commit -m "Beschreibung der Änderung" - Branch pushen:
git push origin feature/mein-feature - Pull Request erstellen