@@ -3,7 +3,7 @@ import VimLogo from "./VimLogo.astro";
3
3
---
4
4
5
5
<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"
7
7
>
8
8
<div class =" container mx-auto px-4" >
9
9
<div class =" flex h-16 items-center justify-between" >
@@ -55,12 +55,102 @@ import VimLogo from "./VimLogo.astro";
55
55
<button
56
56
disabled
57
57
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
58
61
>
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 >
62
108
</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
+ >
63
140
</nav >
64
141
</div >
65
142
</div >
66
143
</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