Skip to content

Commit ba7d5a2

Browse files
committed
feat: mobile navigation kebab menu + toggle
1 parent 37f5c78 commit ba7d5a2

File tree

6 files changed

+84
-22
lines changed

6 files changed

+84
-22
lines changed

_includes/header.njk

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
<header class="material-shadow">
22
<nav class="" data-au="flex-container justify-right">
3-
<div class="nav-item-container">
4-
<a class="nav-item" href="#projects">Past Projects</a>
3+
4+
<div class="nav-items-group show-on-mobile-only">
5+
<div class="nav-item-container icon-link-container">
6+
<a class="nav-item icon-link" data-trigger-menu-nav aria-label="Menu (icon)">&vellip;</a>
7+
</div>
58
</div>
6-
<div class="nav-item-container">
7-
<a class="nav-item" href="/now">Current Projects</a>
8-
</div>
9-
<div class="nav-item-container">
10-
<a class="nav-item" href="#contact">Contact &amp; More</a>
9+
10+
<div id="main-nav-items-container" class="nav-items-group hide-on-mobile-only" data-trigger-menu-nav-items>
11+
<div id="main-nav-items" class="" data-au="flex-container justify-right">
12+
<div class="nav-item-container">
13+
<a class="nav-item" href="#projects">Past Projects</a>
14+
</div>
15+
<div class="nav-item-container">
16+
<a class="nav-item" href="/now">Current Projects</a>
17+
</div>
18+
<div class="nav-item-container">
19+
<a class="nav-item" href="#contact">Contact &amp; More</a>
20+
</div>
21+
</div>
22+
1123
</div>
1224
</nav>
1325
</header>

css/general-styles.css

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ a[href].item-category-badge:active{
187187
display:inline-block;
188188
cursor: pointer;
189189
font-size: 2rem;
190+
opacity:1;
190191
line-height: calc(100% + 2px);
191192
top:0;
192193
transform:scale(1);
@@ -198,7 +199,7 @@ a[href].item-category-badge:active{
198199
width:70px;
199200
height:70px;
200201
}
201-
@media (hover: hover) and (pointer: fine) {
202+
@media (hover: hover) and (pointer: fine) and (min-width:750px) {
202203
.icon-link:hover{
203204
top:-15px;
204205
transform:scale(1.05);
@@ -207,6 +208,7 @@ a[href].item-category-badge:active{
207208
}
208209
.icon-link:active{
209210
transform:scale(1);
211+
opacity:.8;
210212
}
211213
/*icon link tooltips shown on icon hover*/
212214
.icon-link-tooltip{
@@ -314,6 +316,27 @@ svg{
314316
display:none;
315317
opacity:0;
316318
}
319+
/* contextual hiding */
320+
@media only screen and (max-width:750px){
321+
.hide-on-mobile-only{
322+
display:none;
323+
}
324+
.show-on-mobile-only{
325+
display:block;
326+
}
327+
}
328+
@media only screen and (min-width:750px){
329+
.hide-on-mobile-only{
330+
display:block;
331+
}
332+
.show-on-mobile-only{
333+
display:none;
334+
}
335+
}
336+
.show{
337+
display:block!important;
338+
}
339+
317340
.highlighter-container{
318341
display:inline-block;
319342
position:relative;

css/header-styles.css

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,42 @@ header{
99
/* backdrop-filter: blur(10px) opacity(50%); */
1010
}
1111
header nav{
12-
padding:25px;
12+
padding:25px 5rem;
1313
max-width:1200px;
1414
margin:0 auto;
1515
font-size:14px;
1616
gap:25px;
1717
}
18+
#main-nav-items-container{
19+
width:100%;
20+
}
21+
#main-nav-items{
22+
gap:25px;
23+
}
1824

1925
/* mobile nav */
20-
@media (max-width: 500px) {
26+
@media (max-width: 750px) {
2127
header nav{
28+
padding:15px 1rem;
2229
flex-wrap: wrap;
23-
gap:15px;
30+
}
31+
#main-nav-items{
32+
flex-wrap: wrap;
33+
gap:25px;
34+
padding-bottom:80vh;
35+
}
36+
#main-nav-items-container .nav-item-container{
37+
width:100%;
2438
}
2539
}
2640

41+
/* item container hover animation */
2742
header .nav-item-container{
2843
transform:scale(1);
2944
transition: transform .15s;
3045
}
31-
.nav-item-container:hover{
32-
transform:scale(1.05);
46+
@media (hover: hover) and (pointer: fine) and (min-width:750px) {
47+
.nav-item-container:hover{
48+
transform:scale(1.05);
49+
}
3350
}

css/section-styles.css

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
section{
33
max-width:1200px;
44
margin:0 auto;
5-
padding:4rem 40px;
5+
/* padding:4rem 40px; */
6+
padding:5rem;
67
overflow:hidden;
78
}
89
section.full-section{
@@ -51,7 +52,8 @@ section:nth-child(odd) .item-images-container{
5152
/*standard mobile styles*/
5253
@media only screen and (max-width:750px){
5354
section{
54-
padding:25px;
55+
/* padding:25px; */
56+
padding: 4rem 1rem;
5557
}
5658
}
5759
/*tablet sizing*/

js/projects-scripts.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,9 @@ window.addEventListener("load", function(){
5757
});
5858
}
5959

60-
function showPhotoSection(){
61-
itemsContainer.classList.add("show-photo");
62-
}
63-
60+
// function showPhotoSection(){
61+
// itemsContainer.classList.add("show-photo");
62+
// }
6463
///////////////
6564

6665
}, false);

js/shared-scripts.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@ window.addEventListener("load", function(){
88
var copyrightSpan = document.getElementById("copyright-year");
99

1010
copyrightSpan.appendChild(document.createTextNode(currentYear));
11-
12-
13-
}, false);
11+
12+
13+
// on click, open/close mobile nav menu
14+
const navMenuTrigger = document.querySelector("[data-trigger-menu-nav]");
15+
const navItemsContainer = document.querySelector("[data-trigger-menu-nav-items]");
16+
// #main-nav-items-container
17+
18+
navMenuTrigger.addEventListener("click", function(){
19+
navItemsContainer.classList.toggle("show");
20+
});
21+
22+
}, false);
1423

0 commit comments

Comments
 (0)