From d6f356ccdf43401689bd04717abd47ade3cc16e0 Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Sat, 27 Dec 2025 15:02:21 -0800 Subject: [PATCH] feat: hamburger menu on small screens --- src/app/nav/nav.css | 83 +++++++++++++++++++++++++++++++++++++++ src/app/nav/nav.html | 25 ++++++++---- src/app/nav/nav.ts | 14 +++++++ src/app/ticker/ticker.css | 1 + src/app/ticker/ticker.ts | 2 +- 5 files changed, 116 insertions(+), 9 deletions(-) diff --git a/src/app/nav/nav.css b/src/app/nav/nav.css index 49d962a..9724358 100644 --- a/src/app/nav/nav.css +++ b/src/app/nav/nav.css @@ -1,4 +1,87 @@ nav { background-color: var(--color-secondary); color: var(--color-primary); + position: relative; +} + +.nav-menu { + display: flex; + gap: 1rem; + list-style: none; +} + +.hamburger-btn { + display: none; + flex-direction: column; + gap: 5px; + background: none; + border: none; + cursor: pointer; + padding: 5px; + z-index: 31; +} + +.hamburger-btn span { + width: 25px; + height: 3px; + background-color: var(--color-accent); + transition: all 0.3s ease; +} + +.hamburger-btn:hover span { + background-color: var(--color-primary); +} + +/* Mobile styles */ +@media (max-width: 500px) { + .hamburger-btn { + display: flex; + } + + .nav-menu { + position: absolute; + top: 100%; + left: 0; + right: 0; + flex-direction: column; + background-color: var(--color-secondary); + padding: 1rem; + gap: 0; + max-height: 0; + overflow: hidden; + transition: max-height 0.3s ease; + opacity: 0; + } + + .nav-menu.menu-open { + max-height: 500px; + opacity: 1; + } + + .nav-menu a { + display: block; + padding: 0.75rem 0; + border-bottom: 1px solid rgba(224, 224, 224, 0.1); + } + + .nav-menu a:last-child { + border-bottom: none; + } + + /* Hamburger animation */ + nav.menu-open .hamburger-btn { + gap: 0; + } + + nav.menu-open .hamburger-btn span:nth-child(1) { + transform: rotate(45deg) translateY(4px); + } + + nav.menu-open .hamburger-btn span:nth-child(2) { + opacity: 0; + } + + nav.menu-open .hamburger-btn span:nth-child(3) { + transform: rotate(-45deg) translateY(-4px); + } } \ No newline at end of file diff --git a/src/app/nav/nav.html b/src/app/nav/nav.html index 21e2ee5..95a9c35 100644 --- a/src/app/nav/nav.html +++ b/src/app/nav/nav.html @@ -1,13 +1,22 @@ -