Files
Calbook/design.md

4.3 KiB
Raw Blame History

design.md Designsystem für das Buchungssystem

Übersicht

Dieses Dokument beschreibt das aktuelle Designsystem von CalBook. Es dient als Referenz für Konsistenz bei Weiterentwicklungen.


1) Produktkontext

Zwei Bereiche:

  1. Kundenansicht (/buchen) Öffentliche Buchungsoberfläche

    • Ablauf: Person wählen → Datum → Uhrzeit → Kontaktdaten → Bestätigung
    • Auto-Scroll zum nächsten Schritt
    • Framer-Motion-Animationen im Success-Screen
  2. Admin-Backend (/admin/*) Interne Verwaltungsoberfläche

    • 9 Seiten: Dashboard, Termine, Kalender, E-Mails, Branding, Rechtliches, Instant Meeting, Backup, Einstellungen
    • Seiten-Layout einheitlich: Sidebar (260px) + Content (max-w-6xl, zentriert)
    • Framer-Motion AnimatedPage-Wrapper für konsistente Page-Transitions

2) Farbstimmung

  • Kundenansicht: slate-50 Hintergrund, indigo-600 als Akzentfarbe
  • Admin: slate-50 Hintergrund, slate-900 für Header/Aktionen, indigo-600 für aktive Elemente
  • Statusfarben: emerald (bestätigt/aktiv), amber (ausstehend/no-show), red (Fehler/storniert)
  • Text: slate-900 (primär), slate-500 (sekundär), slate-400 (deaktiviert)

3) Typografie

  • Schrift: System-UI-Stack (font-sans) via Tailwind
  • Hierarchie: text-3xl font-black (Seitentitel) → text-lg font-bold (Sektionsheader) → text-sm font-medium (Fließtext) → text-xs (Metadaten)
  • Labels: text-xs font-bold uppercase tracking-wider text-slate-500

4) Komponenten

Cards

rounded-2xl border border-slate-200 bg-white shadow-sm

Buttons

  • Primär: bg-slate-900 text-white hover:bg-slate-800 rounded-xl
  • Sekundär: border border-slate-200 bg-white hover:bg-slate-50 rounded-xl
  • Destruktiv: bg-red-600 text-white hover:bg-red-700 rounded-xl

Inputs

h-11 rounded-xl border border-slate-200 bg-slate-50 px-4
focus:border-indigo-600 focus:ring-1 focus:ring-indigo-600

Tabs

rounded-t-2xl border border-b-0 bg-slate-50/80
Aktiv: border-b-2 border-slate-900 bg-white text-slate-900
Inaktiv: text-slate-500 hover:bg-white/50

5) Admin-Layout

  • Desktop: Fixierte Sidebar links (260px), Content rechts (lg:pl-60)
  • Mobile: Topbar mit Burger-Menü, Slide-Over-Navigation
  • Animation: AnimatedPage-Wrapper (framer-motion, key={pathname}) für Page-Transitions
  • Loading: loading.tsx mit Skeleton-Karten, erscheint sofort bei Navigation

6) Navigation

  • Sidebar: 8 Items mit Icons (Dashboard, Termine, Kalender, E-Mails, Branding, Rechtliches, Instant Meeting, Backup, Einstellungen)
  • Bottom: Link zur öffentlichen Buchung + Logout
  • Aktiver Zustand: bg-indigo-50 text-indigo-600

7) Interaktionsmuster

  • Modale/Dialoge: ConfirmDialog-Komponente mit Backdrop, Danger/Default-Variante
  • Inline-Edit: Kalender-Personen bearbeiten direkt in der Zeile statt Modal
  • Expand/Collapse: Chevron-Icons für Detail-Panels (Dashboard-Buchungen, Kalender-Ressourcen)
  • Toast: sonner-Bibliothek, Position top-right, richColors

8) Buchungs-Flow

  • Schritte: 1. Person → 2. Datum → 3. Uhrzeit → 4. Kontaktdaten
  • Auto-Scroll: Nach jeder Auswahl scrollt die Seite zum nächsten Schritt
  • Kalender: Monatsraster mit Verfügbarkeits-Indikatoren
  • Slots: Flexible Buttons, 15-Minuten-Raster
  • Formular: Name, E-Mail, Telefon (optional), Thema (optional)
  • Success: Framer-Motion animierte Bestätigungskarte, ICS-Download, "Weiteren Termin"-Button

9) Email-Templates

  • Event-Typen: 10 Kategorien (Bestätigung, Benachrichtigung, Stornierung, Erinnerungen, Instant Meeting, SMTP-Test)
  • Sidebar: Gruppierte Event-Typ-Auswahl (Buchung/Stornierung/Erinnerungen/Spezial)
  • Live-Vorschau: Immer sichtbar, aktualisiert bei Template-Wechsel
  • Design-Styles: 9 vordefinierte Farbschemas (Minimal, Corporate, Startup, Serif, Mono, Glass, Ink, Warm, Soft)
  • Editor: Inline unter der Template-Liste, Name/Betreff/Inhalt-Felder

10) Backup

  • Export: JSON-Download mit allen Daten (inkl. CalDAV-Key für Re-Encryption)
  • Import: Upload mit Vorschau, Schritt-für-Schritt-Roadmap, Fehler pro Kategorie sichtbar
  • URL-Filter: PUBLIC_URL, NEXTAUTH_URL, APP_BASE_URL werden nicht exportiert/importiert
  • Standalone-Script: scripts/export-backup.sh für ältere Versionen ohne API