From add5c3eb056df264a25c36d4c48810414c9f485c Mon Sep 17 00:00:00 2001 From: oswaldsimona Date: Tue, 21 Apr 2026 13:48:48 +0200 Subject: [PATCH] Anpassungen Startseite, Footer, diversers Styling auf allen Seiten --- assets/icon_Plate.png | Bin 24835 -> 0 bytes assets/icon_add-event.png | Bin 24710 -> 0 bytes assets/icon_register.png | Bin 11343 -> 0 bytes assets/icon_table-dinner-svgrepo-com.svg | 82 ----------- css/event_create.css | 25 +--- css/event_overview.css | 162 +++++---------------- css/index.css | 114 +++++++-------- css/login_signup.css | 60 ++++---- css/my_profil.css | 118 ++------------- css/stylesheet_global.css | 178 +++++++++++++++++++---- data/events.json | 2 +- datenschutz.html | 42 +++--- event_create.html | 42 ++++-- event_detail.html | 33 +++-- event_overview.html | 61 ++++++-- impressum.html | 36 +++-- index.html | 87 +++++------ js/event_create.js | 31 +++- js/event_detail.js | 29 ++-- js/event_overview.js | 28 +++- js/index-carousel.js | 6 +- js/my_profil.js | 71 ++++++--- js/navigation.js | 14 +- login.html | 24 +-- my_profil.html | 54 +++---- signup.html | 24 +-- 26 files changed, 647 insertions(+), 676 deletions(-) delete mode 100644 assets/icon_Plate.png delete mode 100644 assets/icon_add-event.png delete mode 100644 assets/icon_register.png delete mode 100644 assets/icon_table-dinner-svgrepo-com.svg diff --git a/assets/icon_Plate.png b/assets/icon_Plate.png deleted file mode 100644 index 7152cc5d77eea403874e1b597c0b81a97c1f3a6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24835 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 diff --git a/assets/icon_register.png b/assets/icon_register.png deleted file mode 100644 index 513e37692cc87f502393cfa3bef95caeb187874b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11343 zcmeHtS5%Wv@aUHWf{1{CAYDX?0#c+%2bC6@iXtdgklv-EkiSyM5tJ%Ir~yK97k~HRzW&d-_wAmOoNRVyr|s^{?Ciu{FgIk~&%YmnAXbc#o&^LU zK@$n>LxZ2Su%T`6!|ZQ#H4uW>+V;MPF25HyKqp_2zID(gKi8np>o;AX(9lp>4_~i9 z=j;A1vVJ$+^8RY_Ly!oB(K~ZFEPrv_qfXp1e3nf2Xqb!koqn9t$R}{a9nB}oe{c=K zq$H)g#W%W_A&u^=~E|yKS_~XNd}~w zBny(KqumV)3!CrI3(P3;Eo6>JW>85sGvtmqSjS5dT(%>{4F`#pG)CiQ5HrYE`1R<4 z^g4D5Zy5uI2=^e(k)>iZT|eH8j%y?v_)?l!?*}p*++4h@5UcN-8zQh|7J@nZa?yxwKy&;HfSb(C|p2a z^3jt&x(!d~^#|gNSaVpK7=}6PQil#175oZ>hF*>1SIL|u^JHbxCjKFSFe^h`kjq5Q zq?JNO%Jr#19SZ}qdW18Th|iZd7@{DVM036UHx=f7UU~I|D-Hco8OrT3hh4&os^)8$ zN;qihrOX#%h9P&+RlErv@(ep}JCq@h7>viy)=1Zus5ejMQu1 zr%8w5^MHWsdufP&@dinH0As`$cF-C*cBCM7NbW7<-mXa+g?WHXjKd7Wf|ObyM^rCZ z>^I~H$8WP@ggZ^b)`tr2?ZNJIWbIS*RY8ABMc}ax(p>n%)b4ZWjHjSGr)Yn2A$6|#xTb6I?2qCF`Mbn zK0&mgNy9^B;u*Mxazht$pQ2f&E&rFn{v7q4jms#1*pcPqFwk;m$LIwe

Ag}}U`Lb2YlsCGdyKWN%5 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 diff --git a/assets/icon_table-dinner-svgrepo-com.svg b/assets/icon_table-dinner-svgrepo-com.svg deleted file mode 100644 index dc9565d..0000000 --- a/assets/icon_table-dinner-svgrepo-com.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/css/event_create.css b/css/event_create.css index ea1fd10..7fb1c05 100644 --- a/css/event_create.css +++ b/css/event_create.css @@ -49,7 +49,7 @@ width: min(100%, var(--content-width)); margin: 0 auto; display: grid; - gap: var(--space-6); + gap: var(--space-40); } .step-layout--intro { @@ -97,7 +97,7 @@ fieldset { } .intro-card { - padding: var(--space-6); + padding: var(--space-40); border-radius: 1.75rem; background: linear-gradient(135deg, var(--color-surface), var(--color-surface-soft)); } @@ -209,7 +209,7 @@ textarea:focus { .option-card { position: relative; display: grid; - padding: var(--space-31); + padding: var(--space-20); border: 1.5px solid var(--olive-light); border-radius: var(--radius-md); background: var(--butter-light); @@ -444,28 +444,11 @@ textarea:focus { justify-content: center; } -.gallery-add-btn { - width: 5.5rem; - height: 5.5rem; - border: 2px dashed var(--color-border-strong); - border-radius: var(--radius-sm, 0.5rem); - background: transparent; - font-size: 2rem; - color: var(--color-muted); - cursor: pointer; - flex-shrink: 0; - transition: border-color 0.15s, color 0.15s; -} - -.gallery-add-btn:hover { - border-color: var(--olive); - color: var(--olive); -} .site-footer { width: min(100% - 2rem, var(--max-width)); margin: 0 auto; - padding: var(--space-5) 0 var(--space-6); + padding: var(--space-5) 0 var(--space-40); color: var(--color-muted); text-align: center; } diff --git a/css/event_overview.css b/css/event_overview.css index 196a1a6..4c70889 100644 --- a/css/event_overview.css +++ b/css/event_overview.css @@ -4,26 +4,15 @@ Shared Typography Tokens Reuse common text styles across nav, controls and buttons --------------------------------------------------------- */ -.nav-link, -.login-pill, -.category-item, + + .meta-filter select, .meta-filter input[type="date"], -.btn-primary, -.empty-state-btn, .detail-primary-btn { - font-family: "Jost", sans-serif; - font-size: 17px; - font-weight: 500; - letter-spacing: var(--ls-ui); -} - -.event-date-time, -.event-location { - color: var(--olive); - font-size: 18px; - font-weight: 400; - line-height: 1.3; + font-family: var(--font-main); + font-size: 1.125rem; + line-height: 1; + color: var(--black); } /* Heading hierarchy: page title > detail title > card title > section title */ @@ -54,17 +43,15 @@ --------------------------------------------------------- */ .filter-label { margin: 0 0 var(--space-1); - color: var(--olive); - font-size: 18px; letter-spacing: var(--ls-la); } .filter-row { display: flex; - align-items: flex-end; + align-items: center; justify-content: space-between; gap: var(--space-3); - margin-bottom: var(--space-6); + margin-bottom: var(--space-2); } .category-group { @@ -75,26 +62,15 @@ flex: 1; } -.category-item { +.event-tag { border: 1.5px solid var(--tomato); - border-radius: var(--radius-pill); - background: var(--butter-light); color: var(--tomato); - line-height: 1.3; - padding: var(--space-1) var(--space-31); - min-height: 40px; - cursor: pointer; - transition: background-color 0.2s ease, color 0.2s ease; -} - -.category-item:hover { - background: var(--tomato); - color: var(--butter-light); -} - -.category-item.active { - background: var(--tomato); - color: var(--butter-light); + border-radius: var(--radius-pill); + font-family: var(--font-main); + font-weight: 400; + font-size: 1rem; + line-height: 1; + padding: var(--space-1) var(--space-20); } .meta-filter-group { @@ -114,48 +90,43 @@ .meta-filter select, .meta-filter input[type="date"] { - border: 1.5px solid var(--tomato); + border: 1.5px solid var(--olive); border-radius: var(--radius-sm); background: var(--butter-light); - color: var(--black); - padding: var(--space-1) var(--space-4); - min-height: 40px; - height: 40px; + height: 37px; + padding: 0 var(--space-4); box-sizing: border-box; } -/* + .meta-filter select:focus, .meta-filter input[type="date"]:focus { - outline: 2px solid rgba(107, 107, 5, 0.35); - outline-offset: 1px; -}*/ + border: 1.5px solid var(--olive-dark); + outline: 2px solid var(--butter); +} .meta-filter input[type="date"] { color-scheme: light; - accent-color: var(--tomato); + accent-color: var(--olive-dark); } .meta-filter input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; - border-radius: 4px; - padding: 4px; - filter: invert(35%) sepia(60%) saturate(600%) hue-rotate(22deg) brightness(90%) contrast(95%); + filter: invert(8%) sepia(5%) saturate(300%) hue-rotate(10deg) brightness(10%) contrast(95%); transition: background-color 0.2s ease; } .meta-filter input[type="date"]::-webkit-calendar-picker-indicator:hover { - background-color: var(--olive-light); + filter: brightness(0.8); } .meta-filter select { cursor: pointer; - appearance: none; -webkit-appearance: none; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B6B05' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='currentColor' stroke-width='1.5' fill='none' stroke-linecap='butt' stroke-linejoin='miter'/%3E%3C/svg%3E"); background-repeat: no-repeat; - background-position: right 12px center; - padding-right: 36px; + color: var(--black); + background-position: right var(--space-4) center; } /* --------------------------------------------------------- @@ -164,7 +135,7 @@ .event-list { display: flex; flex-direction: column; - gap: 18px; + gap: var(--space-3); } .event-card { @@ -172,11 +143,9 @@ background: var(--butter-light); border: 1.5px solid var(--olive-light); border-radius: var(--radius-lg); - padding: var(--space-5) var(--space-6); + padding: var(--space-5) var(--space-40); display: flex; - /*justify-content: space-between; - align-items: flex-start;*/ - gap: var(--space-6); + gap: var(--space-40); cursor: pointer; transition: box-shadow 0.2s ease, transform 0.2s ease; } @@ -232,7 +201,7 @@ font-weight: 400; font-size: 1rem; line-height: 1; - padding: var(--space-1) var(--space-31); + padding: var(--space-1) var(--space-20); } .event-spec-chip { @@ -311,9 +280,8 @@ padding: 42px var(--space-5); border: 2px solid var(--olive-light); border-radius: var(--radius-lg); - background: rgba(255, 255, 255, 0.92); + background: var(--butter-light); margin-top: 8px; - box-shadow: 0 3px 12px rgba(102, 52, 13, 0.08); } .empty-state-kicker { @@ -345,19 +313,6 @@ text-decoration: none; } -.empty-state-btn { - border: 0; - border-radius: var(--radius-pill); - background: var(--olive); - color: var(--butter-light); - font-weight: 600; - padding: 10px 22px; - cursor: pointer; -} - -.empty-state-btn:hover { - filter: brightness(0.95); -} /* --------------------------------------------------------- Detail Page @@ -367,29 +322,9 @@ gap: 14px; } -.detail-back { - display: inline-flex; - align-items: center; - justify-content: flex-start; - gap: var(--space-1); - width: fit-content; - color: var(--tomato); - text-decoration: none; - font-family: "Jost", sans-serif; - font-size: 17px; - font-weight: 500; - letter-spacing: var(--ls-none); - line-height: 1.2; -} - -.detail-back span { - font-size: 24px; - line-height: 1; -} - .detail-hero { display: grid; - margin-bottom: var(--space-6); + margin-bottom: var(--space-40); } .detail-top-row { @@ -414,7 +349,7 @@ display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "side gallery"; - gap: var(--space-6); + gap: var(--space-40); align-items: stretch; } @@ -460,7 +395,7 @@ font-size: 1rem; line-height: 1; letter-spacing: var(--ls-la); - padding: var(--space-1) var(--space-31); + padding: var(--space-1) var(--space-20); } .detail-gallery { @@ -661,9 +596,9 @@ box-shadow: var(--shadow-interaction); padding: var(--space-4) var(--space-5); - margin-top: var(--space-6); + margin-top: var(--space-40); position: sticky; - bottom: var(--space-6); + bottom: var(--space-40); z-index: 100; } @@ -844,10 +779,6 @@ font-size: 15px; } - .category-item { - font-size: 15px; - padding: 8px 14px; - } .meta-filter { min-width: 155px; @@ -861,23 +792,6 @@ height: 38px; } - .event-card { - flex-direction: column; - align-items: stretch; - gap: 16px; - padding: 22px 20px 20px; - } - - .event-date-time, - .event-location, - .event-spots { - font-size: 18px; - } - - .event-side { - padding-top: 0; - justify-content: space-between; - } .event-side-full { justify-content: flex-end; diff --git a/css/index.css b/css/index.css index 3fd3f51..aec4272 100644 --- a/css/index.css +++ b/css/index.css @@ -127,33 +127,43 @@ display: flex; flex-direction: column; align-items: center; - gap: 12px; - padding: 28px 20px; - background: var(--white); - border-radius: 28px; - box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06); + padding: var(--space-40); + background: var(--butter-light); + border-radius: var(--radius-lg); } -.how-step--numbered { +.how-step-number-numbered { position: relative; } -.how-step__corner-number { +.how-step_corner-number { position: absolute; - top: 12px; - left: 16px; - font-size: 2.2rem; - font-weight: 700; + color: var(--butter-light); + background: var(--tomato); + border-radius: var(--radius-lg); + top: var(--space-20); + left: var(--space-20); + width: 44px; + height: 44px; + + display: flex; + align-items: center; + justify-content: center; + + font-family: 'Bagel Fat One'; + font-size: 1.5rem; + font-weight: 400; + color: var(--butter-light); } -.how-step__corner-number--brown { +.how-step_corner-number--brown { color: var(--brown); } -.how-step__icon { - font-size: 2.4rem; +.how-step_icon { + font-size: 3.5rem; color: var(--brown); - margin-top: 12px; + margin: var(--space-4) 0; } .how-step__png { @@ -166,24 +176,14 @@ filter: brightness(0) saturate(100%) invert(18%) sepia(56%) saturate(2800%) hue-rotate(16deg) brightness(92%) contrast(95%); } -.how-step__label { - margin: 0; - font-size: 0.95rem; - line-height: 1.6; - font-weight: 400; - color: var(--black); +.how-step_text { + margin-bottom: var(--space-4); text-align: center; } -.how-step__label--brown { - color: var(--brown); +.text-left{ + text-align: left; } - -.how-step__label--big { - font-size: 1.25rem; - font-weight: 700; -} - .how-step__footer-pill { margin-bottom: 4px; } @@ -246,77 +246,71 @@ .gallery__arrow { position: absolute; - top: 50%; - transform: translateY(-50%); + display: grid; + top: 45%; width: 44px; height: 44px; - display: grid; + border: 1.5px solid var(--butter-light); + background: var(--butter-light); + border-radius: var(--radius-lg); + font-family: var(--font-main); + font-weight: 400; + font-size: 1.25rem; place-items: center; - border-radius: 50%; - background: rgba(0, 0, 0, 0.35); - backdrop-filter: blur(4px); - border: 2px solid rgba(255, 255, 255, 0.4); - color: var(--white); - cursor: pointer; - font-size: 1.2rem; - text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - transition: background 0.2s ease, transform 0.2s ease; z-index: 2; + color: var(--olive); + cursor: pointer; + text-decoration: none; + transition: background-color 0.2s ease, border-color 0.2s ease; } -.gallery__arrow:hover { - background: rgba(0, 0, 0, 0.55); - transform: translateY(-50%) scale(1.1); -} +.gallery__arrow:hover, .gallery__arrow:focus-visible { - outline: 2px solid var(--brown); - outline-offset: 3px; + border: 1.5px solid var(--butter); + background: var(--butter); } .gallery__arrow--prev { - left: 12px; + left: var(--space-4); } .gallery__arrow--next { - right: 12px; + right: var(--space-4); } /* --- Carousel dot indicators --- */ -.gallery__dots { +.gallery_dots { display: flex; justify-content: center; gap: 10px; padding: 12px 0 8px; } -.gallery__dot { +.gallery_dot { width: 12px; height: 12px; border-radius: 50%; - border: 2px solid var(--brown); + border: 2px solid var(--olive); background: transparent; cursor: pointer; padding: 0; transition: background 0.25s ease, transform 0.2s ease; } -.gallery__dot:hover { - background: rgba(102, 52, 13, 0.3); +.gallery_dot:hover, +.gallery_dot--active { + background: var(--olive);; transform: scale(1.2); } -.gallery__dot:focus-visible { - outline: 2px solid var(--brown); +.gallery_dot:focus-visible { + outline: 2px solid var(--olive); outline-offset: 3px; } -.gallery__dot--active { - background: var(--brown); -} - @media (max-width: 900px) { .gallery__track { gap: 16px; diff --git a/css/login_signup.css b/css/login_signup.css index 3b204d7..f2131db 100644 --- a/css/login_signup.css +++ b/css/login_signup.css @@ -128,7 +128,7 @@ button[type="submit"]:active { background-color: var(--butter-light); border-left: 4px solid var(--olive); padding: var(--space-3); - margin-bottom: var(--space-6); + margin-bottom: var(--space-40); border-radius: 4px; font-size: 0.9rem; color: var(--black); @@ -178,31 +178,12 @@ button[type="submit"]:active { align-items: center; } -.modal-content { - background-color: var(--white); - padding: 40px; - border-radius: var(--radius-lg); - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); - max-width: 500px; - width: 90%; - text-align: center; - animation: slideIn 0.3s ease; -} @keyframes slideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } -.modal-header { - position: relative; - margin-bottom: var(--space-4); -} - -.modal-header h2 { - color: var(--olive); - font-size: 1.5rem; -} .close-btn { position: absolute; @@ -220,13 +201,6 @@ button[type="submit"]:active { justify-content: center; } -.modal-body { - color: var(--black); - font-size: 1rem; - line-height: 1.6; - margin-bottom: var(--space-6); -} - .modal-footer { display: flex; gap: var(--space-2); @@ -253,13 +227,14 @@ button[type="submit"]:active { /* --- Footer --- */ + .footer { - display: flex; - justify-content: center; - align-items: center; - padding: var(--space-3) var(--space-5); - border: none; - margin-top: 40px; + display: grid; + grid-template-columns: 1fr auto 1fr; + align-items: center; + padding: var(--space-3) var(--space-5); + border: none; + margin-top: 40px; } .footer_link { @@ -269,6 +244,23 @@ button[type="submit"]:active { font-weight: 400; } +/* Left aligned */ +.footer-left { + justify-self: start; +} + +/* Center aligned */ +.footer-center { + justify-self: center; +} + +/* Right aligned */ +.footer-right { + justify-self: end; + display: flex; + gap: var(--space-4); +} + /* --- Responsive --- */ @@ -292,7 +284,7 @@ button[type="submit"]:active { transform: translateX(-50%) translateY(100px); background: var(--olive); color: var(--white); - padding: var(--space-3) var(--space-6); + padding: var(--space-3) var(--space-40); border-radius: var(--radius-pill); font-size: 1rem; font-weight: 600; diff --git a/css/my_profil.css b/css/my_profil.css index 94ea2f0..0e1403b 100644 --- a/css/my_profil.css +++ b/css/my_profil.css @@ -22,7 +22,7 @@ letter-spacing: var(--ls-la); } -#profile-headline { +#headline { margin: 0.4rem 0; color: var(--brown); font-size: clamp(2rem, 4.4vw, 2.8rem); @@ -44,43 +44,11 @@ gap: var(--space-4); } -.profile-tabs { - display: inline-flex; - flex-wrap: wrap; - gap: var(--space-2); -} - -.profile-tab { - border: 2px solid var(--olive); - border-radius: var(--radius-md); - background: var(--butter); - color: var(--black); - padding: 0.45rem 1rem; - min-height: 2.5rem; - font-family: "Jost", sans-serif; - font-size: 1rem; - font-weight: 500; - letter-spacing: var(--ls-ui); - cursor: pointer; - transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; -} - -.profile-tab:hover, -.profile-tab:focus-visible { - background: #faf8e8; -} - -.profile-tab.is-active { - border-color: transparent; - background: var(--olive); - color: var(--white); -} /* Konsistentes Karten-Layout für alle Profilsektionen. */ .profile-panel { - background: rgba(255, 255, 255, 0.88); + background: var(--butter-light); border-radius: var(--radius-lg); - box-shadow: 0 3px 12px rgba(102, 52, 13, 0.1); padding: var(--space-5); } @@ -115,38 +83,34 @@ /* Einzelne Eventkarte für "Meine Events" und "Meine Anmeldungen". */ .profile-event-card { - border: 1px solid rgba(107, 107, 5, 0.25); - border-radius: var(--radius-md); - padding: var(--space-3); + background: var(--butter-light); + border: 1.5px solid var(--olive-light); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-interaction); + padding: var(--space-5) var(--space-40); display: flex; justify-content: space-between; - align-items: center; - gap: var(--space-3); -} - -.profile-event-card-clickable { + gap: var(--space-40); cursor: pointer; transition: box-shadow 0.2s ease, transform 0.2s ease; } +.profile-event-card-clickable { + cursor: pointer; +} + .profile-event-card-clickable:hover { - box-shadow: 0 6px 16px rgba(102, 52, 13, 0.14); transform: translateY(-1px); } -.profile-event-title { +.profile-event-title h3{ margin: 0; - color: var(--black); - font-family: "Jost", sans-serif; - font-size: 1.25rem; - font-weight: 600; } +/* .profile-event-meta { - margin: 0.3rem 0 0; - font-size: 0.95rem; - color: var(--olive); -} + +}*/ .profile-event-address-block { margin-top: 0.55rem; @@ -191,56 +155,6 @@ gap: var(--space-2); } -.profile-unregister-btn { - border: none; - border-radius: var(--radius-md); - background: var(--tomato); - color: var(--butter-light); - padding: 0.45rem 0.95rem; - font-family: "Jost", sans-serif; - font-size: 0.95rem; - font-weight: 500; - cursor: pointer; - transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; -} - -.profile-cancel-btn { - border: none; - border-radius: var(--radius-md); - background: var(--tomato); - color: var(--butter-light); - padding: 0.45rem 0.95rem; - font-family: "Jost", sans-serif; - font-size: 0.95rem; - font-weight: 500; - cursor: pointer; - transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; -} - -.profile-cancel-btn:hover, -.profile-cancel-btn:focus-visible { - background: var(--tomato-dark); - transform: translateY(-1px); - box-shadow: 0 4px 10px rgba(188, 74, 52, 0.28); -} - -.profile-cancel-btn:active { - transform: translateY(0); - box-shadow: 0 2px 6px rgba(188, 74, 52, 0.25); -} - -.profile-unregister-btn:hover, -.profile-unregister-btn:focus-visible { - background: var(--tomato-dark); - transform: translateY(-1px); - box-shadow: 0 4px 10px rgba(188, 74, 52, 0.28); -} - -.profile-unregister-btn:active { - transform: translateY(0); - box-shadow: 0 2px 6px rgba(188, 74, 52, 0.25); -} - .profile-empty { margin: 0; color: var(--black); diff --git a/css/stylesheet_global.css b/css/stylesheet_global.css index e61ddb4..4a3b0ef 100644 --- a/css/stylesheet_global.css +++ b/css/stylesheet_global.css @@ -45,10 +45,10 @@ --space-1: 0.5rem; /* 8px */ --space-2: 0.75rem; /* 12px */ --space-3: 1rem; /* 16px */ - --space-31: 1.25rem; /* 20px */ + --space-20: 1.25rem; /* 20px */ --space-4: 1.5rem; /* 24px */ --space-5: 2rem; /* 32px */ - --space-6: 2.5rem; /* 40px */ + --space-40: 2.5rem; /* 40px */ --space-7: 3rem; /* 48px */ --space-8: 4rem; /* 64px */ @@ -151,6 +151,41 @@ p { font-size: 1rem; } +/* Margins */ + +.margin-bottom-24 { + margin-bottom: var(--space-4); +} + +.margin-bottom-40 { + margin-bottom: var(--space-40); +} + +.event-side { + /* Right-side action area: availability status and optional signup button. */ + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-end; + gap: var(--space-3); + padding-top: 36px; + flex-shrink: 0; +} + +/* Event-Beschrieb oberhalb von Eventtitel */ +.event-date-time, +.event-location, +.profile-event-meta { + color: var(--olive); + font-family: var(--font-main); + font-size: 1.125rem; + font-weight: 400; + line-height: 1; + + display: inline-flex; + gap: var(--space-0); +} + /* Layout */ .main-content { margin-top: var(--space-8); @@ -251,7 +286,6 @@ p { font-size: 1rem; font-weight: 600; letter-spacing: var(--ls-la); - margin-bottom: var(--space-6); z-index: 0; } @@ -324,10 +358,37 @@ p { border-color: var(--blue-dark); } +.button-primary-eigener-event{ + display: inline-block; + padding: 0.375rem 1.5rem; + background-color: var(--blue); + border: 1.5px solid var(--blue); + border-radius: var(--radius-lg); + font-family: var(--font-main); + font-weight: 400; + font-size: 1.25rem; + color: var(--butter-light); + cursor: pointer; + text-decoration: none; + transition: background-color 0.2s ease, border-color 0.2s ease; +} + +.button-primary-eigener-event:hover { + background: var(--blue-dark); + border-color: var(--blue-dark); +} + +.button-primary-eigener-event:disabled { + border-color: transparent; + background-color: var(--olive-light); + color: var(--olive-dark); + cursor: not-allowed; +} + .button-secondary { display: inline-block; padding: 0.375rem 1.5rem; - background-color: var(--butter); + background-color: transparent; border: 1.5px solid var(--olive); border-radius: var(--radius-lg); font-family: var(--font-main); @@ -366,7 +427,7 @@ p { font-family: var(--font-main); font-weight: 400; font-size: 1.25rem; - color: var(--butter); + color: var(--butter-light); cursor: pointer; text-decoration: none; transition: background-color 0.2s ease, border-color 0.2s ease; @@ -377,6 +438,45 @@ p { border-color: var(--olive-dark); } + +.category-item { + border: 1.5px solid var(--tomato); + color: var(--tomato); + border-radius: var(--radius-pill); + background: var(--butter-light); + font-family: var(--font-main); + font-weight: 400; + font-size: 1.125rem; + line-height: 1; + padding: var(--space-1) var(--space-20); + cursor: pointer; + transition: background-color 0.2s ease, color 0.2s ease; +} + +.category-item:hover, .category-item:focus-visible { + background: var(--tomato); + color: var(--butter-light); +} + +.category-item.is-active, .category-item.active { + background: var(--tomato); + color: var(--butter-light); +} + +.category-item-profile { + font-size: 1.25rem; + font-weight: 400; + line-height: 1; + padding: var(--space-1) var(--space-4); + +} + +.category-items { + display: inline-flex; + flex-wrap: wrap; + gap: var(--space-1); +} + .button-small { background: var(--olive); color: var(--butter-light); @@ -438,19 +538,13 @@ p { /* Utilities */ .text-center { - text-align: left; + text-align: center; } .hidden { display: none !important; } -/* Card Footer */ -.card-footer { - margin-top: auto; - padding-top: var(--space-3); - width: 100%; -} /* Text Muted */ .text-muted { @@ -465,7 +559,7 @@ p { display: flex; align-items: center; justify-content: center; - gap: 10px; + height: 1em; /* keeps it aligned with text size */ margin-top: var(--space-7); } @@ -476,7 +570,7 @@ p { text-decoration: none; } -.instagram-invite__icon { +.instagram-invite_icon { height: 32px; width: 32px; object-fit: contain; @@ -484,12 +578,19 @@ p { filter: brightness(0) saturate(100%) invert(27%) sepia(81%) saturate(749%) hue-rotate(24deg) brightness(90%) contrast(90%); } -.instagram-invite__logo { +.footer-invite_logo { height: 56px; width: 56px; object-fit: contain; } +.inline { + color: var(--tomato); + display: flex; + align-items: center; + gap: 8px; +} + /* Modal / Popup */ .modal { display: none; @@ -516,9 +617,9 @@ p { .modal-content { background-color: var(--white); - padding: 40px; + padding: var(--space-20) var(--space-20) var(--space-40) var(--space-20); border-radius: var(--radius-lg); - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); + box-shadow: var(--shadow-interaction); max-width: 500px; width: 90%; text-align: center; @@ -532,12 +633,10 @@ p { .modal-header { position: relative; - margin-bottom: var(--space-4); } .modal-header h2 { - color: var(--olive); - font-size: 1.5rem; + padding: var(--space-20)var(--space-20) 0 var(--space-20); } .close-btn { @@ -557,10 +656,7 @@ p { } .modal-body { - color: var(--black); - font-size: 1rem; - line-height: 1.6; - margin-bottom: var(--space-6); + padding: var(--space-20) var(--space-20) var(--space-4) var(--space-20); } .modal-footer { @@ -577,7 +673,7 @@ p { transform: translateX(-50%) translateY(100px); background: var(--olive); color: var(--white); - padding: var(--space-3) var(--space-6); + padding: var(--space-3) var(--space-40); border-radius: var(--radius-pill); font-size: 1rem; font-weight: 600; @@ -649,12 +745,34 @@ p { } /* Footer */ + .footer { - display: flex; - /*justify-content: space-between;*/ - align-items: center; - gap: 1.5rem; - padding: var(--space-3) var(--space-7); + display: grid; + grid-template-columns: 1fr auto 1fr; + align-items: center; + padding: var(--space-3) var(--space-7); +} + +.footer-links { + display: flex; + gap: var(--space-4); +} + +/* Left aligned */ +.footer-left { + justify-self: start; +} + +/* Centered */ +.footer-center { + justify-self: center; +} + +/* Right aligned */ +.footer-right { + justify-self: end; + display: flex; + gap: var(--space-4); } /* Media Queries (Responsive) */ diff --git a/data/events.json b/data/events.json index 8134836..c09641e 100644 --- a/data/events.json +++ b/data/events.json @@ -90,7 +90,7 @@ "date": "02. MAI. 2026", "time": "12:30 UHR", "category": "Lunch", - "diet": "Pescetarisch", + "diet": "Fisch", "spots": 8, "host": { "name": "Akiko", diff --git a/datenschutz.html b/datenschutz.html index 1e08a59..505bd1d 100644 --- a/datenschutz.html +++ b/datenschutz.html @@ -22,7 +22,7 @@

Datenschutzerklärung

-

1. Verantwortliche Stelle

+

1. Verantwortliche Stelle

Invité GmbH
Musterstrasse 12
@@ -31,7 +31,7 @@ E-Mail: datenschutz@invite-cooking.ch

-

2. Erhebung und Verarbeitung personenbezogener Daten

+

2. Erhebung und Verarbeitung personenbezogener Daten

Beim Besuch unserer Website werden automatisch Informationen allgemeiner Natur erfasst. Diese Informationen (Server-Logfiles) beinhalten die Art des Webbrowsers, das verwendete @@ -40,14 +40,14 @@ unserer Website verwendet.

-

3. Registrierung und Nutzerkonto

+

3. Registrierung und Nutzerkonto

Bei der Erstellung eines Nutzerkontos erheben wir folgende Daten: Name, E-Mail-Adresse und Passwort. Diese Daten werden ausschliesslich zur Bereitstellung unserer Dienste verwendet und nicht an Dritte weitergegeben.

-

4. Cookies

+

4. Cookies

Unsere Website verwendet Cookies, um die Nutzererfahrung zu verbessern. Cookies sind kleine Textdateien, die auf Ihrem Endgerät gespeichert werden. Sie können die Verwendung @@ -55,14 +55,14 @@ die Funktionalität der Website eingeschränkt sein kann.

-

5. Datenweitergabe an Dritte

+

5. Datenweitergabe an Dritte

Eine Übermittlung Ihrer persönlichen Daten an Dritte findet nicht statt, es sei denn, wir sind gesetzlich dazu verpflichtet oder Sie haben Ihre ausdrückliche Einwilligung erteilt.

-

6. Datensicherheit

+

6. Datensicherheit

Wir setzen technische und organisatorische Sicherheitsmassnahmen ein, um Ihre Daten gegen zufällige oder vorsätzliche Manipulation, Verlust, Zerstörung oder den Zugriff @@ -70,7 +70,7 @@ der technologischen Entwicklung fortlaufend verbessert.

-

7. Ihre Rechte

+

7. Ihre Rechte

Sie haben jederzeit das Recht auf Auskunft über die bei uns gespeicherten personenbezogenen Daten. Ebenso haben Sie das Recht auf Berichtigung, Löschung @@ -78,7 +78,7 @@ datenschutz@invite-cooking.ch

-

8. Änderungen dieser Datenschutzerklärung

+

8. Änderungen dieser Datenschutzerklärung

Wir behalten uns vor, diese Datenschutzerklärung gelegentlich anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer @@ -86,16 +86,22 @@

-
- - Instagram - - + + diff --git a/event_create.html b/event_create.html index 28d4556..e542925 100644 --- a/event_create.html +++ b/event_create.html @@ -149,20 +149,24 @@
Ernährungsform -
+
+ +
@@ -293,7 +297,7 @@
@@ -430,16 +434,22 @@ -
- - Instagram - - + diff --git a/event_detail.html b/event_detail.html index 4930d30..17751dc 100644 --- a/event_detail.html +++ b/event_detail.html @@ -3,13 +3,15 @@ - Event-Detail + Invité | Event-Detail - - + + + + @@ -39,17 +41,22 @@
- -
- - Instagram - - + - \ No newline at end of file diff --git a/event_overview.html b/event_overview.html index a466054..7c7efde 100644 --- a/event_overview.html +++ b/event_overview.html @@ -3,7 +3,7 @@ - Event-Overview + Invité | Event-Übersicht @@ -39,10 +39,10 @@
- - - - + + + +
@@ -56,10 +56,33 @@
+ +
+ +
+ + + + +
+
+ +
+ +
+ + + +
+
+ + @@ -72,16 +95,22 @@
- -
- - Instagram - - + - + \ No newline at end of file diff --git a/impressum.html b/impressum.html index 3528066..9c4c964 100644 --- a/impressum.html +++ b/impressum.html @@ -22,7 +22,7 @@

Impressum

-

Angaben gemäss § 5 TMG

+

Angaben gemäss § 5 TMG

Invité GmbH
Musterstrasse 12
@@ -30,28 +30,28 @@ Schweiz

-

Kontakt

+

Kontakt

Telefon: +41 81 123 45 67
E-Mail: info@invite-cooking.ch

-

Vertretungsberechtigte Person

+

Vertretungsberechtigte Person

Max Mustermann, Geschäftsführer

-

Handelsregistereintrag

+

Handelsregistereintrag

Eingetragen im Handelsregister des Kantons Graubünden
Firmennummer: CHE-123.456.789

-

Haftungsausschluss

+

Haftungsausschluss

Die Inhalte dieser Website wurden mit grösster Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen.

-

Urheberrecht

+

Urheberrecht

Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem schweizerischen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede @@ -60,15 +60,21 @@

-
- - Instagram - - + diff --git a/index.html b/index.html index a5c9da7..e456ed7 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,7 @@
- einfach. lecker. gemeinsam. + einfach. lecker. gemeinsam.

Teile deine Leidenschaft, geniesse gemeinsam.

Ob du als leidenschaftlicher Hobbykoch Gastgeber sein möchtest oder als Feinschmecker einen Platz an einem lokalen Tisch suchst Invité verbindet Menschen durch die Kraft einer gemeinsamen Mahlzeit.

Anmelden @@ -47,41 +47,34 @@
-

So funktioniert's

-
-
- 1 - -

Anmelden & Dabeisein

-

Erstelle kurz dein Profil und zeig uns deinen Geschmack. Bei uns zählt der Mensch am Tisch, nicht der Lebenslauf.

-
-
- 2 - -

Tisch finden oder decken

-

Entdecke spontane Events in deiner Nähe oder öffne deine eigene Küche. Du entscheidest, ob du Gast oder Gastgeber bist

-
-
- 3 - -

Teile den Tisch

-

Triff neue Leute in entspannter Atmosphäre. Geniesse gutes Essen in Gesellschaft und mach aus einer Mahlzeit eine echte Begegnung.

- @@ -89,6 +82,9 @@
- - - - +
@@ -160,9 +148,22 @@
- + + \ No newline at end of file diff --git a/js/event_create.js b/js/event_create.js index 0139208..2f53f1e 100644 --- a/js/event_create.js +++ b/js/event_create.js @@ -304,7 +304,7 @@ function getReviewValues() { menuDescription: getFieldValue("menuDescription"), eventDescription: getFieldValue("eventDescription"), maxGuests: getFieldValue("maxGuests"), - dietType: getFieldValue("dietType"), + dietType: getCheckboxValues("dietType"), allergies: buildAllergiesReviewValue(), eventDate: formatDate(getFieldValue("eventDate")), eventTime: getFieldValue("eventTime"), @@ -389,7 +389,7 @@ function mapEventTypeToCategory(value) { Brunch: "Brunch", Lunch: "Lunch", Dinner: "Dinner", - "Kaffee + Kuchen": "COFFEE" + "Kaffee + Kuchen": "Kaffee + Kuchen" }; return categoryMap[value] || value.toUpperCase(); @@ -400,7 +400,7 @@ function mapEventTypeToCategory(value) { */ function buildStoredEvent() { const eventType = getFieldValue("eventType"); - const dietType = getFieldValue("dietType"); + const dietType = getCheckboxValues("dietType"); const menuDescription = form.elements.menuDescription.value.trim(); const eventDescription = form.elements.eventDescription.value.trim(); const eventDate = form.elements.eventDate.value; @@ -472,6 +472,15 @@ function validateCurrentStep() { return false; } + // Speziell für Schritt 2: Ernährungsform prüfen + if (currentStep === 2) { + const dietCheck = validateDietType(); + if (!dietCheck.isValid) { + setErrorMessage(dietCheck.message); + return false; + } + } + // Danach normale Pflichtfelder prüfen const requiredCheck = validateRequiredFields(fields); if (!requiredCheck.isValid) { @@ -509,6 +518,22 @@ function validateRadioGroups(fields) { return { isValid: true }; } +/** + * Prüft die Ernährungsform-Checkboxen (mindestens eine muss ausgewählt sein). + */ +function validateDietType() { + const checked = form.querySelectorAll('input[name="dietType"]:checked'); + if (checked.length === 0) { + // Mark all as invalid + form.querySelectorAll('input[name="dietType"]').forEach(input => { + const card = input.closest('.option-card'); + if (card) card.classList.add('option-card--invalid'); + }); + return { isValid: false, message: "Bitte wähle mindestens eine Ernährungsform aus." }; + } + return { isValid: true }; +} + /** * Prüft alle Pflichtfelder ausser Radios und Checkboxen. * Rückgabe: diff --git a/js/event_detail.js b/js/event_detail.js index 76c7dd1..906442f 100644 --- a/js/event_detail.js +++ b/js/event_detail.js @@ -113,9 +113,9 @@ } const msUntilStart = eventDateTime.getTime() - Date.now(); - const twelveHoursInMs = 12 * 60 * 60 * 1000; + const twentyfourHoursInMs = 12 * 60 * 60 * 1000; - return msUntilStart <= twelveHoursInMs; + return msUntilStart <= twentyfourHoursInMs; } // Abmeldefrist: 1 Tag (24 h) vor Eventstart. @@ -145,9 +145,9 @@ } const msUntilStart = eventDateTime.getTime() - Date.now(); - const twelveHoursInMs = 12 * 60 * 60 * 1000; + const twentyfourHoursInMs = 12 * 60 * 60 * 1000; - return msUntilStart >= 0 && msUntilStart <= twelveHoursInMs; + return msUntilStart >= 0 && msUntilStart <= twentyfourHoursInMs; } function countRegistrationsForEvent(registrationMap, eventId) { @@ -255,10 +255,10 @@ // Map diet keys to readable labels while keeping unknown values untouched. function getDietLabel(diet) { const labels = { - VEGGIE: 'Vegetarisch', - VEGAN: 'Vegan', FLEISCH: 'Fleisch', - FISCH: 'Fisch' + FISCH: 'Fisch', + VEGGIE: 'Vegetarisch', + VEGAN: 'Vegan' }; return labels[diet] || diet; @@ -316,12 +316,12 @@ || (!isRegistered && (isFull || isRegistrationClosed)) || (isRegistered && deregInfo.isClosed); const actionButtonVariantClass = isOwnEvent - ? ' detail-primary-btn-own' + ? ' button-primary' : isRegistered - ? ' detail-primary-btn-danger' + ? ' button-primary-abmelden ' : isRegistrationClosed - ? ' detail-primary-btn-danger' - : ' detail-primary-btn-register'; + ? ' button-primary-abmelden ' + : ' button-primary '; const shouldRevealAddress = Boolean(event.address) && isAddressVisibleWindow(event) && hasAddressAccess; const addressPanelMarkup = shouldRevealAddress ? ` @@ -333,18 +333,13 @@ : ''; const detailChips = [ `${eventCategory}`, - `${dietLabel}`, + ...event.diet.split(', ').filter(d => d.trim() && d !== 'Keine Angabe').map(d => `${getDietLabel(d.trim())}`), ...specifications.map(item => `${item}`) ].join(''); // Render complete detail page layout including: // hero metadata, host card, menu, participants, gallery and sticky action bar. detailContainer.innerHTML = ` -
- - - Alle Events -
diff --git a/js/event_overview.js b/js/event_overview.js index 447f101..10eba9e 100644 --- a/js/event_overview.js +++ b/js/event_overview.js @@ -263,7 +263,7 @@ }, 0); } - // Schliesst neue Anmeldungen ab 12h vor Start (inkl. bereits gestarteter Events). + // Schliesst neue Anmeldungen ab 24h vor Start (inkl. bereits gestarteter Events). function isRegistrationClosedForEvent(event) { const eventDateTime = parseEventDateTime(event); if (!eventDateTime || Number.isNaN(eventDateTime.getTime())) { @@ -271,9 +271,9 @@ } const msUntilStart = eventDateTime.getTime() - Date.now(); - const twelveHoursInMs = 12 * 60 * 60 * 1000; + const twentyfourHoursInMs = 24 * 60 * 60 * 1000; - return msUntilStart <= twelveHoursInMs; + return msUntilStart <= twentyfourHoursInMs; } // Safely verify whether a value exists in the given select element. @@ -327,7 +327,7 @@

Schade, aktuell gibt es hier keine Events.

Starte dein eigenes Event und bringe die Community an deinen Tisch.

- +
`; @@ -367,8 +367,13 @@ ? event.specifications.map(spec => `${spec}`).join('') : ''; + // Build diet tags: split by comma and create individual tags + const dietTags = event.diet && event.diet !== 'Keine Angabe' && event.diet !== '–' + ? event.diet.split(', ').map(d => `${d.trim()}`).join('') + : ''; + const actionMarkup = isOwnEvent - ? '' + ? '' : isRegistered ? '' : isRegistrationClosed @@ -393,12 +398,12 @@

${event.title}

${event.category} - ${event.diet} + ${dietTags} ${specsChips}
- ${isFull ? 'Ausgebucht' : `${freePlaces} Plätze frei`} + ${isRegistrationClosed ? '' : `${isFull ? 'Ausgebucht' : `${freePlaces} Plätze frei`}`} ${actionMarkup}
`; @@ -483,6 +488,15 @@ if (dateFilter) { dateFilter.addEventListener('change', applyFilters); + + // Make calendar icon clickable to focus the date input + const calendarIcon = document.querySelector('.calendar-icon'); + if (calendarIcon) { + calendarIcon.addEventListener('click', () => { + dateFilter.focus(); + dateFilter.click(); + }); + } } // Kick off initial load/render cycle. diff --git a/js/index-carousel.js b/js/index-carousel.js index 68699c8..3a64804 100644 --- a/js/index-carousel.js +++ b/js/index-carousel.js @@ -7,7 +7,7 @@ const carouselTrack = document.querySelector('.gallery__track'); const prevArrow = document.querySelector('.gallery__arrow--prev'); const nextArrow = document.querySelector('.gallery__arrow--next'); -const dotsContainer = document.querySelector('.gallery__dots'); +const dotsContainer = document.querySelector('.gallery_dots'); // Nur ausführen, wenn die Galerie auf der Seite vorhanden ist. if (carouselTrack) { @@ -28,7 +28,7 @@ if (carouselTrack) { for (var i = 0; i < pageCount; i++) { var dot = document.createElement('button'); dot.type = 'button'; - dot.className = 'gallery__dot' + (i === activePage ? ' gallery__dot--active' : ''); + dot.className = 'gallery_dot' + (i === activePage ? ' gallery_dot--active' : ''); dot.setAttribute('role', 'tab'); dot.setAttribute('aria-selected', i === activePage ? 'true' : 'false'); dot.setAttribute('aria-label', 'Seite ' + (i + 1) + ' von ' + pageCount); @@ -43,7 +43,7 @@ if (carouselTrack) { function updateDots() { dots.forEach(function(dot, i) { - dot.classList.toggle('gallery__dot--active', i === activePage); + dot.classList.toggle('gallery_dot--active', i === activePage); dot.setAttribute('aria-selected', i === activePage ? 'true' : 'false'); }); } diff --git a/js/my_profil.js b/js/my_profil.js index 1692ee9..0874f61 100644 --- a/js/my_profil.js +++ b/js/my_profil.js @@ -7,10 +7,10 @@ // Zentrale DOM-Referenzen für klare, testbare Funktionen. const loggedOutState = document.getElementById('logged-out-state'); const loggedInContent = document.getElementById('logged-in-content'); - const profileHeadline = document.getElementById('profile-headline'); + const profileHeadline = document.getElementById('headline'); const profileSubline = document.getElementById('profile-subline'); const logoutButton = document.getElementById('logout-button'); - const profileTabButtons = Array.from(document.querySelectorAll('[data-profile-tab]')); + const profileTabButtons = Array.from(document.querySelectorAll('[data-category-item]')); const profileTabPanels = Array.from(document.querySelectorAll('[data-profile-panel]')); const myEventsCount = document.getElementById('my-events-count'); @@ -131,7 +131,7 @@ profileTabButtons.forEach(button => { button.addEventListener('click', () => { - const tabName = button.getAttribute('data-profile-tab'); + const tabName = button.getAttribute('data-category-item'); if (!tabName) { return; } @@ -202,7 +202,7 @@ // Schaltet den sichtbaren Profilbereich per Tabname um. function activateProfileTab(tabName) { profileTabButtons.forEach(button => { - const isActive = button.getAttribute('data-profile-tab') === tabName; + const isActive = button.getAttribute('data-category-item') === tabName; button.classList.toggle('is-active', isActive); button.setAttribute('aria-selected', isActive ? 'true' : 'false'); }); @@ -515,13 +515,13 @@ const actionMarkup = mode === 'registrations' ? ` -
- +
+
` : ` -
- +
+
`; @@ -546,9 +546,9 @@ } const msUntilStart = eventDateTime.getTime() - Date.now(); - const twelveHoursInMs = 12 * 60 * 60 * 1000; + const twentyfourHoursInMs = 12 * 60 * 60 * 1000; - return msUntilStart >= 0 && msUntilStart <= twelveHoursInMs; + return msUntilStart >= 0 && msUntilStart <= twentyfourHoursInMs; } // Parse für ISO- und lokalisierte Datumsformate aus den Eventdaten. @@ -607,19 +607,48 @@ // Formatiert ein Eventdatum konsistent für die Profilkarten. function formatEventDate(dateString) { - if (!dateString) { - return 'Kein Datum'; - } - - if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) { - const [year, month, day] = dateString.split('-'); - const monthLabel = ['Januar', 'Februar', 'Maerz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'][Number(month) - 1]; - return `${Number(day)}. ${monthLabel} ${year}`; - } - - return dateString; + if (!dateString) { + return 'Kein Datum'; } + // ISO Format: 2026-02-12 + if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) { + const [year, month, day] = dateString.split('-'); + + const monthLabel = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'][Number(month) - 1]; + + return `${Number(day)}. ${monthLabel} ${year}`; + } + + // Format: 12. FEB. 2026 + const match = dateString.match(/^(\d{1,2})\.\s*([A-ZÄÖÜ]{3})\.\s*(\d{4})$/); + + if (match) { + const day = match[1]; + const month = match[2]; + + const shortMonthMap = { + JAN: 'Januar', + FEB: 'Februar', + MÄR: 'März', + MRZ: 'März', + APR: 'April', + MAI: 'Mai', + JUN: 'Juni', + JUL: 'Juli', + AUG: 'August', + SEP: 'September', + OKT: 'Oktober', + NOV: 'November', + DEZ: 'Dezember' + }; + + return `${day}. ${shortMonthMap[month] || month} ${match[3]}`; + } + + return dateString; +} + // Vereinheitlicht die Zeitanzeige für die Profilseite. function formatEventTime(timeString) { if (!timeString) { diff --git a/js/navigation.js b/js/navigation.js index 8844a9c..61fc013 100644 --- a/js/navigation.js +++ b/js/navigation.js @@ -77,13 +77,6 @@ document.addEventListener('DOMContentLoaded', () => { const isEventCreate = currentPage === 'event_create.html'; return ` - - Event finden - { > Event erstellen + + Event finden + - - + -
+
-

Meine Events

0
-
- +

- +

-
- - Instagram - - + - diff --git a/signup.html b/signup.html index c6a8a47..d674013 100644 --- a/signup.html +++ b/signup.html @@ -91,15 +91,21 @@
- \ No newline at end of file