3.8 KiB
3.8 KiB
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, Padding0 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 onlinein 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:
Jinja2Templatesinmain.pykonfigurierenStaticFilesfürapp/static/mountenGET /liefertindex.htmlmit 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