efihub/docs/superpowers/specs/2026-04-27-landing-page-design.md

121 lines
3.8 KiB
Markdown
Raw Permalink 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.

# Design Spec: Landing Page & Shared Layout
**Datum:** 2026-04-27
**Status:** Genehmigt
---
## Ziel
Aufbau einer Landing Page mit gemeinsamem Layout-System für alle zukünftigen Seiten des University Process Hub (UPH). Das Layout ersetzt Bootstrap der Vorversion durch Tailwind CSS.
---
## Farbpalette
| Rolle | Farbe | Hex |
|---|---|---|
| Primär / Navbar | TH-Rot | `#e2001a` |
| Hintergrund Seite | Hellgrau | `#f5f5f5` |
| Hintergrund Karten / Navbar-Content | Weiß | `#ffffff` |
| Text primär | Fast-Schwarz | `#1a1a1a` |
| Text sekundär | Mittelgrau | `#666666` |
| Text deaktiviert / Labels | Hellgrau | `#888888` |
| Trennlinien / Borders | Sehr hell | `#e8e8e8` |
| Akzent hover (Karten) | Rot 12% opacity | `rgba(226,0,26,0.12)` |
Kein Dunkelgrau in der Navbar — Rot trägt allein die Markenpräsenz.
---
## Layout-System (Base Template)
**Aufbau jeder Seite (top → bottom):**
```
┌─────────────────────────────────────────┐
│ NAVBAR (rot, 56px) │
│ Logo · Nav-Links · Anmelden-Button │
├─────────────────────────────────────────┤
│ PAGE CONTENT (slot — variabel) │
│ - Hero / Section-Header │
│ - Hauptinhalt │
├─────────────────────────────────────────┤
│ FOOTER (hellgrau, 44px) │
│ Brand · Hochschulname · Version │
└─────────────────────────────────────────┘
```
**Navbar-Details:**
- Hintergrund `#e2001a`
- Logo: `EFIHub` (Hub in 70% Opacity)
- Nav-Links: `rgba(255,255,255,0.85)`, aktiver Link weiß mit weißem Bottom-Border
- Login-Button: Ghost-Style (`rgba(255,255,255,0.15)`, weißer Border)
- Höhe: `56px`, Padding `0 32px`
**Footer:**
- Hintergrund `#f5f5f5`, Border-Top `#e0e0e0`
- Dreispaltiges Layout: Brand | Hochschulname | Version
---
## Landing Page
### Hero-Bereich
- Hintergrund Weiß, Border-Bottom `#e8e8e8`
- Kleines rotes Label oben: `Fakultät EFI · TH Nürnberg`
- H1: `University Process Hub`
- Beschreibungstext (max. 560px Breite)
### Modul-Karten
- 3-spaltiges Grid auf Desktop, responsive (2-spaltig tablet, 1-spaltig mobile)
- Weiße Karten, Border `#e8e8e8`, 3px roter Top-Stripe
- Hover: Schatten `rgba(226,0,26,0.12)`, Border-Farbe `#e2001a`
- Jede Karte: Icon · Name · Kurzbeschreibung · Status-Badge
- Status-Badges: Aktiv (grün), Geplant (grau), + leere Placeholder-Karte (gestrichelt)
### Info-Strip (zwischen Grid und Footer)
- Weiß, Border-Top `#e8e8e8`
- Systeminfos: API-Version, Datenbank-Modus, WebSocket-Status
- Rechts: `● System online` in Rot
---
## Template-Architektur
**Technologie:** Jinja2 (FastAPI-nativ) + Tailwind CSS via Play CDN (kein Build-Step nötig)
**Dateien:**
```
app/
├── templates/
│ ├── base.html # Navbar + Footer + Tailwind-Imports
│ └── index.html # Landing Page (extends base.html)
└── static/ # Für custom CSS / Assets (später)
```
**FastAPI-Integration:**
- `Jinja2Templates` in `main.py` konfigurieren
- `StaticFiles` für `app/static/` mounten
- `GET /` liefert `index.html` mit Modul-Liste aus Config
**Modul-Liste:** Zur Laufzeit aus einer Liste in `config.py` oder einem statischen Dict in `main.py` — kein DB-Zugriff auf der Landing Page.
---
## Responsive Breakpoints
| Breakpoint | Modul-Grid |
|---|---|
| `< 640px` | 1 Spalte |
| `640px 1024px` | 2 Spalten |
| `> 1024px` | 3 Spalten |
---
## Out of Scope
- Authentifizierung (separates Modul)
- Dynamische Modul-Metadaten aus DB
- Dark Mode
- Animationen / Transitions