|
1 | | -import { AlertTriangle, Lightbulb, Target, Users } from 'lucide-react'; |
| 1 | +import Image from 'next/image'; |
| 2 | +import impactImage from '@public/hackers/starter-kit/ideate/Impact.svg'; |
| 3 | +import audienceImage from '@public/hackers/starter-kit/ideate/Audience.svg'; |
| 4 | +import apartImage from '@public/hackers/starter-kit/ideate/Apart.svg'; |
2 | 5 | import IdeateInfoCard from './IdeateInfoCard'; |
3 | 6 | import IdeateSection from './IdeateSection'; |
4 | 7 |
|
5 | | -function ImpactVisual() { |
6 | | - return ( |
7 | | - <div className="relative flex h-full w-full items-center justify-center"> |
8 | | - <div className="absolute h-24 w-24 rounded-full bg-white/60 blur-xl" /> |
9 | | - <div className="absolute inset-0 bg-[radial-gradient(circle_at_center,#7de0ef_0,#7de0ef_8%,transparent_8.5%)] bg-[length:20px_20px] opacity-30" /> |
10 | | - <div className="relative flex h-24 w-24 items-center justify-center rounded-full bg-white/70 shadow-[0_12px_25px_rgba(77,183,217,0.25)]"> |
11 | | - <Lightbulb className="h-10 w-10 text-[#f1ad2f]" strokeWidth={2.2} /> |
12 | | - </div> |
13 | | - <div className="absolute left-5 top-5 rounded-full bg-[#f6a7d1] p-2 text-[#8b3f70] shadow-sm"> |
14 | | - <Users className="h-4 w-4" /> |
15 | | - </div> |
16 | | - <div className="absolute bottom-5 right-5 rounded-full bg-[#fff4b3] p-2 text-[#8a6d12] shadow-sm"> |
17 | | - <AlertTriangle className="h-4 w-4" /> |
18 | | - </div> |
19 | | - </div> |
20 | | - ); |
21 | | -} |
22 | | - |
23 | | -function AudienceVisual() { |
24 | | - return ( |
25 | | - <div className="relative flex h-full w-full items-center justify-center"> |
26 | | - <div className="absolute left-6 top-7 h-16 w-16 rounded-full bg-[#7fcb5b]" /> |
27 | | - <div className="absolute right-8 top-8 h-14 w-14 rounded-full bg-white/90" /> |
28 | | - <div className="absolute bottom-7 left-1/2 h-20 w-24 -translate-x-1/2 rounded-[999px_999px_16px_16px] bg-[#f8cf67]" /> |
29 | | - <div className="absolute left-4 top-5 rounded-full bg-[#c9f4ff] p-2 text-[#4c9bb8]"> |
30 | | - <Users className="h-4 w-4" /> |
31 | | - </div> |
32 | | - <div className="absolute right-5 top-5 rounded-full bg-[#f6a7d1] p-2 text-[#8b3f70]"> |
33 | | - <Target className="h-4 w-4" /> |
34 | | - </div> |
35 | | - <div className="absolute bottom-5 left-4 h-8 w-8 rounded-full border border-[#8bc7d4] bg-transparent" /> |
36 | | - <div className="absolute bottom-7 left-6 h-4 w-4 rounded-full border border-[#8bc7d4] bg-transparent" /> |
37 | | - <div className="absolute top-10 left-11 h-3 w-3 rounded-full bg-[#243a3a]" /> |
38 | | - <div className="absolute top-10 right-12 h-3 w-3 rounded-full bg-[#243a3a]" /> |
39 | | - </div> |
40 | | - ); |
41 | | -} |
42 | | - |
43 | | -function StandOutVisual() { |
44 | | - return ( |
45 | | - <div className="relative flex h-full w-full items-center justify-center"> |
46 | | - <div className="absolute left-8 top-8 rounded-full bg-[#d9fff2] p-3 text-[#1d8f95] shadow-sm"> |
47 | | - <Users className="h-5 w-5" /> |
48 | | - </div> |
49 | | - <div className="absolute right-8 top-7 rounded-full bg-[#f6a7d1] p-3 text-[#8b3f70] shadow-sm"> |
50 | | - <Lightbulb className="h-5 w-5" /> |
51 | | - </div> |
52 | | - <div className="absolute bottom-7 left-8 rounded-full bg-[#f9f3a6] p-3 text-[#8a6d12] shadow-sm"> |
53 | | - <Target className="h-5 w-5" /> |
54 | | - </div> |
55 | | - <div className="absolute bottom-5 right-7 flex h-14 w-14 items-center justify-center rounded-full bg-[#7fcb5b] text-white shadow-sm"> |
56 | | - <span className="text-xl">+</span> |
57 | | - </div> |
58 | | - </div> |
59 | | - ); |
60 | | -} |
61 | | - |
62 | 8 | const principles = [ |
63 | 9 | { |
64 | 10 | title: 'Impact Level', |
65 | 11 | description: |
66 | | - 'Does your project solve a real problem? Strong projects are rooted in something people actually need help with.', |
67 | | - visual: <ImpactVisual />, |
| 12 | + 'Does your product solve a real problem? Strong projects are rooted in something people actually need help with!', |
| 13 | + visual: ( |
| 14 | + <Image |
| 15 | + src={impactImage} |
| 16 | + alt="Impact level illustration" |
| 17 | + className="h-full w-full object-cover" |
| 18 | + /> |
| 19 | + ), |
68 | 20 | }, |
69 | 21 | { |
70 | 22 | title: 'Tailor for Audience', |
71 | 23 | description: |
72 | | - 'Who are your users? What are their pain points? When you build for a specific need, the value is much easier to see.', |
73 | | - visual: <AudienceVisual />, |
| 24 | + 'Who are your users? What are their pain points? Know who you’re building for. The clearer your user is, the easier it is to make smart product decisions.', |
| 25 | + visual: ( |
| 26 | + <Image |
| 27 | + src={audienceImage} |
| 28 | + alt="Audience illustration" |
| 29 | + className="h-full w-full object-cover" |
| 30 | + /> |
| 31 | + ), |
74 | 32 | }, |
75 | 33 | { |
76 | 34 | title: 'Set Yourself Apart', |
77 | 35 | description: |
78 | | - 'What makes your solution unique? Find your hook. Your project does not need to be huge, but it should feel memorable and purposeful.', |
79 | | - visual: <StandOutVisual />, |
| 36 | + 'What makes your solution unique? Find your twist. Your project does not need to be huge, but it should have something that makes people remember it.', |
| 37 | + visual: ( |
| 38 | + <Image |
| 39 | + src={apartImage} |
| 40 | + alt="Set yourself apart illustration" |
| 41 | + className="h-full w-full object-cover" |
| 42 | + /> |
| 43 | + ), |
80 | 44 | }, |
81 | 45 | ]; |
82 | 46 |
|
83 | 47 | export default function IdeatePrinciples() { |
84 | 48 | return ( |
85 | | - <IdeateSection |
86 | | - eyebrow="Rules of Brainstorming" |
87 | | - title="Keep these in mind..." |
88 | | - > |
89 | | - <div className="grid gap-4 md:grid-cols-3 md:gap-5"> |
| 49 | + <IdeateSection eyebrow="While Brainstorming" title="Keep these in mind..."> |
| 50 | + <div className="grid gap-10 md:grid-cols-3 md:gap-6"> |
90 | 51 | {principles.map((principle) => ( |
91 | 52 | <IdeateInfoCard key={principle.title} {...principle} /> |
92 | 53 | ))} |
|
0 commit comments