Skip to content

Commit 0566198

Browse files
Merge pull request #294 from CSSLab/codex/round10-candidates-challenges
Add round 10 candidates challenges
2 parents 1590811 + bf274c2 commit 0566198

2 files changed

Lines changed: 67 additions & 5 deletions

File tree

src/constants/candidates.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,51 @@ export const CANDIDATES_EXTRA_IDEAS: CandidateIdea[] = [
7373

7474
// Drop live tournament moments here as PGN or FEN during the event.
7575
export const CANDIDATES_FEATURED_POSITIONS: CandidatePosition[] = [
76+
{
77+
id: 'rd10-death-stare-follow-up',
78+
title: 'Rd10 Challenge 1: Death Stare Follow-Up',
79+
subtitle:
80+
'Pragg blundered and Sindarov gave him the death stare before finding the best continuation. Can you cash this in for a big win? (Sindarov—Praggnanandhaa)',
81+
summary:
82+
'White has a crushing attack after Pragg blundered. Find the clean follow-up and cash in.',
83+
tag: 'Featured',
84+
accent: 'red',
85+
fen: 'r5k1/pppb1R2/4q2r/4P3/4Q3/2P1P1Pp/P6P/5RK1 w - - 5 24',
86+
playerColor: 'white',
87+
maiaVersion: 'maia_kdd_1900',
88+
targetMoveNumber: 8,
89+
},
90+
{
91+
id: 'rd10-push-em',
92+
title: "Rd10 Challenge 2: Push 'Em",
93+
subtitle:
94+
'White has the upper hand with pawns that can march down the board. (Assaubayeva—Zhu)',
95+
summary:
96+
'White has connected passers and active pieces. Push the pawns and convert.',
97+
tag: 'Featured',
98+
accent: 'amber',
99+
fen: '4q1k1/5pb1/2p3p1/P2r3p/1PRp3P/3N1QP1/3R1PK1/r7 w - - 3 38',
100+
playerColor: 'white',
101+
maiaVersion: 'maia_kdd_1800',
102+
targetMoveNumber: 8,
103+
},
104+
{
105+
id: 'rd10-navigate-strategic-complexity',
106+
title: 'Rd10 Challenge 3: Navigate Strategic Complexity',
107+
subtitle:
108+
'Giri had an interesting position against Nakamura but it fizzled out in the end. Can you do better? (Giri—Nakamura)',
109+
summary:
110+
'White has a rich strategic middlegame. Navigate the complications and improve on the game result.',
111+
tag: 'Featured',
112+
accent: 'blue',
113+
fen: '3rr1k1/p2b1pp1/1ppqnn1p/3p4/3P4/1QN1P1NP/PP3PP1/1B1RR1K1 w - - 8 17',
114+
playerColor: 'white',
115+
maiaVersion: 'maia_kdd_1900',
116+
targetMoveNumber: 8,
117+
},
118+
]
119+
120+
export const CANDIDATES_ROUND_NINE_POSITIONS: CandidatePosition[] = [
76121
{
77122
id: 'rd9-attack-bluebaum-king',
78123
title: "Rd9 Challenge 1: Attack Bluebaum's King",

src/pages/candidates.tsx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { useEffect, useMemo, useState } from 'react'
66

77
import {
88
CANDIDATES_FEATURED_POSITIONS,
9+
CANDIDATES_ROUND_NINE_POSITIONS,
910
CANDIDATES_ROUND_EIGHT_POSITIONS,
1011
CANDIDATES_ROUND_FOUR_POSITIONS,
1112
CANDIDATES_ROUND_THREE_POSITIONS,
@@ -186,10 +187,10 @@ const PositionPill: React.FC<{
186187
<div className="mt-auto flex justify-center">
187188
<Link
188189
href={playHref}
189-
className={`inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm text-primary transition ${
190+
className={`inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium text-primary shadow-[0_8px_24px_rgba(0,0,0,0.2)] transition ${
190191
completed
191-
? 'border border-emerald-300/30 bg-emerald-500/10 hover:border-emerald-200/45 hover:bg-emerald-500/15'
192-
: 'border border-rose-300/25 bg-rose-500/10 hover:border-rose-200/40 hover:bg-rose-500/15'
192+
? 'bg-emerald-400/18 hover:bg-emerald-400/24 border border-emerald-200/55 hover:border-emerald-100/70'
193+
: 'bg-rose-400/18 hover:bg-rose-400/24 border border-rose-200/50 hover:border-rose-100/65'
193194
}`}
194195
>
195196
<span className="material-symbols-outlined !text-[18px]">
@@ -211,6 +212,9 @@ export default function CandidatesPage() {
211212
const compactFeaturedTitles = shouldCompactTitles(
212213
CANDIDATES_FEATURED_POSITIONS,
213214
)
215+
const compactRoundNineTitles = shouldCompactTitles(
216+
CANDIDATES_ROUND_NINE_POSITIONS,
217+
)
214218
const compactRoundEightTitles = shouldCompactTitles(
215219
CANDIDATES_ROUND_EIGHT_POSITIONS,
216220
)
@@ -278,7 +282,7 @@ export default function CandidatesPage() {
278282
FIDE Candidates Tournament 2026
279283
</h1>
280284
<p className="mt-2 text-sm uppercase tracking-[0.2em] text-white/45">
281-
Round 9
285+
Round 10
282286
</p>
283287
<div className="mt-4 flex flex-wrap gap-3">
284288
<Link
@@ -303,7 +307,7 @@ export default function CandidatesPage() {
303307
</header>
304308
{CANDIDATES_FEATURED_POSITIONS.length > 0 ? (
305309
<>
306-
<ChallengeSectionTitle title="Round 9 Challenges" />
310+
<ChallengeSectionTitle title="Round 10 Challenges" />
307311
{CANDIDATES_FEATURED_POSITIONS.map((position) => (
308312
<PositionPill
309313
key={position.id}
@@ -314,6 +318,19 @@ export default function CandidatesPage() {
314318
))}
315319
</>
316320
) : null}
321+
{CANDIDATES_ROUND_NINE_POSITIONS.length > 0 ? (
322+
<>
323+
<ChallengeSectionTitle title="Round 9 Challenges" />
324+
{CANDIDATES_ROUND_NINE_POSITIONS.map((position) => (
325+
<PositionPill
326+
key={position.id}
327+
position={position}
328+
completed={completedChallengeIds.includes(position.id)}
329+
compactTitle={compactRoundNineTitles}
330+
/>
331+
))}
332+
</>
333+
) : null}
317334
{CANDIDATES_ROUND_EIGHT_POSITIONS.length > 0 ? (
318335
<>
319336
<ChallengeSectionTitle title="Round 8 Challenges" />

0 commit comments

Comments
 (0)