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
│ ├── 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 9 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).
Im Base-Layout werden CSS-Dateien in dieser Reihenfolge eingebunden:
tokens.css— nur:root-Variablen, keine Selektorenfonts.css—@font-face-Deklarationenshared.css— nur auf Seiten mituseSharedCSSmodule.css— nur auf Seiten mituseModuleCSStools.css— nur auf Seiten mituseToolCSS- zusätzlicher CSS-Inhalt im
headCSS-Block des jeweiligen Templates print.css— separat fürmedia="print"
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 Befehledocs/TOOL_LAYOUT_STRATEGY.mdfür die Typisierung und das gemeinsame Layout-Muster der interaktiven Werkzeuge
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 und Design-Tokens: CSS custom properties in
src/css/tokens.csssind die Source of Truth für Farben, Abstände, Typografie und Komponentenwerte.
- 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