@@ -155,52 +155,57 @@ export function Header() {
155
155
const [ showBurgerMenu , setShowBurgerMenu ] = useState ( false ) ;
156
156
157
157
return (
158
- < header className = "flex w-full items-center border-b bg-background" >
159
- < div className = "container flex items-center justify-between gap-6 p-4 xl:justify-start" >
160
- < Link
161
- className = "flex items-center gap-2"
162
- href = "/"
163
- aria-label = "thirdweb Docs"
164
- title = "thirdweb Docs"
165
- >
166
- < ThirdwebIcon className = "size-8" />
167
- < span className = "font-bold text-[23px] text-foreground leading-none tracking-tight" >
168
- Docs
169
- </ span >
170
- </ Link >
171
-
172
- < div className = "flex items-center gap-1 xl:hidden" >
173
- < ThemeSwitcher className = "border-none bg-transparent" />
174
-
175
- < DocSearch variant = "icon" />
176
-
158
+ < header className = "flex w-full flex-col gap-2 border-b bg-background p-2 lg:px-4" >
159
+ < div className = "container flex items-center justify-between gap-6" >
160
+ { /* Top row */ }
161
+ < div className = "flex items-center gap-2" >
177
162
< Link
178
- href = "https://github.com/thirdweb-dev"
179
- target = "_blank"
180
- className = "text-foreground"
163
+ className = "flex items-center gap-2"
164
+ href = "/"
165
+ aria-label = "thirdweb Docs"
166
+ title = "thirdweb Docs"
181
167
>
182
- < GithubIcon className = "mx-3 size-6" />
168
+ < ThirdwebIcon className = "size-8" />
169
+ < span className = "font-bold text-[23px] text-foreground leading-none tracking-tight" >
170
+ Docs
171
+ </ span >
183
172
</ Link >
173
+ </ div >
184
174
185
- { /* Mobile burger menu */ }
186
- < Button
187
- variant = "ghost"
188
- className = "p-2"
189
- onClick = { ( ) => setShowBurgerMenu ( ! showBurgerMenu ) }
190
- >
191
- < MenuIcon className = "size-7" />
192
- </ Button >
175
+ < div className = "flex items-center gap-3" >
176
+ < div className = "hidden xl:flex" >
177
+ < ThemeSwitcher />
178
+ </ div >
179
+
180
+ < div className = "hidden xl:block" >
181
+ < DocSearch variant = "search" />
182
+ </ div >
183
+
184
+ < div className = "flex items-center gap-1 xl:hidden" >
185
+ < ThemeSwitcher className = "border-none bg-transparent" />
186
+ < DocSearch variant = "icon" />
187
+ < Link
188
+ href = "https://github.com/thirdweb-dev"
189
+ target = "_blank"
190
+ className = "text-foreground"
191
+ >
192
+ < GithubIcon className = "mx-3 size-6" />
193
+ </ Link >
194
+ < Button
195
+ variant = "ghost"
196
+ className = "p-2"
197
+ onClick = { ( ) => setShowBurgerMenu ( ! showBurgerMenu ) }
198
+ >
199
+ < MenuIcon className = "size-7" />
200
+ </ Button >
201
+ </ div >
193
202
</ div >
203
+ </ div >
194
204
195
- < nav
196
- className = { clsx (
197
- "grow gap-5" ,
198
- ! showBurgerMenu ? "hidden xl:flex" : "flex" ,
199
- "fade-in-20 slide-in-from-top-3 fixed inset-0 top-sticky-top-height animate-in flex-col overflow-auto bg-card p-6" ,
200
- "xl:static xl:animate-none xl:flex-row xl:justify-between xl:bg-transparent xl:p-0" ,
201
- ) }
202
- >
203
- < ul className = "flex flex-col gap-5 xl:flex-row xl:items-center" >
205
+ { /* Bottom row - hidden on mobile */ }
206
+ < div className = "container hidden items-center justify-between gap-6 xl:flex" >
207
+ < nav className = "flex grow gap-5" >
208
+ < ul className = "flex flex-row items-center gap-5" >
204
209
< DropdownLinks
205
210
links = { connectLinks }
206
211
onLinkClick = { ( ) => setShowBurgerMenu ( false ) }
@@ -230,50 +235,116 @@ export function Header() {
230
235
category = "Tools"
231
236
/>
232
237
</ ul >
238
+ </ nav >
233
239
234
- < div className = "flex flex-col justify-start gap-5 xl:flex-row xl:items-center xl:gap-3" >
235
- < div className = "hidden xl:flex" >
236
- < ThemeSwitcher />
240
+ < div className = "flex items-center gap-3" >
241
+ < div className = "px-1" >
242
+ < DropdownLinks
243
+ links = { apisLinks }
244
+ onLinkClick = { ( ) => setShowBurgerMenu ( false ) }
245
+ category = "APIs"
246
+ />
247
+ </ div >
248
+
249
+ < div className = "px-1" >
250
+ < DropdownLinks
251
+ links = { supportLinks }
252
+ onLinkClick = { ( ) => setShowBurgerMenu ( false ) }
253
+ category = "Support"
254
+ />
255
+ </ div >
256
+
257
+ < NavLink
258
+ name = "Changelog"
259
+ href = "/changelog"
260
+ onClick = { ( ) => {
261
+ setShowBurgerMenu ( false ) ;
262
+ } }
263
+ />
264
+
265
+ < Link
266
+ href = "https://github.com/thirdweb-dev"
267
+ target = "_blank"
268
+ className = "text-muted-foreground transition-colors hover:text-foreground"
269
+ >
270
+ < GithubIcon className = "mx-2 size-6" />
271
+ </ Link >
272
+ </ div >
273
+ </ div >
274
+
275
+ { /* Mobile menu */ }
276
+ { showBurgerMenu && (
277
+ < div className = "fixed inset-0 top-sticky-top-height z-50 overflow-auto bg-card p-6 xl:hidden" >
278
+ < div className = "flex flex-col gap-6" >
279
+ < div className = "flex flex-col gap-4" >
280
+ < h3 className = "font-semibold text-lg" > Connect</ h3 >
281
+ { connectLinks . map ( ( link ) => (
282
+ < NavLink
283
+ key = { link . name }
284
+ name = { link . name }
285
+ href = { link . href }
286
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
287
+ icon = { link . icon }
288
+ />
289
+ ) ) }
290
+ </ div >
291
+
292
+ < div className = "flex flex-col gap-4" >
293
+ < h3 className = "font-semibold text-lg" > Products</ h3 >
294
+ { links . map ( ( link ) => (
295
+ < NavLink
296
+ key = { link . name }
297
+ name = { link . name }
298
+ href = { link . href }
299
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
300
+ />
301
+ ) ) }
237
302
</ div >
238
303
239
- < div className = "hidden xl:block" >
240
- < DocSearch variant = "search" />
304
+ < div className = "flex flex-col gap-4" >
305
+ < h3 className = "font-semibold text-lg" > Tools</ h3 >
306
+ { toolLinks . map ( ( link ) => (
307
+ < NavLink
308
+ key = { link . name }
309
+ name = { link . name }
310
+ href = { link . href }
311
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
312
+ />
313
+ ) ) }
241
314
</ div >
242
315
243
- < div className = "xl:px-1" >
244
- < DropdownLinks
245
- links = { apisLinks }
246
- onLinkClick = { ( ) => setShowBurgerMenu ( false ) }
247
- category = "APIs"
248
- />
316
+ < div className = "flex flex-col gap-4" >
317
+ < h3 className = "font-semibold text-lg" > APIs</ h3 >
318
+ { apisLinks . map ( ( link ) => (
319
+ < NavLink
320
+ key = { link . name }
321
+ name = { link . name }
322
+ href = { link . href }
323
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
324
+ />
325
+ ) ) }
249
326
</ div >
250
327
251
- < div className = "xl:px-1" >
252
- < DropdownLinks
253
- links = { supportLinks }
254
- onLinkClick = { ( ) => setShowBurgerMenu ( false ) }
255
- category = "Support"
256
- />
328
+ < div className = "flex flex-col gap-4" >
329
+ < h3 className = "font-semibold text-lg" > Support</ h3 >
330
+ { supportLinks . map ( ( link ) => (
331
+ < NavLink
332
+ key = { link . name }
333
+ name = { link . name }
334
+ href = { link . href }
335
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
336
+ />
337
+ ) ) }
257
338
</ div >
258
339
259
340
< NavLink
260
341
name = "Changelog"
261
342
href = "/changelog"
262
- onClick = { ( ) => {
263
- setShowBurgerMenu ( false ) ;
264
- } }
343
+ onClick = { ( ) => setShowBurgerMenu ( false ) }
265
344
/>
266
-
267
- < Link
268
- href = "https://github.com/thirdweb-dev"
269
- target = "_blank"
270
- className = "hidden text-muted-foreground transition-colors hover:text-foreground xl:block"
271
- >
272
- < GithubIcon className = "mx-2 size-6" />
273
- </ Link >
274
345
</ div >
275
- </ nav >
276
- </ div >
346
+ </ div >
347
+ ) }
277
348
</ header >
278
349
) ;
279
350
}
0 commit comments