Modal-Scroll: Backdrop scrollt, Panel wächst natürlich (margin:auto)
Die max-height/overflow-Variante griff beim Bewerbung-hinzufügen-Formular nicht zuverlässig. Stattdessen scrollt jetzt das Overlay selbst wie eine Seite; das Panel wächst auf natürliche Höhe und wird über margin:auto zentriert (kurzer Inhalt) bzw. ohne Top-Clipping erreichbar (langer Inhalt). Close- und Speichern-Button bleiben beide erreichbar. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+14
-8
@@ -452,12 +452,20 @@ button.loading::after {
|
||||
============================================ */
|
||||
|
||||
/* Modals: the overlay locks body scroll (overflow:hidden on <body>), so a panel
|
||||
taller than the viewport would have its bottom cut off and unreachable. Cap
|
||||
the panel to the viewport and let it scroll internally; align the wrapper to
|
||||
the top so the close button stays in reach instead of being clipped. This
|
||||
applies on every screen size — the Bewerbung-hinzufügen form has enough fields
|
||||
(Datum bis Interne Notizen) to overflow even on a laptop, not just a phone. */
|
||||
taller than the viewport would have its bottom cut off and the Save button
|
||||
unreachable. Let the OVERLAY itself scroll like a page — the panel grows to
|
||||
its natural height, and the overlay scrolls to reveal it. The panel uses
|
||||
`margin:auto`, which centers a short panel but — unlike `align-items:center`
|
||||
— does NOT clip the top when the panel is taller than the viewport (the
|
||||
classic flexbox top-clip bug), so both the close button (top) and the Save
|
||||
button (bottom) stay reachable. Applies on every screen size: the
|
||||
Bewerbung-hinzufügen form has enough fields (Datum bis Interne Notizen) to
|
||||
overflow even on a laptop, not just a phone. */
|
||||
.fixed.inset-0 {
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
.fixed.inset-0 > .min-h-screen {
|
||||
min-height: 100vh;
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-lg,
|
||||
@@ -465,14 +473,12 @@ button.loading::after {
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-2xl,
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-3xl,
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-4xl {
|
||||
max-height: calc(100vh - 2rem) !important;
|
||||
overflow-y: auto !important;
|
||||
margin: auto !important;
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-lg,
|
||||
.fixed.inset-0 > .min-h-screen > .max-w-md {
|
||||
max-width: calc(100vw - 2rem) !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user