@@ -18,6 +18,7 @@ import { PlayType } from 'src/types'
1818import { getGlobalStats , getActiveUserCount } from 'src/api'
1919import { AuthContext , ModalContext } from 'src/contexts'
2020import { AnimatedNumber } from 'src/components/Common/AnimatedNumber'
21+ import { LiveChessBoard } from 'src/components/Home/LiveChessBoard'
2122
2223interface Props {
2324 scrollHandler : ( ) => void
@@ -96,20 +97,17 @@ const FeatureCard: React.FC<FeatureCardProps> = ({
9697
9798 return (
9899 < CardWrapper >
99- < motion . div
100- className = "flex h-full cursor-pointer select-none flex-row items-center justify-start gap-4 rounded-md border-none bg-background-2 p-4 text-center hover:bg-human-4/20 md:min-h-[140px] md:flex-col md:justify-center md:gap-3"
101- whileHover = { {
102- scale : 1.03 ,
103- boxShadow : '0 4px 12px rgba(0,0,0,0.1)' ,
104- transition : { duration : 0.2 } ,
105- } }
106- >
107- < motion . div className = "w-10" > { icon } </ motion . div >
100+ < div className = "group relative flex h-full cursor-pointer select-none flex-row items-center justify-start gap-4 overflow-hidden rounded-xl border border-white/10 bg-black/20 p-4 text-center backdrop-blur-sm transition-all duration-200 hover:border-white/15 hover:bg-black/30 md:min-h-[140px] md:flex-col md:justify-center md:gap-3" >
101+ < div className = "w-10 text-white/90 group-hover:text-white" > { icon } </ div >
108102 < div className = "flex flex-col items-start md:items-center" >
109- < motion . h2 className = "text-lg font-bold" > { title } </ motion . h2 >
110- < motion . p className = "text-xs" > { description } </ motion . p >
103+ < h2 className = "text-lg font-bold text-white/95 group-hover:text-white" >
104+ { title }
105+ </ h2 >
106+ < p className = "text-xs text-white/70 group-hover:text-white/80" >
107+ { description }
108+ </ p >
111109 </ div >
112- </ motion . div >
110+ </ div >
113111 </ CardWrapper >
114112 )
115113}
@@ -165,33 +163,40 @@ export const HomeHero: React.FC<Props> = ({ scrollHandler }: Props) => {
165163
166164 return (
167165 < Fragment >
166+ < div
167+ className = "pointer-events-none absolute inset-0"
168+ style = { {
169+ background :
170+ 'radial-gradient(ellipse 75% 60% at center top, rgba(239, 68, 68, 0.08) 0%, transparent 60%)' ,
171+ } }
172+ />
168173 < BetaBlurb />
169174 < div className = "relative flex flex-col items-center justify-center gap-4 overflow-hidden pb-12 pt-4 md:gap-14 md:pb-16 md:pt-20" >
170175 < div className = "z-10 flex w-full max-w-[1200px] flex-col items-center justify-center gap-10 p-4 text-left md:flex-row md:gap-20" >
171176 < div className = "flex w-full flex-col items-start justify-center gap-6 md:w-[45%] md:gap-8" >
172177 < div className = "flex flex-col gap-3 md:gap-4" >
173- < motion . h1 className = "whitespace-nowrap text-4xl font-bold leading-tight md:text-5xl" >
178+ < motion . h1 className = "whitespace-nowrap text-4xl font-bold leading-tight text-white md:text-5xl" >
174179 The human chess AI
175180 </ motion . h1 >
176- < motion . p className = "text-xl text-primary /80 md:text-2xl" >
181+ < motion . p className = "text-xl text-white /80 md:text-2xl" >
177182 Maia is a neural network chess model that captures human style.
178183 Enjoy realistic games, insightful analysis, and a new way of
179184 seeing chess.
180185 </ motion . p >
181186 </ div >
182187 < motion . div className = "flex flex-col gap-4 sm:flex-row" >
183188 < motion . button
184- className = "flex items-center justify-center gap-2 rounded-md border border-human-4 bg-human-4/80 px-6 py-3 text-white transition duration-200 hover:bg-human-4 "
189+ className = "flex items-center justify-center gap-2 rounded-xl border border-white/15 bg-black/30 px-6 py-3 text-white backdrop-blur-sm transition-all duration-200 hover:border-white/25 hover: bg-black/40 "
185190 onClick = { scrollHandler }
186191 >
187192 < p > Learn More</ p >
188- < span className = "material-symbols-outlined text-base text-primary " >
193+ < span className = "material-symbols-outlined text-base text-white " >
189194 keyboard_double_arrow_down
190195 </ span >
191196 </ motion . button >
192197 { ! user ?. lichessId && (
193198 < motion . button
194- className = "flex items-center justify-center gap-2 rounded-md border border-background-2 bg-background-1/60 px-6 py-3 transition duration-200 hover:bg-background-1 "
199+ className = "flex items-center justify-center gap-2 rounded-xl border border-white/10 bg-white/5 px-6 py-3 text-white/90 backdrop-blur-sm transition-all duration-200 hover:border-white/15 hover: bg-white/10 hover:text-white "
195200 onClick = { ( ) => {
196201 trackLichessConnectionInitiated ( 'homepage' )
197202 connectLichess ( )
@@ -255,42 +260,43 @@ export const HomeHero: React.FC<Props> = ({ scrollHandler }: Props) => {
255260 </ div >
256261 < motion . div className = "grid grid-cols-2 gap-6 px-2 md:flex md:gap-6" >
257262 { activeUsers > 0 ? (
258- < p className = "text-center text-base text-primary /80" >
263+ < p className = "text-center text-base text-white /80" >
259264 < AnimatedNumber
260265 value = { activeUsers }
261- className = "font-bold text-human-2 "
266+ className = "font-bold text-white "
262267 /> { ' ' }
263268 recent users
264269 </ p >
265270 ) : (
266271 < > </ >
267272 ) }
268- < p className = "text-center text-base text-primary /80" >
273+ < p className = "text-center text-base text-white /80" >
269274 < AnimatedNumber
270275 value = { globalStats ?. play_moves_total || 0 }
271- className = "font-bold text-human-2 "
276+ className = "font-bold text-white "
272277 /> { ' ' }
273278 moves played
274279 </ p >
275- < p className = "text-center text-base text-primary /80" >
280+ < p className = "text-center text-base text-white /80" >
276281 < AnimatedNumber
277282 value = { globalStats ?. puzzle_games_total || 0 }
278- className = "font-bold text-human-2 "
283+ className = "font-bold text-white "
279284 /> { ' ' }
280285 puzzles solved
281286 </ p >
282287 { activeUsers <= 0 ? (
283- < p className = "text-center text-base text-primary /80" >
288+ < p className = "text-center text-base text-white /80" >
284289 < AnimatedNumber
285290 value = { globalStats ?. turing_games_total || 0 }
286- className = "font-bold text-human-2 "
291+ className = "font-bold text-white "
287292 /> { ' ' }
288293 turing games played
289294 </ p >
290295 ) : (
291296 < > </ >
292297 ) }
293298 </ motion . div >
299+ < LiveChessBoard />
294300 </ div >
295301 </ Fragment >
296302 )
@@ -299,14 +305,17 @@ export const HomeHero: React.FC<Props> = ({ scrollHandler }: Props) => {
299305function BetaBlurb ( ) {
300306 return (
301307 < div className = "mt-2 flex items-center justify-center md:mt-8" >
302- < motion . div className = "flex flex-row items-center gap-3 bg-engine-3 p-2 px-6 transition md:mt-0 md:rounded-full" >
303- < span className = "material-symbols-outlined material-symbols-filled text-lg" >
304- favorite
305- </ span >
306- < p >
307- Maia Chess is in open beta. You now have full access to the platform!
308- </ p >
309- </ motion . div >
308+ < div className = "rounded-full border border-white/10 bg-black/20 px-6 py-3 backdrop-blur-sm transition-all duration-200 hover:border-white/15" >
309+ < div className = "flex flex-row items-center gap-3" >
310+ < span className = "material-symbols-outlined material-symbols-filled text-lg text-white/90" >
311+ favorite
312+ </ span >
313+ < p className = "text-white/90" >
314+ Maia Chess is in open beta. You now have full access to the
315+ platform!
316+ </ p >
317+ </ div >
318+ </ div >
310319 </ div >
311320 )
312321}
0 commit comments