11import Image from 'next/image'
22import Link from 'next/link'
3+ import { CopyCommand } from '@/components/CopyCommand'
34
45function GridBackdrop ( { patternId } : { patternId : string } ) {
56 return (
@@ -171,9 +172,7 @@ export default function HomePage() {
171172 < p className = "mt-3 text-xs text-gray-500" >
172173 No signup required — instant access to real admin
173174 </ p >
174- < div className = "mt-8 rounded-lg bg-white/5 px-4 py-3 font-mono text-sm text-gray-300 ring-1 ring-white/10" >
175- $ npx create-sonicjs@latest my-app
176- </ div >
175+ < CopyCommand command = "npx create-sonicjs@latest my-app" className = "mt-8" />
177176 < div className = "mt-6 flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-gray-500" >
178177 < span > MIT licensed</ span >
179178 < span aria-hidden = "true" > ·</ span >
@@ -326,8 +325,8 @@ export default function HomePage() {
326325 < div className = "mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 md:grid-cols-2 lg:max-w-none" >
327326 { [
328327 {
329- src : '/images/home/pain-migration.png' ,
330- alt : 'Seamless migration visualization ' ,
328+ icon : ICONS . arrowsRightLeft ,
329+ accent : 'text-cyan-400 ' ,
331330 title : 'No More Migration Hell' ,
332331 body : (
333332 < >
@@ -340,8 +339,8 @@ export default function HomePage() {
340339 'SonicJS: semantic versioning with automatic, versioned migrations — upgrades stay boring.' ,
341340 } ,
342341 {
343- src : '/images/home/pain-pricing.png' ,
344- alt : 'Cost efficiency visualization ' ,
342+ icon : ICONS . lockOpen ,
343+ accent : 'text-emerald-400 ' ,
345344 title : 'The Features You Need Are Paywalled' ,
346345 body : (
347346 < >
@@ -356,8 +355,8 @@ export default function HomePage() {
356355 'SonicJS: every feature in the MIT core. No Growth tier. No Enterprise gate. Ever.' ,
357356 } ,
358357 {
359- src : '/images/home/pain-latency.png' ,
360- alt : 'Low-latency global routing visualization ' ,
358+ icon : ICONS . bolt ,
359+ accent : 'text-amber-400 ' ,
361360 title : '0ms Cold Start, Sub-50ms Worldwide' ,
362361 body : (
363362 < >
@@ -371,8 +370,8 @@ export default function HomePage() {
371370 'SonicJS: V8 isolates in 300+ edge cities — no boot penalty, responses served near the user.' ,
372371 } ,
373372 {
374- src : '/images/home/pain-coldstart.png' ,
375- alt : 'Glowing AI circuitry stack visualization ' ,
373+ icon : ICONS . sparkles ,
374+ accent : 'text-fuchsia-400 ' ,
376375 title : 'AI Included, Not Upsold' ,
377376 body : (
378377 < >
@@ -387,21 +386,18 @@ export default function HomePage() {
387386 ] . map ( ( card ) => (
388387 < div
389388 key = { card . title }
390- className = "group relative flex min-h-[22rem ] flex-col justify-end overflow-hidden rounded-2xl p-6 ring-1 ring-white/10 transition-shadow duration-300 hover:shadow-2xl "
389+ className = "group relative flex min-h-[18rem ] flex-col overflow-hidden rounded-2xl bg-white/[0.02] p-8 ring-1 ring-white/10 transition-all duration-300 hover:bg-white/[0.04] hover:ring-white/20 "
391390 >
392- < Image
393- src = { card . src }
394- alt = { card . alt }
395- fill
396- sizes = "(min-width: 768px) 50vw, 100vw"
397- className = "object-cover transition-transform duration-500 group-hover:scale-105"
398- />
399- < div className = "absolute inset-0 bg-gradient-to-t from-black/90 via-black/60 to-black/25" />
400- < div className = "relative" >
401- < h3 className = "mb-2 text-xl font-semibold text-white" > { card . title } </ h3 >
402- < p className = "mb-2 text-sm text-gray-100" > { card . body } </ p >
403- < p className = "text-xs italic text-gray-200" > { card . footer } </ p >
391+ < div
392+ className = { `mb-6 flex size-11 items-center justify-center rounded-xl bg-white/5 ring-1 ring-white/10 ${ card . accent } ` }
393+ >
394+ < FeatureIcon d = { card . icon } />
404395 </ div >
396+ < h3 className = "mb-3 text-xl font-semibold text-white" > { card . title } </ h3 >
397+ < p className = "mb-4 flex-auto text-sm/6 text-gray-300" > { card . body } </ p >
398+ < p className = "border-t border-white/10 pt-4 text-sm/6 font-medium text-cyan-300" >
399+ { card . footer }
400+ </ p >
405401 </ div >
406402 ) ) }
407403 </ div >
@@ -856,9 +852,10 @@ GET /api/products?category=electronics&sort=-price&limit=20`}</pre>
856852 < p className = "mx-auto mt-6 max-w-xl text-pretty text-lg/8 text-gray-300" >
857853 MIT licensed. No credit card. No paywalls. Your first global deploy is minutes away.
858854 </ p >
859- < div className = "mx-auto mt-8 max-w-md rounded-lg bg-white/5 px-6 py-4 text-left font-mono text-sm text-gray-300 ring-1 ring-white/10" >
860- $ npx create-sonicjs@latest my-app
861- </ div >
855+ < CopyCommand
856+ command = "npx create-sonicjs@latest my-app"
857+ className = "mx-auto mt-8 max-w-md"
858+ />
862859 < div className = "mt-10 flex items-center justify-center gap-x-6" >
863860 < Link
864861 href = "https://discord.gg/8bMy6bv3sZ"
0 commit comments