@@ -59,6 +59,8 @@ const Navbar: FC<NavbarProps> = ({
5959 } ;
6060 } , [ walletAddress ] ) ;
6161
62+ const [ isMobileMenuOpen , setIsMobileMenuOpen ] = useState ( false ) ;
63+
6264 return (
6365 < nav
6466 aria-label = "Primary"
@@ -81,6 +83,7 @@ const Navbar: FC<NavbarProps> = ({
8183 to = "/"
8284 className = "flex items-center gap-sm"
8385 style = { { textDecoration : "none" } }
86+ onClick = { ( ) => setIsMobileMenuOpen ( false ) }
8487 >
8588 < div
8689 style = { {
@@ -110,7 +113,7 @@ const Navbar: FC<NavbarProps> = ({
110113 </ span >
111114 </ NavLink >
112115
113- < div className = "flex gap-lg" style = { { marginLeft : "32px" } } >
116+ < div className = "flex gap-lg nav-desktop-links " style = { { marginLeft : "32px" } } >
114117 < NavLink
115118 to = "/"
116119 style = { ( { isActive } ) => ( {
@@ -154,41 +157,94 @@ const Navbar: FC<NavbarProps> = ({
154157 </ div >
155158
156159 < div className = "flex items-center gap-md" >
157- { walletAddress ? (
160+ < div className = "flex items-center gap-sm nav-desktop-links" >
161+ { walletAddress ? (
162+ < span
163+ aria-label = "Network badge"
164+ title = { `Connected network: ${ networkLabel } ` }
165+ style = { {
166+ padding : "6px 10px" ,
167+ borderRadius : "999px" ,
168+ fontSize : "0.75rem" ,
169+ fontWeight : "var(--font-semibold)" ,
170+ letterSpacing : "0.04em" ,
171+ textTransform : "uppercase" ,
172+ border :
173+ networkLabel === "Mainnet"
174+ ? "1px solid rgba(34, 197, 94, 0.45)"
175+ : "1px solid rgba(56, 189, 248, 0.45)" ,
176+ color :
177+ networkLabel === "Mainnet"
178+ ? "rgb(34, 197, 94)"
179+ : "var(--accent-cyan)" ,
180+ background :
181+ networkLabel === "Mainnet"
182+ ? "rgba(34, 197, 94, 0.08)"
183+ : "rgba(0, 240, 255, 0.08)" ,
184+ } }
185+ >
186+ { networkLabel }
187+ </ span >
188+ ) : null }
189+ < ThemeToggle />
190+ </ div >
191+
192+ < WalletConnect
193+ walletAddress = { walletAddress }
194+ usdcBalance = { usdcBalance }
195+ onConnect = { onConnect }
196+ onDisconnect = { onDisconnect }
197+ />
198+
199+ < button
200+ className = "nav-mobile-toggle"
201+ style = { { display : "none" } }
202+ onClick = { ( ) => setIsMobileMenuOpen ( ! isMobileMenuOpen ) }
203+ aria-label = { isMobileMenuOpen ? "Close menu" : "Open menu" }
204+ >
205+ { isMobileMenuOpen ? < X size = { 24 } /> : < Menu size = { 24 } /> }
206+ </ button >
207+ </ div >
208+ </ div >
209+
210+ < div className = { `nav-mobile-menu ${ isMobileMenuOpen ? "is-open" : "" } ` } >
211+ < NavLink
212+ to = "/"
213+ className = { ( { isActive } ) => `nav-mobile-link ${ isActive ? "active" : "" } ` }
214+ onClick = { ( ) => setIsMobileMenuOpen ( false ) }
215+ >
216+ { t ( "nav.vaults" ) }
217+ </ NavLink >
218+ < NavLink
219+ to = "/portfolio"
220+ className = { ( { isActive } ) => `nav-mobile-link ${ isActive ? "active" : "" } ` }
221+ onClick = { ( ) => setIsMobileMenuOpen ( false ) }
222+ >
223+ { t ( "nav.portfolio" ) }
224+ </ NavLink >
225+ < NavLink
226+ to = "/analytics"
227+ className = { ( { isActive } ) => `nav-mobile-link ${ isActive ? "active" : "" } ` }
228+ onClick = { ( ) => setIsMobileMenuOpen ( false ) }
229+ >
230+ { t ( "nav.analytics" ) }
231+ </ NavLink >
232+ < div className = "flex items-center justify-between" style = { { marginTop : "auto" , paddingTop : "24px" } } >
233+ < ThemeToggle />
234+ { walletAddress && (
158235 < span
159- aria-label = "Network badge"
160- title = { `Connected network: ${ networkLabel } ` }
161236 style = { {
162- padding : "6px 10px " ,
237+ padding : "6px 12px " ,
163238 borderRadius : "999px" ,
164- fontSize : "0.75rem" ,
165- fontWeight : "var(--font-semibold)" ,
166- letterSpacing : "0.04em" ,
167- textTransform : "uppercase" ,
168- border :
169- networkLabel === "Mainnet"
170- ? "1px solid rgba(34, 197, 94, 0.45)"
171- : "1px solid rgba(56, 189, 248, 0.45)" ,
172- color :
173- networkLabel === "Mainnet"
174- ? "rgb(34, 197, 94)"
175- : "var(--accent-cyan)" ,
176- background :
177- networkLabel === "Mainnet"
178- ? "rgba(34, 197, 94, 0.08)"
179- : "rgba(0, 240, 255, 0.08)" ,
239+ fontSize : "0.8rem" ,
240+ fontWeight : 600 ,
241+ background : networkLabel === "Mainnet" ? "rgba(34, 197, 94, 0.1)" : "rgba(0, 240, 255, 0.1)" ,
242+ color : networkLabel === "Mainnet" ? "rgb(34, 197, 94)" : "var(--accent-cyan)" ,
180243 } }
181244 >
182245 { networkLabel }
183246 </ span >
184- ) : null }
185- < ThemeToggle />
186- < WalletConnect
187- walletAddress = { walletAddress }
188- usdcBalance = { usdcBalance }
189- onConnect = { onConnect }
190- onDisconnect = { onDisconnect }
191- />
247+ ) }
192248 </ div >
193249 </ div >
194250 </ nav >
0 commit comments