55 DropdownMenuItem ,
66 DropdownMenuTrigger ,
77} from "@/components/ui/dropdown-menu" ;
8- import { useIsMobile } from "@/hooks/use-mobile" ;
98import { useScrollDirection } from "@/hooks/use-scroll-direction" ;
9+ import { cn } from "@/lib/utils.ts" ;
1010import { Github , Menu , Moon , Play , Sun } from "lucide-react" ;
1111import { useTheme } from "next-themes" ;
1212import { Link , useLocation , useNavigate } from "react-router-dom" ;
@@ -15,7 +15,6 @@ const Header = () => {
1515 const { theme, setTheme } = useTheme ( ) ;
1616 const navigate = useNavigate ( ) ;
1717 const location = useLocation ( ) ;
18- const isMobile = useIsMobile ( ) ;
1918 const scrollDirection = useScrollDirection ( ) ;
2019
2120 const isActiveLink = ( path : string ) => {
@@ -46,43 +45,48 @@ const Header = () => {
4645 </ div >
4746
4847 < nav className = "hidden lg:flex items-center space-x-8" >
48+ < Link
49+ to = "/"
50+ className = { cn (
51+ "transition-colors hover:text-primary" ,
52+ isActiveLink ( "/" ) ? "text-primary bold" : "text-muted-foreground" ,
53+ ) }
54+ >
55+ Início
56+ </ Link >
4957 < Link
5058 to = "/constructo"
51- className = { `transition-colors hover:text-primary ${
52- isActiveLink ( "/constructo" )
53- ? "text-primary"
54- : "text-muted-foreground"
55- } `}
59+ className = { cn (
60+ "transition-colors hover:text-primary" ,
61+ isActiveLink ( "/constructo" ) ? "text-primary" : "text-muted-foreground" ,
62+ ) }
5663 >
5764 Constructo
5865 </ Link >
5966 < Link
6067 to = "/serendipity"
61- className = { `transition-colors hover:text-primary ${
62- isActiveLink ( "/serendipity" )
63- ? "text-primary"
64- : "text-muted-foreground"
65- } `}
68+ className = { cn (
69+ "transition-colors hover:text-primary" ,
70+ isActiveLink ( "/serendipity" ) ? "text-primary" : "text-muted-foreground" ,
71+ ) }
6672 >
6773 Serendipity
6874 </ Link >
6975 < Link
7076 to = "/effulgence"
71- className = { `transition-colors hover:text-primary ${
72- isActiveLink ( "/effulgence" )
73- ? "text-primary"
74- : "text-muted-foreground"
75- } `}
77+ className = { cn (
78+ "transition-colors hover:text-primary" ,
79+ isActiveLink ( "/effulgence" ) ? "text-primary" : "text-muted-foreground" ,
80+ ) }
7681 >
7782 Effulgence
7883 </ Link >
7984 < Link
8085 to = "/docs"
81- className = { `transition-colors hover:text-primary ${
82- isActiveLink ( "/docs" )
83- ? "text-primary"
84- : "text-muted-foreground"
85- } `}
86+ className = { cn (
87+ "transition-colors hover:text-primary" ,
88+ isActiveLink ( "/docs" ) ? "text-primary" : "text-muted-foreground" ,
89+ ) }
8690 >
8791 Documentação
8892 </ Link >
@@ -101,63 +105,77 @@ const Header = () => {
101105 </ Button >
102106
103107 { /* Mobile menu dropdown */ }
104- { isMobile && (
108+ < div className = "flex lg:hidden" >
105109 < DropdownMenu >
106110 < DropdownMenuTrigger asChild >
107111 < Button variant = "ghost" size = "icon" >
108112 < Menu className = "w-4 h-4" />
109113 </ Button >
110114 </ DropdownMenuTrigger >
111115 < DropdownMenuContent align = "end" className = "w-48 bg-background" >
116+ < DropdownMenuItem asChild >
117+ < Link
118+ to = "/"
119+ className = { cn (
120+ "transition-colors hover:text-primary" ,
121+ isActiveLink ( "/" ) ? "text-primary bold" : "bold" ,
122+ ) }
123+ >
124+ Início
125+ </ Link >
126+ </ DropdownMenuItem >
112127 < DropdownMenuItem asChild >
113128 < Link
114129 to = "/constructo"
115- className = "w-full cursor-pointer"
130+ className = { cn (
131+ "transition-colors hover:text-primary" ,
132+ isActiveLink ( "/constructo" ) ? "text-primary bold" : "bold" ,
133+ ) }
116134 >
117135 Constructo
118136 </ Link >
119137 </ DropdownMenuItem >
120138 < DropdownMenuItem asChild >
121139 < Link
122140 to = "/serendipity"
123- className = "w-full cursor-pointer"
141+ className = { cn (
142+ "transition-colors hover:text-primary" ,
143+ isActiveLink ( "/serendipity" ) ? "text-primary bold" : "bold" ,
144+ ) }
124145 >
125146 Serendipity
126147 </ Link >
127148 </ DropdownMenuItem >
128149 < DropdownMenuItem asChild >
129150 < Link
130151 to = "/effulgence"
131- className = "w-full cursor-pointer"
152+ className = { cn (
153+ "transition-colors hover:text-primary" ,
154+ isActiveLink ( "/effulgence" ) ? "text-primary bold" : "bold" ,
155+ ) }
132156 >
133157 Effulgence
134158 </ Link >
135159 </ DropdownMenuItem >
136160 < DropdownMenuItem asChild >
137161 < Link
138162 to = "/docs"
139- className = "w-full cursor-pointer"
163+ className = { cn (
164+ "transition-colors hover:text-primary" ,
165+ isActiveLink ( "/docs" ) ? "text-primary bold" : "bold" ,
166+ ) }
140167 >
141168 Documentação
142169 </ Link >
143170 </ DropdownMenuItem >
144- < DropdownMenuItem asChild >
145- < Link
146- to = "/docs"
147- className = "w-full cursor-pointer flex items-center"
148- >
149- < Play className = "w-4 h-4 mr-2" />
150- Começar
151- </ Link >
152- </ DropdownMenuItem >
153171 </ DropdownMenuContent >
154172 </ DropdownMenu >
155- ) }
173+ </ div >
156174
157175 { /* Desktop "Começar" button - hidden on mobile */ }
158176 < Button
159177 size = "sm"
160- className = { ` bg-gradient-primary shadow-elegant ${ isMobile ? 'hidden' : '' } ` }
178+ className = "hidden lg:flex bg-gradient-primary hover: shadow-glow hover:scale-105 transition-all duration-300"
161179 onClick = { ( ) => navigate ( "/docs" ) }
162180 >
163181 < Play className = "w-4 h-4 mr-2" />
0 commit comments