@@ -5,13 +5,16 @@ import { Lang } from "@/lib/types"
5
5
import { ChildOnlyProp } from "@/lib/types"
6
6
7
7
import CalloutSSR from "@/components/CalloutSSR"
8
- import Card from "@/components/Card"
8
+ import OldCard from "@/components/Card"
9
+ import { CopyButton } from "@/components/CopyToClipboard"
9
10
import FeedbackCard from "@/components/FeedbackCard"
10
11
import HubHero from "@/components/Hero/HubHero"
11
12
import { Image } from "@/components/Image"
12
13
import MainArticle from "@/components/MainArticle"
13
14
import { ButtonLink } from "@/components/ui/buttons/Button"
14
- import { Stack , VStack } from "@/components/ui/flex"
15
+ import { Card } from "@/components/ui/card"
16
+ import { VStack } from "@/components/ui/flex"
17
+ import Link from "@/components/ui/Link"
15
18
import InlineLink from "@/components/ui/Link"
16
19
17
20
import { getMetadata } from "@/lib/utils/metadata"
@@ -80,7 +83,7 @@ const DevelopersPage = async ({
80
83
} ,
81
84
{
82
85
emoji : ":woman_scientist:" ,
83
- title : t ( "page-developers-start " ) ,
86
+ title : t ( "page-developers-resources " ) ,
84
87
description : t ( "page-developers-start-desc" ) ,
85
88
url : "/developers/learning-tools/" ,
86
89
button : t ( "page-developers-play-code" ) ,
@@ -104,43 +107,98 @@ const DevelopersPage = async ({
104
107
title = { tCommon ( "developers" ) }
105
108
description = { t ( "page-developers-subtitle" ) }
106
109
/>
110
+
107
111
< MainArticle className = "w-full space-y-12 px-8 py-4" >
108
112
< h2 className = "-mb-4 mt-12" > { t ( "page-developers-get-started" ) } </ h2 >
109
113
114
+ < div className = "grid grid-cols-1 gap-6 md:grid-cols-2 md:gap-8 xl:mb-12" >
115
+ < div
116
+ className = "relative h-[450px]"
117
+ data-label = "speedrunethereum-banner"
118
+ >
119
+ < Image
120
+ className = "pointer-events-none absolute -z-[1] h-full rounded-t-2xl"
121
+ src = { SpeedRunEthereumImage }
122
+ alt = "SpeedRunEthereum banner"
123
+ sizes = "100vw"
124
+ style = { { width : "100vw" , objectFit : "cover" } }
125
+ />
126
+ < div className = "z-[1] space-y-4 break-words px-6 py-10 md:space-y-6 lg:p-12" >
127
+ < h3 > { t ( "page-developers-start" ) } </ h3 >
128
+ < p > { t ( "page-developers-speedrunethereum-description" ) } </ p >
129
+ < ButtonLink
130
+ href = "https://speedrunethereum.com/"
131
+ size = "lg"
132
+ className = "mt-4"
133
+ customEventOptions = { {
134
+ eventCategory : "top_boxes" ,
135
+ eventAction : "click" ,
136
+ eventName : "speedrun" ,
137
+ } }
138
+ >
139
+ { t ( "page-developers-speedrunethereum-link" ) }
140
+ </ ButtonLink >
141
+ </ div >
142
+ </ div >
143
+
144
+ < Card className = "!space-y-8 break-words border border-accent-c/20 bg-gradient-to-t from-accent-c/15 to-accent-c/5 px-6 py-10 md:space-y-6 lg:p-12" >
145
+ < h3 > { t ( "page-developers-jump-right-in-title" ) } </ h3 >
146
+ < div className = "space-y-6" >
147
+ < div className = "space-y-1" >
148
+ < p className = "font-bold" > Scaffold-ETH 2</ p >
149
+ < p className = "text-sm text-body-medium" >
150
+ { t ( "page-developers-quickstart-scaffold-subtext" ) } { " " }
151
+ < Link href = "https://docs.scaffoldeth.io/" >
152
+ { t ( "page-developers-quickstart-scaffold-docs" ) }
153
+ </ Link >
154
+ </ p >
155
+ < div className = "flex items-center rounded-lg border bg-background px-3 py-1" >
156
+ < span className = "flex-1 font-mono text-sm" >
157
+ npx create-eth@latest
158
+ </ span >
159
+ < CopyButton
160
+ message = "npx create-eth@latest"
161
+ size = "sm"
162
+ customEventOptions = { {
163
+ eventCategory : "top_boxes" ,
164
+ eventAction : "click" ,
165
+ eventName : "scaffold" ,
166
+ } }
167
+ />
168
+ </ div >
169
+ </ div >
170
+ </ div >
171
+
172
+ < div >
173
+ < p className = "mb-2 font-bold" > Need to learn the language?</ p >
174
+ < Link
175
+ href = "https://docs.soliditylang.org/en/latest/"
176
+ customEventOptions = { {
177
+ eventCategory : "top_boxes" ,
178
+ eventAction : "click" ,
179
+ eventName : "solidity" ,
180
+ } }
181
+ >
182
+ { t ( "page-developers-solidity-docs" ) }
183
+ </ Link >
184
+ </ div >
185
+ </ Card >
186
+ </ div >
187
+
110
188
< div className = "-mx-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4" >
111
189
{ paths . map ( ( path , idx ) => (
112
- < Card
190
+ < OldCard
113
191
className = { `m-4 p-6 shadow-[0px_1px_3px_rgba(0,0,0,0.1)] transition-transform duration-100 hover:scale-105 hover:rounded hover:bg-background-highlight hover:shadow-[0px_8px_17px_rgba(0,0,0,0.15)] dark:shadow-[0px_1px_3px_rgba(60,60,60,0.1)]` }
114
192
key = { idx }
115
193
emoji = { path . emoji }
116
194
title = { path . title }
117
195
description = { path . description }
118
196
>
119
197
< ButtonLink href = { path . url } > { path . button } </ ButtonLink >
120
- </ Card >
198
+ </ OldCard >
121
199
) ) }
122
200
</ div >
123
201
124
- < div className = "relative" data-label = "speedrunethereum-banner" >
125
- < Image
126
- className = "h-[450px] xl:h-auto"
127
- src = { SpeedRunEthereumImage }
128
- alt = "SpeedRunEthereum banner"
129
- sizes = "100vw"
130
- style = { {
131
- width : "100vw" ,
132
- objectFit : "cover" ,
133
- objectPosition : "20%" ,
134
- } }
135
- />
136
- < Stack className = "absolute top-0 max-w-lg items-start space-y-3 break-words p-6 md:top-12 md:ms-8 md:space-y-4 lg:p-8 xl:max-w-xl" >
137
- < h2 > { t ( "page-developers-speedrunethereum-title" ) } </ h2 >
138
- < ButtonLink href = "https://speedrunethereum.com/" >
139
- { t ( "page-developers-speedrunethereum-link" ) }
140
- </ ButtonLink >
141
- </ Stack >
142
- </ div >
143
-
144
202
< div className = "flex w-full flex-col items-start justify-between lg:flex-row lg:items-center" >
145
203
< IntroColumn >
146
204
< H2 > { t ( "page-developers-about" ) } </ H2 >
@@ -170,6 +228,7 @@ const DevelopersPage = async ({
170
228
</ CalloutSSR >
171
229
</ div >
172
230
</ MainArticle >
231
+
173
232
< div className = "mt-8 w-full border-t bg-background-highlight px-0 py-16 shadow-table-item-box" >
174
233
< div className = "w-full scroll-mt-24 px-8 py-4" >
175
234
< H2 > { t ( "page-developers-explore-documentation" ) } </ H2 >
0 commit comments