Skip to content

Commit

Permalink
feat: styled desktop navbar and changed mobile breakpoint to tablet
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Liu authored and Brian Liu committed Apr 5, 2024
1 parent 4cf7512 commit d839b7e
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/components/Hamburger/Hamburger.scss
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.hamburger {
display: none;

@media screen and (max-width: $mobile-breakpoint) {
@media screen and (max-width: $tablet-breakpoint) {
display: block;
padding: 0;
z-index: 99;
Expand Down
43 changes: 29 additions & 14 deletions src/components/Navbar/Navbar.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
nav {
border: 1px solid red;
position: fixed;
display: grid;
place-items: center;
Expand All @@ -15,8 +16,31 @@ nav {
position: absolute;
right: 0;
pointer-events: auto;
li button {
font-size: 20px;
li {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
li div {
height: 44px;
width: 44px;
display: flex;
align-items: center;
justify-content: center;

svg {
transition: all 0.3s ease;
}
.active {
transform: scale(1.2);
}
}

li {
.divider {
padding: 4px 0 4px 0;
}
}
}

Expand All @@ -34,21 +58,12 @@ nav {
display: none;
pointer-events: auto;
}
}

@media (max-width: $tablet-breakpoint) {
left: 0;
@media (max-width: $tablet-breakpoint) {
nav {
right: 0;

.desktop-nav {
right: auto;
transform-origin: center bottom;
transform: rotate(-90deg) translateY(50%);
position: absolute;
bottom: 3rem;
}
}

@media (max-width: $mobile-breakpoint) {
position: absolute;
display: flex;
align-items: start;
Expand Down
39 changes: 36 additions & 3 deletions src/components/Navbar/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export default function Navbar({
const [isHamburgerOpen, setIsHamburgerOpen] = useState(false);
const pagesList = ['Home', 'FAQ', 'Timeline', 'Judges'];
const isDesktop = useIsDesktop();
const [pageSelected, setPageSelected] = useState('Home');

function scrollToSection(scrollOffset: number) {
if (isDesktop) {
Expand All @@ -35,6 +36,7 @@ export default function Navbar({
return {
onClick: () => {
scrollToSection(scrollRefList[index].current?.offsetTop || 0);
setPageSelected(pageName);
},
name: pageName
};
Expand Down Expand Up @@ -65,11 +67,42 @@ export default function Navbar({
<nav role='navigation'>
{/* Desktop Nav */}
<ul className='desktop-nav'>
{links.map(link => (
<li key={link.name}>
<button onClick={link.onClick}>{link.name}</button>
{links.slice(0, -1).map(link => (
<li key={link.name} className={link.name === pageSelected ? 'active' : ''}>
<div className='outerCont' onClick={link.onClick}>
{link.name === pageSelected ? (
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" className={link.name === pageSelected ? 'active' : ''}>
<rect x="30" width="30" height="30" rx="15" transform="rotate(90 30 0)" fill="#F1F1F1"/>
<rect x="26.7271" y="3.27295" width="23.4545" height="23.4545" rx="11.7273" transform="rotate(90 26.7271 3.27295)" fill="#F1F1F1" stroke="#090921" strokeWidth="3"/>
</svg>
) : (
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="28.5" y="1.5" width="27" height="27" rx="13.5" transform="rotate(90 28.5 1.5)" stroke="#F1F1F1" strokeWidth="3"/>
</svg>
)}
</div>
<svg width="4" height="30" viewBox="0 0 4 30" fill="none" xmlns="http://www.w3.org/2000/svg" className='divider'>
<path d="M2 0L2 30" stroke="#F1F1F1" strokeWidth="3" strokeDasharray="10 10"/>
</svg>
</li>
))}
{links.slice(-1).map(link => (
<li key={link.name} className={link.name === pageSelected ? 'active' : ''}>
<div className='outerCont' onClick={link.onClick}>
{link.name === pageSelected ? (
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" className={link.name === pageSelected ? 'active' : ''}>
<rect x="30" width="30" height="30" rx="15" transform="rotate(90 30 0)" fill="#F1F1F1"/>
<rect x="26.7271" y="3.27295" width="23.4545" height="23.4545" rx="11.7273" transform="rotate(90 26.7271 3.27295)" fill="#F1F1F1" stroke="#090921" strokeWidth="3"/>
</svg>
) : (
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" >
<rect x="28.5" y="1.5" width="27" height="27" rx="13.5" transform="rotate(90 28.5 1.5)" stroke="#F1F1F1" strokeWidth="3"/>
</svg>
)}
</div>
</li>
))}

</ul>


Expand Down
1 change: 1 addition & 0 deletions src/styles/App.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
.scroll-cont {
height: 100vh;
position: relative;
overflow-x: hidden;
&:before,
&:after {
content: '';
Expand Down

0 comments on commit d839b7e

Please sign in to comment.