Skip to content

Commit 17280d4

Browse files
committed
feat(top-nav): add mobile dropdown and styles
1 parent 2e1367c commit 17280d4

File tree

3 files changed

+95
-6
lines changed

3 files changed

+95
-6
lines changed

partials/navigation-top.hbs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@
33
<a class='navigation__logo' href='/'>
44
<img src={{asset 'images/gem-logo--badge.svg'}} />
55
</a>
6-
<button class='navigation__mobile-menu-trigger closed' id='navigation__mobile-menu-trigger'></button>
7-
{{navigation}}
6+
<div class='navigation__list__wrapper'>
7+
<button
8+
aria-controls='navigation__mobile-menu-trigger'
9+
aria-haspopup='true'
10+
class='navigation__mobile-menu-trigger closed'
11+
id='navigation__mobile-menu-trigger'
12+
>
13+
</button>
14+
{{navigation}}
15+
</div>
816
<div class='navigation__membership kg-button-card'>
917
<a class='kg-btn' href='#/portal/signup'>Membership</a>
1018
</div>

src/css/layout/navigation-top.css

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
.navigation__inner {
55
align-items: center;
66
display: grid;
7-
grid-template-areas: 'logo mobile-trigger membership';
7+
grid-template-areas: 'logo trigger membership';
88
grid-template-columns: 1fr repeat(2, max-content);
99
margin: auto;
1010
max-width: var(--layout-inner-max-width);
1111
padding: 8px 20px 8px 10px;
12-
position: relative;
1312
}
1413

1514
.navigation__logo {
@@ -28,7 +27,6 @@
2827
background-size: contain;
2928
border: none;
3029
cursor: pointer;
31-
grid-area: mobile-trigger;
3230
height: 24px;
3331
margin-right: 20px;
3432
width: 24px;
@@ -42,9 +40,78 @@
4240
background-image: url('/assets/images/icon__close.svg');
4341
}
4442

43+
.navigation__list__wrapper {
44+
grid-area: trigger;
45+
position: relative;
46+
}
47+
4548
.navigation__list {
49+
background-color: white;
4650
display: none;
47-
grid-area: list;
51+
flex-direction: column;
52+
gap: 20px;
53+
list-style: none;
54+
padding: 16px 30px;
55+
z-index: 1;
56+
}
57+
58+
.navigation__list--mobile-closed {
59+
display: none;
60+
}
61+
62+
.navigation__list--mobile-opened {
63+
background-color: white;
64+
border-color: rgba(0, 0, 0, 0.1);
65+
border-radius: 0 0 8px 8px;
66+
border-style: solid;
67+
border-width: 0 1px 1px 1px;
68+
box-shadow: 0px 10px 30px 0 rgba(0, 0, 0, 0.04);
69+
display: flex;
70+
flex-direction: column;
71+
left: 25%;
72+
margin-top: 0;
73+
min-width: 275px;
74+
position: absolute;
75+
top: 65px;
76+
transform: translateX(-50%);
77+
}
78+
79+
.navigation__list--mobile-opened::before {
80+
border-top: 4px solid var(--color-yellow);
81+
content: '';
82+
display: block;
83+
position: absolute;
84+
right: calc(50% - 37.5px);
85+
top: -3px;
86+
width: 75px;
87+
}
88+
89+
.navigation__item {
90+
a {
91+
align-items: center;
92+
box-shadow: none;
93+
color: var(--color-navy);
94+
display: flex;
95+
font-family: 'Rubik', sans-serif;
96+
font-size: 1rem;
97+
line-height: 1.125rem;
98+
min-height: 30px;
99+
padding: 12px;
100+
}
101+
102+
a:hover {
103+
background-color: var(--color-lightblue);
104+
}
105+
}
106+
107+
.navigation__item.current {
108+
a {
109+
background-color: var(--color-yellow);
110+
}
111+
112+
a:hover {
113+
background-color: var(--color-lightblue);
114+
}
48115
}
49116

50117
.navigation__membership {
@@ -55,5 +122,10 @@
55122
.navigation__mobile-menu-trigger {
56123
display: none;
57124
}
125+
126+
.navigation__list--mobile-closed,
127+
.navigation__list--mobile-opened {
128+
display: none;
129+
}
58130
}
59131
}

src/js/app/navigation-top.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
const mobileTrigger = document.getElementById(
22
'navigation__mobile-menu-trigger',
33
);
4+
const list = document.querySelector('.navigation--top .navigation__list');
45

56
function toggleMobileMenu() {
67
this.classList.toggle('closed');
78
this.classList.toggle('opened');
9+
10+
if (this.classList.contains('closed')) {
11+
list.classList.add('navigation__list--mobile-closed');
12+
list.classList.remove('navigation__list--mobile-opened');
13+
} else {
14+
list.classList.remove('navigation__list--mobile-closed');
15+
list.classList.add('navigation__list--mobile-opened');
16+
}
817
}
918

1019
mobileTrigger.addEventListener('click', toggleMobileMenu);

0 commit comments

Comments
 (0)