@@ -9,34 +9,82 @@ export default function LearnIndexPage() {
9
9
const learnTabs = getLearnTabs ( ) ;
10
10
11
11
return (
12
- < main className = "flex flex-col items-center justify-center min-h-screen px-2 py-12 bg-white dark:bg-neutral-950 transition-colors" >
13
- < h1 className = "text-3xl md:text-4xl font-bold mb-4 text-neutral-900 dark:text-neutral-100" >
14
- { tHome ( 'learn' , { defaultValue : 'Learn Next.js' } ) }
15
- </ h1 >
16
- < p className = "mb-8 text-neutral-600 dark:text-neutral-400 text-center max-w-xl" >
17
- { tHome ( 'featuresSubtitle' , {
18
- defaultValue : 'Choose a learning path to get started with Next.js.' ,
19
- } ) }
20
- </ p >
21
- < div className = "grid grid-cols-1 md:grid-cols-2 gap-6 w-full max-w-3xl" >
22
- { learnTabs . map ( ( tab ) => (
23
- < Link
24
- key = { tab . url }
25
- href = { tab . url }
26
- className = "group flex items-center gap-4 p-6 rounded-xl border border-neutral-200 dark:border-neutral-800 bg-neutral-50 dark:bg-neutral-900 hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors shadow-sm"
27
- >
28
- < span className = "text-2xl" > { tab . icon } </ span >
29
- < div className = "flex-1" >
30
- < div className = "font-semibold text-lg text-neutral-900 dark:text-neutral-100 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors" >
31
- { tab . title }
32
- </ div >
33
- < div className = "text-neutral-600 dark:text-neutral-400 text-sm mt-1" >
34
- { tab . description }
12
+ < main className = "min-h-screen bg-fd-background" >
13
+ { /* Hero Section */ }
14
+ < section className = "w-full py-20 relative overflow-hidden" >
15
+ { /* Background decoration */ }
16
+ < div className = "absolute inset-0 bg-fd-muted opacity-50" />
17
+ < div className = "absolute top-0 right-1/4 w-96 h-96 bg-purple-100 dark:bg-purple-900/20 rounded-full blur-3xl opacity-30" />
18
+ < div className = "absolute bottom-0 left-1/4 w-96 h-96 bg-blue-100 dark:bg-blue-900/20 rounded-full blur-3xl opacity-30" />
19
+
20
+ < div className = "container max-w-6xl mx-auto px-6 relative z-10" >
21
+ < div className = "text-center" >
22
+ < h1 className = "text-5xl md:text-7xl font-extrabold text-fd-foreground mb-6 leading-tight" >
23
+ { tHome ( 'learn' , { defaultValue : 'Learn Next.js' } ) }
24
+ </ h1 >
25
+ < p className = "text-xl md:text-2xl text-fd-muted-foreground max-w-3xl mx-auto leading-relaxed" >
26
+ { tHome ( 'featuresSubtitle' , {
27
+ defaultValue :
28
+ 'Choose a learning path to get started with Next.js internationalization.' ,
29
+ } ) }
30
+ </ p >
31
+ </ div >
32
+ </ div >
33
+ </ section >
34
+
35
+ { /* Learning Paths Section */ }
36
+ < section className = "container max-w-6xl mx-auto px-6 py-16" >
37
+ < div className = "grid grid-cols-1 md:grid-cols-2 gap-8 max-w-4xl mx-auto" >
38
+ { learnTabs . map ( ( tab , index ) => (
39
+ < Link
40
+ key = { tab . url }
41
+ href = { tab . url }
42
+ className = "group block bg-fd-card border border-fd-border rounded-2xl overflow-hidden shadow-lg hover:shadow-2xl transition-all duration-300 hover:scale-105 relative"
43
+ >
44
+ { /* Hover effect background */ }
45
+ < div className = "absolute inset-0 bg-purple-50 dark:bg-purple-900/10 opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
46
+
47
+ < div className = "relative p-8" >
48
+ { /* Icon and number */ }
49
+ < div className = "flex items-center justify-between mb-6" >
50
+ < div className = "text-4xl" > { tab . icon } </ div >
51
+ < div className = "w-8 h-8 bg-fd-accent text-fd-accent-foreground rounded-full flex items-center justify-center text-sm font-bold" >
52
+ { String ( index + 1 ) . padStart ( 2 , '0' ) }
53
+ </ div >
54
+ </ div >
55
+
56
+ { /* Content */ }
57
+ < h3 className = "text-2xl font-bold text-fd-foreground mb-4 group-hover:text-purple-600 dark:group-hover:text-purple-400 transition-colors duration-300" >
58
+ { tab . title }
59
+ </ h3 >
60
+
61
+ < p className = "text-fd-muted-foreground leading-relaxed mb-6" >
62
+ { tab . description }
63
+ </ p >
64
+
65
+ { /* Call to action */ }
66
+ < div className = "flex items-center text-purple-600 dark:text-purple-400 font-medium opacity-0 group-hover:opacity-100 transition-all duration-300 transform translate-y-2 group-hover:translate-y-0" >
67
+ < span className = "mr-2" > Start learning</ span >
68
+ < svg
69
+ className = "w-4 h-4 transition-transform duration-300 group-hover:translate-x-1"
70
+ fill = "none"
71
+ stroke = "currentColor"
72
+ viewBox = "0 0 24 24"
73
+ >
74
+ < title > Arrow right</ title >
75
+ < path
76
+ strokeLinecap = "round"
77
+ strokeLinejoin = "round"
78
+ strokeWidth = { 2 }
79
+ d = "M9 5l7 7-7 7"
80
+ />
81
+ </ svg >
82
+ </ div >
35
83
</ div >
36
- </ div >
37
- </ Link >
38
- ) ) }
39
- </ div >
84
+ </ Link >
85
+ ) ) }
86
+ </ div >
87
+ </ section >
40
88
</ main >
41
89
) ;
42
90
}
0 commit comments