@@ -13,47 +13,91 @@ function LoginContent() {
1313 const error = searchParams . get ( "error" ) ;
1414
1515 return (
16- < div className = "h-screen bg-background flex items-center justify-center p-4" >
17- < div className = "w-full max-w-md" >
18- < Card className = "shadow-xl" >
19- < CardHeader className = "text-center pb-6 space-y-2" >
20- < div className = "mx-auto w-16 h-16 bg-primary/10 rounded-full flex items-center justify-center mb-4" >
21- < svg className = "w-8 h-8" fill = "currentColor" viewBox = "0 0 20 20" >
22- < path
23- fillRule = "evenodd"
24- d = "M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.942.359.31.678.921.678 1.856 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
25- clipRule = "evenodd"
26- />
27- </ svg >
28- </ div >
29- < CardTitle className = "text-2xl font-bold" > GitMon</ CardTitle >
30- < p className = "text-muted-foreground text-sm" >
31- GitHub organization analytics and monitoring
16+ < div className = "h-screen flex flex-col md:flex-row" >
17+ < div className = "hidden md:flex md:w-1/2 bg-gradient-to-br from-black to-gray-900 dark:from-gray-950 dark:to-black relative overflow-hidden" >
18+ < div className = "absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,rgba(139,92,246,0.1),transparent_50%)]" />
19+ < div className = "absolute inset-0 bg-[linear-gradient(to_right,rgba(255,255,255,0.02)_1px,transparent_1px),linear-gradient(to_bottom,rgba(255,255,255,0.02)_1px,transparent_1px)] bg-[size:4rem_4rem]" />
20+
21+ < div className = "relative z-10 flex flex-col justify-between p-12 text-white" >
22+ < div >
23+ < svg className = "w-12 h-12" fill = "currentColor" viewBox = "0 0 20 20" >
24+ < path
25+ fillRule = "evenodd"
26+ d = "M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.942.359.31.678.921.678 1.856 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
27+ clipRule = "evenodd"
28+ />
29+ </ svg >
30+ < h1 className = "text-4xl font-bold mt-8 mb-4" > GitHubMon</ h1 >
31+ < p className = "text-xl text-gray-300 max-w-md" >
32+ Powerful GitHub analytics and monitoring for modern development teams
3233 </ p >
33- </ CardHeader >
34+ </ div >
3435
35- < CardContent className = "space-y-6 pb-8" >
36- { error && (
37- < div className = "p-3 rounded-md bg-destructive/10 border border-destructive/20" >
38- < p className = "text-sm text-destructive" >
39- { error === "authentication_failed"
40- ? "Authentication failed. Please try again."
41- : "An error occurred during sign in. Please try again." }
42- </ p >
36+ < div className = "space-y-6" >
37+ < div className = "flex items-center gap-4" >
38+ < div className = "w-12 h-12 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center" >
39+ < svg className = "w-6 h-6" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
40+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
41+ </ svg >
4342 </ div >
44- ) }
43+ < div >
44+ < h3 className = "font-semibold" > Real-time Analytics</ h3 >
45+ < p className = "text-sm text-gray-400" > Track repository performance</ p >
46+ </ div >
47+ </ div >
48+ < div className = "flex items-center gap-4" >
49+ < div className = "w-12 h-12 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center" >
50+ < svg className = "w-6 h-6" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
51+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" />
52+ </ svg >
53+ </ div >
54+ < div >
55+ < h3 className = "font-semibold" > Smart Notifications</ h3 >
56+ < p className = "text-sm text-gray-400" > Stay updated on what matters</ p >
57+ </ div >
58+ </ div >
59+ < div className = "flex items-center gap-4" >
60+ < div className = "w-12 h-12 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center" >
61+ < svg className = "w-6 h-6" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
62+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4" />
63+ </ svg >
64+ </ div >
65+ < div >
66+ < h3 className = "font-semibold" > Customizable</ h3 >
67+ < p className = "text-sm text-gray-400" > Tailored to your workflow</ p >
68+ </ div >
69+ </ div >
70+ </ div >
71+
72+ < div className = "text-sm text-gray-400" >
73+ Trusted by development teams worldwide
74+ </ div >
75+ </ div >
76+ </ div >
4577
46- < div className = "text-center space-y-2" >
47- < h3 className = "text-lg font-semibold" > Welcome Back</ h3 >
48- < p className = "text-sm text-muted-foreground" >
49- Sign in with your GitHub account to continue
78+ < div className = "flex-1 flex items-center justify-center p-8 bg-background" >
79+ < div className = "w-full max-w-md space-y-8" >
80+ < div className = "text-center md:text-left animate-in fade-in slide-in-from-bottom-4 duration-700" >
81+ < h2 className = "text-3xl font-bold mb-2" > Welcome back</ h2 >
82+ < p className = "text-muted-foreground" >
83+ Sign in with your GitHub account to continue
84+ </ p >
85+ </ div >
86+
87+ { error && (
88+ < div className = "p-4 rounded-lg bg-destructive/10 border border-destructive/20 animate-in fade-in slide-in-from-bottom-4 duration-500" >
89+ < p className = "text-sm text-destructive" >
90+ { error === "authentication_failed"
91+ ? "Authentication failed. Please try again."
92+ : "An error occurred during sign in. Please try again." }
5093 </ p >
5194 </ div >
95+ ) }
5296
97+ < div className = "space-y-4 animate-in fade-in slide-in-from-bottom-4 duration-700 delay-150" >
5398 < Button
5499 onClick = { ( ) => signIn ( 'github' , { callbackUrl : '/auth/callback' } ) }
55- className = "w-full h-12 font-semibold text-base"
56- size = "lg"
100+ className = "w-full h-14 text-base font-semibold bg-black dark:bg-white text-white dark:text-black hover:bg-gray-900 dark:hover:bg-gray-100 transition-all hover:-translate-y-0.5 shadow-lg hover:shadow-xl"
57101 >
58102 < svg
59103 className = "w-5 h-5 mr-3"
@@ -69,26 +113,35 @@ function LoginContent() {
69113 Continue with GitHub
70114 </ Button >
71115
72- < div className = "text-center" >
73- < p className = "text-xs text-muted-foreground" >
74- By signing in, you agree to our{ " " }
75- < Link
76- href = "/terms-of-service"
77- className = "underline hover:text-foreground transition-colors"
78- >
79- terms of service
80- </ Link > { " " }
81- and{ " " }
82- < Link
83- href = "/privacy-policy"
84- className = "underline hover:text-foreground transition-colors"
85- >
86- privacy policy
87- </ Link >
88- </ p >
116+ < div className = "relative" >
117+ < div className = "absolute inset-0 flex items-center" >
118+ < div className = "w-full border-t border-border" > </ div >
119+ </ div >
120+ < div className = "relative flex justify-center text-xs uppercase" >
121+ < span className = "bg-background px-2 text-muted-foreground" >
122+ Secure authentication via GitHub
123+ </ span >
124+ </ div >
89125 </ div >
90- </ CardContent >
91- </ Card >
126+ </ div >
127+
128+ < div className = "text-center text-xs text-muted-foreground animate-in fade-in slide-in-from-bottom-4 duration-700 delay-300" >
129+ By signing in, you agree to our{ " " }
130+ < Link
131+ href = "/terms-of-service"
132+ className = "underline hover:text-foreground transition-colors"
133+ >
134+ terms of service
135+ </ Link > { " " }
136+ and{ " " }
137+ < Link
138+ href = "/privacy-policy"
139+ className = "underline hover:text-foreground transition-colors"
140+ >
141+ privacy policy
142+ </ Link >
143+ </ div >
144+ </ div >
92145 </ div >
93146 </ div >
94147 ) ;
0 commit comments