feat(52-mobile-main-menu): hamburger + slide-in overlay sidebar na mobile

Zastapienie niedzialajacej nawigacji horyzontalnej pelnoekranowym
overlay sidebar z hamburgerem, backdrop i animacja CSS transform.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 23:15:52 +02:00
parent cbc2058b83
commit 1c87489824
8 changed files with 3710 additions and 40 deletions

View File

@@ -2251,37 +2251,85 @@ h4.section-title {
color: #334155;
}
// Hamburger button (hidden on desktop)
.topbar__hamburger {
display: none;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
padding: 0;
background: transparent;
border: none;
color: var(--c-text-strong);
cursor: pointer;
border-radius: 6px;
flex-shrink: 0;
&:hover {
background: var(--c-bg-subtle, #f1f5f9);
}
}
// Mobile backdrop overlay
.sidebar-backdrop {
display: none;
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 999;
opacity: 0;
transition: opacity 0.25s ease;
&.is-visible {
display: block;
opacity: 1;
}
}
// Body scroll lock
body.no-scroll {
overflow: hidden;
}
@media (max-width: 768px) {
.app-shell {
flex-direction: column;
.topbar__hamburger {
display: flex;
}
.sidebar {
width: 100% !important;
min-width: 0 !important;
border-right: 0;
border-bottom: 1px solid #243041;
padding: 14px;
overflow-x: auto;
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 280px;
min-width: 280px;
z-index: 1000;
transform: translateX(-100%);
transition: transform 0.25s ease;
border-right: 1px solid #243041;
overflow-y: auto;
&.is-mobile-open {
transform: translateX(0);
}
}
.sidebar__brand {
margin: 0 0 10px;
font-size: 22px;
margin: 4px 4px 12px;
}
.sidebar__collapse-btn {
display: none;
display: flex;
}
.sidebar__collapse-icon {
transform: rotate(180deg);
}
.sidebar__nav {
display: flex;
gap: 8px;
overflow-x: auto;
}
.sidebar__link {
white-space: nowrap;
display: grid;
gap: 4px;
}
.topbar {