Skip to content

Commit 816addd

Browse files
feat: reimplement new homehero landing design
1 parent 012dbc4 commit 816addd

3 files changed

Lines changed: 51 additions & 34 deletions

File tree

src/components/Home/HomeHero.tsx

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { PlayType } from 'src/types'
1818
import { getGlobalStats, getActiveUserCount } from 'src/api'
1919
import { AuthContext, ModalContext } from 'src/contexts'
2020
import { AnimatedNumber } from 'src/components/Common/AnimatedNumber'
21+
import { LiveChessBoard } from 'src/components/Home/LiveChessBoard'
2122

2223
interface 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) => {
299305
function 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
}

src/styles/tailwind.css

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ h5 {
4848
flex-direction: column;
4949
width: 100%;
5050
min-height: 100vh;
51-
background-color: rgb(var(--color-backdrop));
51+
background: linear-gradient(
52+
135deg,
53+
rgb(18, 17, 21) 0%,
54+
rgb(22, 21, 25) 50%,
55+
rgb(18, 17, 21) 100%
56+
);
5257
color: rgb(var(--color-text-primary));
5358
}
5459

tailwind.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ module.exports = {
3939
fontSize: {
4040
xxs: ['0.625rem', { lineHeight: '0.875rem' }],
4141
},
42+
backgroundImage: {
43+
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
44+
},
4245
},
4346
},
4447
plugins: [require('@tailwindcss/typography')],

0 commit comments

Comments
 (0)