www.mtkn.jp

Manuscripts for my personal webpage.
git clone https://git.mtkn.jp/www.mtkn.jp
Log | Files | Refs | LICENSE

commit a5fdd1271adfa14e69961d92aa68bcfbeb2ffd00
parent 47602fcc3c72316b2727e7eb91f22fd54a0168a0
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sun,  1 Mar 2026 09:19:52 +0900

upgrade hamburger

Diffstat:
Mcontent/computer/web_design/navbar.html | 86++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 44 insertions(+), 42 deletions(-)

diff --git a/content/computer/web_design/navbar.html b/content/computer/web_design/navbar.html @@ -14,82 +14,82 @@ body { } nav { display: flex; + padding: 1rem; justify-content: space-between; + align-items: center; background-color: #eaffff; } -nav a, nav label { +#home, .menu-item { padding: 0.5rem; } -.menu input, .menu label { +#hamburger-toggle, #hamburger { display: none; } -.menu { +.menu-items { display: flex; } @media (max-width: 480px) { :root { - --hamburger-width: 20px; - --hamburger-height: 12px; - --hamburger-bar-width: 2px; - --hamburger-margin: 10px; + --hamburger-width: 32px; + --hamburger-bar-width: 4px; + --hamburger-gap: 3px; + --hamburger-height: calc(var(--hamburger-bar-width)*3 + var(--hamburger-gap)*2); + --transition-delay: 0.5s; } .menu { - flex-direction: column; - position: absolute; - align-items: end; - right: 0; + position: relative; } - .menu > a { - display: none; + .menu-items { + padding: 1rem; + flex-direction: column; + position: fixed; + left: 100%; background-color: #eaffff; z-index: 10; + transition: var(--transition-delay); } - #hamburger-toggle:checked ~ a { - display: inline; + #hamburger-toggle:checked ~ .menu-items { + transform: translateX(-100%); + transition: var(--transition-delay); } #hamburger { - display: inline; + display: inline-block; width: var(--hamburger-width); height: var(--hamburger-height); - margin: var(--hamburger-margin); - padding: 0; - transition: 0.5s; + position: relative; + transition: var(--transition-delay); } #bar1, #bar2, #bar3 { position: absolute; width: var(--hamburger-width); - right: var(--hamburger-margin); - height: 0; - border: solid #5e5eea var(--hamburger-bar-width); - border-radius: var(--hamburger-bar-width); - transition: 0.5s; + height: var(--hamburger-bar-width); + background-color: #5e5eea; + border-radius: calc(var(--hamburger-bar-width)/2); + transition: var(--transition-delay); } #bar2 { - top: calc(var(--hamburger-margin) + var(--hamburger-height) / 2); + top: calc(var(--hamburger-bar-width) + var(--hamburger-gap)); } #bar3 { - top: calc(var(--hamburger-margin) + var(--hamburger-height)); - } - #hamburger-toggle:checked ~ #hamburger { - width: var(--hamburger-height); - transition: 0.5s; + top: calc(var(--hamburger-bar-width) * 2 + var(--hamburger-gap) * 2); } #hamburger-toggle:checked ~ label #bar1 { width: calc(1.41421356 * var(--hamburger-height)); transform-origin: center right; - transform: translateY(calc(var(--hamburger-bar-width)/-1.41421356)) rotate(-45deg); - transition: 0.5s; + transform: translateY(calc(var(--hamburger-bar-width)/-2)) rotate(-45deg); + transition: var(--transition-delay); } #hamburger-toggle:checked ~ label #bar2 { - width: var(--hamburger-height); + width: 0; opacity: 0; - transition: 0.5s; + transform: translateX(var(--hamburger-width)); + transition: var(--transition-delay); } #hamburger-toggle:checked ~ label #bar3 { width: calc(1.41421356 * var(--hamburger-height)); transform-origin: center right; - transform: translateY(calc(var(--hamburger-bar-width)/1.41421356)) rotate(45deg); - transition: 0.5s; + transform: translateY(calc(var(--hamburger-bar-width)/2)) rotate(45deg); + transition: var(--transition-delay); } } @@ -97,7 +97,7 @@ nav a, nav label { </head> <body> <nav> - <a href="#">Home</a> + <a href="#" id="home">Home</a> <div class="menu"> <input type="checkbox" id="hamburger-toggle"> <label for="hamburger-toggle" id="hamburger"> @@ -105,11 +105,13 @@ nav a, nav label { <div id="bar2"></div> <div id="bar3"></div> </label> - <a href="#">menu1</a> - <a href="#">menu2</a> - <a href="#">menu3</a> - <a href="#">menu4</a> - <a href="#">menu5</a> + <div class="menu-items"> + <a href="#" class="menu-item">menu1</a> + <a href="#" class="menu-item">menu2</a> + <a href="#" class="menu-item">menu3</a> + <a href="#" class="menu-item">menu4</a> + <a href="#" class="menu-item">menu5</a> + </div> </div> </nav> <h1>Navbar</h1>