diff --git a/css/style.css b/css/style.css index aad9283e..3ed82754 100644 --- a/css/style.css +++ b/css/style.css @@ -1419,26 +1419,52 @@ footer a:hover { left: 0; width: 16rem; /* Tailwind's w-64 */ height: 100vh; + height: 100dvh; background-color: #0f172a; overflow-y: auto; -webkit-overflow-scrolling: touch; - transition: transform 0.3s ease; + transition: transform 0.3s ease, box-shadow 0.3s ease; + /* Keep below modal stacks (z-50+) so dialogs overlay the drawer. */ + z-index: 40; + box-shadow: none; +} + +#sidebar.sidebar-open { + box-shadow: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.45); +} + +#sidebarOverlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(15, 23, 42, 0.55); + opacity: 0; + pointer-events: none; + transition: opacity 0.3s ease; + /* Sits above page chrome but below modals and the sidebar itself. */ + z-index: 30; +} + +body.sidebar-open #sidebarOverlay { + opacity: 1; + pointer-events: auto; } /* Mobile (max-width: 767px): Hide sidebar by default */ @media (max-width: 767px) { #sidebar { - transform: translateX(-100%); + transform: translate3d(-100%, 0, 0); + width: min(16rem, calc(100vw - 3rem)); } /* When the sidebar-open class is added, slide the sidebar in */ #sidebar.sidebar-open { - transform: translateX(0); + transform: translate3d(0, 0, 0); } - /* Optionally shift main content when sidebar is open */ - #app.sidebar-open { - transform: translateX(16rem); - transition: transform 0.3s ease; + body.sidebar-open { + overflow: hidden; } } @@ -1447,6 +1473,14 @@ footer a:hover { #sidebar { transform: translateX(0) !important; } + + #sidebar.sidebar-open { + box-shadow: none; + } + + #sidebarOverlay { + display: none; + } } /* Collapsed/expanded classes if needed on desktop */ diff --git a/index.html b/index.html index 20d0a02f..77d2206f 100644 --- a/index.html +++ b/index.html @@ -51,19 +51,21 @@ -
-