fix(mobile): Monatstitel sichtbar, KW-Bubble unten, Termine mit Text, Long-Press, Settings-Hamburger

- View-Switcher auf Mobile in Popup-Menü ausgelagert (neuer Icon-Button
  rechts in der Topbar). Dadurch wird in der Topbar Platz frei für
  prev/next + Monatstitel ("Mai 2026" usw.).
- Topbar-Settings-Icon auf Mobile ausgeblendet, dafür neuer
  "Einstellungen"-Eintrag im User-Dropdown. "Heute" wandert ins
  View-Popup.
- KW-Bubble: von oben-links nach unten-links verschoben — überlappt
  jetzt nicht mehr die Tagesnummer.
- Termine in der Monatsansicht zeigen wieder ihren Text (kleinere
  14px-Höhe, 9px Schrift) statt nur farbiger Punkte.
- Long-Press auf einen Tag öffnet das Kontextmenü "Termin erstellen"
  (synthetisches contextmenu-Event nach 500 ms ohne Bewegung). Der
  nachfolgende synthetische Click wird unterdrückt.
- Settings-Modal: Sidebar (Darstellung/Konten/Benutzerverwaltung) auf
  Mobile als slide-in Overlay mit Hamburger-Toggle. Auf Desktop bleibt
  sie immer sichtbar.
- Version v4 → v5 (auch SW-Cache)
This commit is contained in:
Scarriffle
2026-05-07 19:08:20 +02:00
parent 3d7779ae83
commit 49b1935a28
5 changed files with 198 additions and 19 deletions

View File

@@ -1218,6 +1218,12 @@ a { color: var(--primary); text-decoration: none; }
/* Backdrop element exists in DOM but is hidden by default on desktop */
.sidebar-backdrop { display: none; }
/* Mobile-only UI elements: hidden on desktop ───────────── */
.view-mobile-wrapper { position: relative; display: none; }
.settings-nav-toggle { display: none; }
.settings-nav-backdrop { display: none; }
.dropdown-item-mobile-only { display: none; }
@media (max-width: 768px) {
html, body { overflow-x: hidden; max-width: 100vw; }
@@ -1291,16 +1297,14 @@ a { color: var(--primary); text-decoration: none; }
.btn { min-height: 44px; }
.view-switcher .view-btn { min-height: 40px; }
/* ── Month view: dots instead of full event titles ───────── */
/* ── Month view: events keep text, just smaller ──────────── */
.month-span-event {
height: 6px !important;
line-height: 0 !important;
padding: 0 !important;
border-radius: 3px !important;
font-size: 0 !important;
text-overflow: clip !important;
height: 14px !important;
line-height: 14px !important;
padding: 0 4px !important;
font-size: 9px !important;
font-weight: 500;
}
.month-events-overlay { gap: 1px; }
.month-more {
font-size: 9px;
padding: 0 2px;
@@ -1381,18 +1385,20 @@ a { color: var(--primary); text-decoration: none; }
}
.month-kw-cell {
position: absolute;
left: 3px; top: 3px;
/* Bottom-left: away from the day-number (top-left) */
left: 3px; bottom: 3px;
top: auto; right: auto;
width: auto; height: auto;
bottom: auto;
padding: 1px 7px;
padding: 1px 6px;
background: var(--bg-active);
border: none !important;
border-radius: 10px;
font-size: 10px; font-weight: 600;
font-size: 9px; font-weight: 600;
color: var(--text-2);
z-index: 5;
display: inline-flex;
align-items: center;
pointer-events: none;
}
/* ── Status-bar safe area inside full-screen modals (PWA) ── */
@@ -1404,6 +1410,64 @@ a { color: var(--primary); text-decoration: none; }
.settings-page-body {
padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}
/* ── Topbar: hide desktop view-switcher + settings, show
mobile view-toggle and let the title breathe ──────────── */
.topbar .view-switcher { display: none; }
.topbar #btn-settings { display: none; }
.view-mobile-wrapper { display: inline-block; }
.dropdown-item-mobile-only { display: flex; }
/* Hide "Heute" button on desktop topbar (it's in the view popup now) */
.topbar #btn-today { display: none; }
/* The title is the most important info — let it grow */
.topbar-center { flex: 1; min-width: 0; }
.topbar-center .view-title {
font-size: 17px;
font-weight: 500;
padding-left: 4px;
flex: 1;
}
.topbar-left { gap: 0; }
.topbar-right { gap: 0; }
/* ── Settings modal: nav becomes a slide-in overlay ──────── */
.settings-nav-toggle { display: inline-flex !important; }
.settings-page-body { position: relative; }
.settings-nav {
position: absolute;
top: 0; left: 0; bottom: 0;
width: min(75vw, 280px);
z-index: 50;
background: var(--bg-app);
border-right: 1px solid var(--border);
transform: translateX(-100%);
transition: transform .25s ease;
box-shadow: var(--shadow-lg);
}
.settings-page-card.nav-open .settings-nav {
transform: translateX(0);
}
.settings-nav-backdrop {
display: block;
position: absolute; inset: 0;
background: rgba(0,0,0,.5);
z-index: 40;
opacity: 0;
pointer-events: none;
transition: opacity .2s ease;
}
.settings-page-card.nav-open .settings-nav-backdrop {
opacity: 1;
pointer-events: auto;
}
.settings-panels { padding: 16px; }
/* Modal headers: tighter on mobile */
.modal-header { padding: 12px 16px; }
.modal-body { padding: 16px; }
.modal-footer { padding: 12px 16px; }
}
/* iOS notch / home-indicator safe areas (PWA standalone) */