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:
@@ -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) */
|
||||
|
||||
Reference in New Issue
Block a user