@@ -3,7 +3,7 @@ import VimLogo from "./VimLogo.astro";
33---
44
55<header
6- class =" fixed top-0 right-0 left-0 z-50 bg-white/30 backdrop-blur-md transition-all duration-300 border-b border-gray-100 "
6+ class =" fixed top-0 right-0 left-0 z-50 border-b border-gray-100 bg-white/30 backdrop-blur-md transition-all duration-300"
77>
88 <div class =" container mx-auto px-4" >
99 <div class =" flex h-16 items-center justify-between" >
@@ -55,12 +55,102 @@ import VimLogo from "./VimLogo.astro";
5555 <button
5656 disabled
5757 class =" inline-flex h-auto items-center justify-center gap-2 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
58+ ><span class =" opacity-60" >EN</span ><span class =" mx-1" >/</span ><span
59+ class =" font-bold" >JA</span
60+ ></button
5861 >
59- <span class =" opacity-60" >EN</span >
60- <span class =" mx-1" >/</span >
61- <span class =" font-bold" >JA</span >
62+ </nav >
63+ <div class =" flex items-center md:hidden" >
64+ <button
65+ class =" inline-flex h-auto items-center justify-center gap-2 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
66+ ><span class =" opacity-60" >EN</span ><span class =" mx-1" >/</span ><span
67+ class =" font-bold" >JA</span
68+ ></button
69+ ><button
70+ class =" inline-flex h-10 w-10 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
71+ aria-label =" Toggle menu"
72+ >
73+ <span class =" sr-only" >Toggle menu</span >
74+ <span id =" menu-close" class =" hidden" >
75+ <svg
76+ xmlns =" http://www.w3.org/2000/svg"
77+ width =" 24"
78+ height =" 24"
79+ viewBox =" 0 0 24 24"
80+ fill =" none"
81+ stroke =" currentColor"
82+ stroke-width =" 2"
83+ stroke-linecap =" round"
84+ stroke-linejoin =" round"
85+ class =" lucide lucide-x h-6 w-6"
86+ ><path d =" M18 6 6 18" ></path ><path d =" m6 6 12 12" ></path >
87+ </svg >
88+ </span >
89+ <span id =" menu-open" >
90+ <svg
91+ xmlns =" http://www.w3.org/2000/svg"
92+ width =" 24"
93+ height =" 24"
94+ viewBox =" 0 0 24 24"
95+ fill =" none"
96+ stroke =" currentColor"
97+ stroke-width =" 2"
98+ stroke-linecap =" round"
99+ stroke-linejoin =" round"
100+ class =" lucide lucide-menu h-6 w-6"
101+ ><line x1 =" 4" x2 =" 20" y1 =" 12" y2 =" 12" ></line ><line
102+ x1 =" 4"
103+ x2 =" 20"
104+ y1 =" 6"
105+ y2 =" 6" ></line ><line x1 =" 4" x2 =" 20" y1 =" 18" y2 =" 18" ></line ></svg
106+ >
107+ </span >
62108 </button >
109+ </div >
110+ </div >
111+ </div >
112+ <div class =" border-t border-gray-100 bg-white md:hidden hidden" id =" mobile-menu" >
113+ <div class =" container mx-auto px-4 py-4" >
114+ <nav class =" flex flex-col space-y-4" >
115+ <a
116+ href =" #keynote"
117+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
118+ >基調講演</a
119+ ><a
120+ href =" #venue"
121+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
122+ >会場</a
123+ ><a
124+ href =" #about"
125+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
126+ >VimConf とは</a
127+ ><a
128+ href =" #schedule"
129+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
130+ >スケジュール</a
131+ ><a
132+ href =" #sponsors"
133+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
134+ >スポンサー</a
135+ ><a
136+ href =" #staff"
137+ class =" py-2 text-sm font-medium transition-colors hover:text-emerald-600"
138+ >スタッフ</a
139+ >
63140 </nav >
64141 </div >
65142 </div >
66143</header >
144+
145+ <script >
146+ const menuButton = document.querySelector('button[aria-label="Toggle menu"]');
147+ const mobileMenu = document.getElementById("mobile-menu");
148+ const menuOpen = document.getElementById("menu-open");
149+ const menuClose = document.getElementById("menu-close");
150+ menuButton.addEventListener("click", () => {
151+ menuButton.classList.toggle("open");
152+ mobileMenu.classList.toggle("hidden");
153+ menuOpen.classList.toggle("hidden");
154+ menuClose.classList.toggle("hidden");
155+ });
156+ </script >
0 commit comments