diff --git a/partials/landing/account/dashboard.php b/partials/landing/account/dashboard.php new file mode 100644 index 0000000..50dc8ee --- /dev/null +++ b/partials/landing/account/dashboard.php @@ -0,0 +1,114 @@ +
+
+
+

Mitgliederbereich

+

Hallo, Papa!

+

Verwalte dein Profil, Kinder, Events und Teilnahmen.

+
+
+ Profil + Kinder + Events + Teilnahmen +
+
+ +
+
+
+
Profil
+

Deine Angaben

+
    +
  • Anzeigename: Papa Alex
  • +
  • Ort: Berlin, 10437
  • +
  • Beruf: Entwickler
  • +
  • Sprachen: Deutsch, Englisch
  • +
+
+ + +
+
+ +
+
Kinder
+

Deine Kids

+
    +
  • Emma, 4 Jahre (weiblich)
  • +
  • Max, 7 Jahre (männlich)
  • +
+
+ + +
+
+ +
+
Teilnahmen
+

Nächste Termine

+
    +
  • Spielplatzrunde – 10.08., Prenzlauer Berg
  • +
  • Erste Hilfe Kids – 20.08., Köln
  • +
+
+ +
+
+
+
+ +
+
+
Eigenes Event
+

Neuen Termin erstellen

+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ +
+
+
+
diff --git a/partials/landing/account/login.php b/partials/landing/account/login.php new file mode 100644 index 0000000..83f82ab --- /dev/null +++ b/partials/landing/account/login.php @@ -0,0 +1,37 @@ +
+
+
+
Login
+

Willkommen zurück

+

Melde dich an, um Events zu erstellen, teilzunehmen und dein Profil zu verwalten.

+
+
+ + +
+
+ + +
+
+ + Passwort vergessen? +
+ +
+

Noch kein Konto? Jetzt registrieren

+
+ + +
+
diff --git a/partials/landing/account/register.php b/partials/landing/account/register.php new file mode 100644 index 0000000..81810d7 --- /dev/null +++ b/partials/landing/account/register.php @@ -0,0 +1,71 @@ +
+
+
+
Registrierung
+

Jetzt Account anlegen

+

Profil anlegen, Kinder optional hinzufügen und Events planen.

+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+

Schon registriert? Zum Login

+
+ + +
+
diff --git a/partials/structure/nav.php b/partials/structure/nav.php index e857454..dd656f9 100644 --- a/partials/structure/nav.php +++ b/partials/structure/nav.php @@ -12,33 +12,33 @@ $isLoggedIn = isset($_SESSION['user_id']);
- Events - Profil - Sicherheit - FAQ + Start + Events + Profil + FAQ - - + Dashboard + Neues Event - - + Anmelden + Kostenlos registrieren
diff --git a/public/assets/css/app.css b/public/assets/css/app.css index 6ed8159..b220736 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -133,3 +133,22 @@ body { .hero { padding: 40px 0; } .section { padding: 48px 0; } } + +/* Auth & Dashboard */ +.auth-wrap { padding: 48px 0; } +.auth-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; } +.auth-card { padding: 22px; } +.auth-aside { background: linear-gradient(135deg, #fdf4e0, #ffffff); border:1px solid var(--color-border); border-radius: var(--radius-md); padding: 24px; box-shadow: var(--shadow-card); } +.auth-logo { width: 140px; margin-bottom: 12px; } +.auth-meta { color: var(--color-muted); font-size: 14px; } +.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; } +.form-grid.single { grid-template-columns: 1fr; } +@media (max-width: 900px){ .auth-grid { grid-template-columns: 1fr; } .form-grid { grid-template-columns: 1fr; } } + +.dash-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; } +.dash-grid-2 { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; } +.dash-card { padding: 18px; } +.dash-list { margin: 0; padding-left: 18px; color: var(--color-muted); display: grid; gap: 6px; } +.dash-section { margin-top: 16px; } +@media (max-width: 1020px){ .dash-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } } +@media (max-width: 760px){ .dash-grid, .dash-grid-2 { grid-template-columns: 1fr; } } diff --git a/public/assets/js/app.js b/public/assets/js/app.js index bc59a38..de28f4b 100644 --- a/public/assets/js/app.js +++ b/public/assets/js/app.js @@ -16,10 +16,15 @@ document.addEventListener('DOMContentLoaded', () => { }); // Header shrink on scroll + let ticking = false; const onScroll = () => { - if (!header) return; - const shouldShrink = window.scrollY > 40; - header.classList.toggle('is-scrolled', shouldShrink); + if (ticking || !header) return; + ticking = true; + window.requestAnimationFrame(() => { + const shouldShrink = window.scrollY > 120; + header.classList.toggle('is-scrolled', shouldShrink); + ticking = false; + }); }; onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); diff --git a/public/page/dashboard.php b/public/page/dashboard.php new file mode 100644 index 0000000..a3d8971 --- /dev/null +++ b/public/page/dashboard.php @@ -0,0 +1,4 @@ +