Skip to content

Commit a31104a

Browse files
committed
Mobile navbar redesign
1 parent 261d1f3 commit a31104a

6 files changed

Lines changed: 76 additions & 27 deletions

File tree

css/styles.css

Lines changed: 63 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -305,51 +305,87 @@ footer {
305305

306306
/* Responsive */
307307
@media (max-width: 768px) {
308+
309+
/* Стили для гамбургера */
308310
.hamburger {
309311
display: block;
312+
transition: transform 0.3s ease;
313+
z-index: 101;
314+
/* Чтобы кнопка была над меню */
315+
}
316+
317+
.hamburger.active {
318+
transform: rotate(90deg);
310319
}
311320

321+
/* Контейнер меню (изначально за экраном) */
312322
nav {
313-
display: none;
314-
position: absolute;
323+
position: fixed;
315324
top: 80px;
316-
right: 20px;
317-
/* Сдвигаем меню к правому краю */
318-
left: auto;
319-
/* Отключаем левое позиционирование */
320-
width: auto;
321-
/* Ширина по содержимому */
322-
min-width: 200px;
323-
/* Минимальная ширина */
325+
right: -300px;
326+
width: 280px;
327+
height: calc(100vh - 80px);
324328
background-color: var(--bg);
325329
flex-direction: column;
326330
padding: 1rem;
327-
border-radius: 8px;
328-
border: 1px solid var(--bg-light);
329-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
331+
border-left: 1px solid var(--bg-light);
332+
box-shadow: -4px 0 12px rgba(0, 0, 0, 0.2);
330333
text-align: right;
331-
/* Выравнивание текста по правому краю */
334+
transition: right 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
335+
z-index: 100;
336+
overflow-y: auto;
332337
}
333338

339+
/* Меню "выезжает" при активации */
334340
nav.active {
335-
display: flex;
341+
right: 0;
342+
}
343+
344+
/* Оверлей для фона */
345+
.nav-overlay {
346+
position: fixed;
347+
top: 80px;
348+
left: 0;
349+
right: 0;
350+
bottom: 0;
351+
background: rgba(0, 0, 0, 0.5);
352+
opacity: 0;
353+
pointer-events: none;
354+
transition: opacity 0.3s ease;
355+
z-index: 99;
336356
}
337357

358+
.nav-overlay.active {
359+
opacity: 1;
360+
pointer-events: all;
361+
}
362+
363+
/* Анимация пунктов меню */
338364
nav a {
339-
padding: 0.5rem 1rem;
340-
white-space: nowrap;
341-
/* Запрет переноса текста */
365+
padding: 0.8rem 1rem;
366+
margin: 0.25rem 0;
367+
border-radius: 4px;
368+
transition: all 0.2s ease 0.1s;
369+
/* Задержка для каскадного эффекта */
370+
transform: translateX(20px);
371+
opacity: 0;
372+
}
373+
374+
nav.active a {
375+
transform: translateX(0);
376+
opacity: 1;
377+
}
378+
379+
nav a:hover {
380+
background-color: var(--bg-light);
381+
color: var(--yellow);
382+
text-decoration: none;
342383
}
343384

344-
/* Дополнительно можно добавить стрелку к меню */
345-
nav::before {
346-
content: "";
347-
position: absolute;
348-
top: -10px;
349-
right: 15px;
350-
border-left: 10px solid transparent;
351-
border-right: 10px solid transparent;
352-
border-bottom: 10px solid var(--bg);
385+
nav a:hover::after {
386+
content: "←";
387+
margin-left: 8px;
388+
color: var(--yellow);
353389
}
354390

355391
.hero h2 {

donate.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ <h2>Другие способы помочь</h2>
8181
</div>
8282
</footer>
8383

84+
<div class="nav-overlay" id="nav-overlay"></div>
8485
<script src="header.js"></script>
8586
</body>
8687

download.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ <h2>Предыдущие версии</h2>
130130
</div>
131131
</footer>
132132

133+
<div class="nav-overlay" id="nav-overlay"></div>
133134
<script src="header.js"></script>
134135
</body>
135136

header.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
// Mobile menu toggle
22
document.getElementById('hamburger').addEventListener('click', function () {
3+
this.classList.toggle('active');
34
document.getElementById('main-nav').classList.toggle('active');
5+
document.getElementById('nav-overlay').classList.toggle('active');
6+
});
7+
8+
// Закрытие меню при клике на оверлей
9+
document.getElementById('nav-overlay').addEventListener('click', function () {
10+
document.getElementById('hamburger').classList.remove('active');
11+
document.getElementById('main-nav').classList.remove('active');
12+
this.classList.remove('active');
413
});
514

615
// Detect OS and update download button

index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ <h3>Экономит ресурсы</h3>
9090
</div>
9191
</footer>
9292

93+
<div class="nav-overlay" id="nav-overlay"></div>
9394
<script src="header.js"></script>
9495
</body>
9596

screenshots.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ <h3>Уведомления</h3>
9898
</div>
9999
</footer>
100100

101+
<div class="nav-overlay" id="nav-overlay"></div>
101102
<script src="header.js"></script>
102103
</body>
103104

0 commit comments

Comments
 (0)