@@ -9,6 +9,7 @@ import rajeevRajan from "./speakers/rajeev-rajan.webp"
9
9
import tenmaiGopal from "./speakers/tenmai-gopal.webp"
10
10
import uriGoldshtein from "./speakers/uri-goldshtein.webp"
11
11
import TwitterIcon from "@/icons/twitter.svg"
12
+ import { Button } from "@/app/conf/_design-system/button"
12
13
13
14
interface TopMindsSectionProps extends HTMLAttributes < HTMLElement > { }
14
15
@@ -19,47 +20,47 @@ export default function TopMindsSection({
19
20
return (
20
21
< section
21
22
className = { clsx (
22
- "flex gap-6 px-4 py-8 text-neu-900 max-md:flex-col lg:px-12 xl:gap-x-24 xl:px-24" ,
23
+ "px-4 py-8 text-neu-900 max-md:flex-col lg:px-12 xl:gap-x-24 xl:px-24" ,
23
24
className ,
24
25
) }
25
26
{ ...rest }
26
27
>
27
- < h3 className = "typography-h2" > Meet the top industry minds</ h3 >
28
- < div className = "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3" >
28
+ < div className = "flex flex-wrap max-sm:flex-col" >
29
+ { /* todo: look up socials */ }
30
+ < h3 className = "grow pb-6 pr-6 typography-h2" >
31
+ Meet the top industry minds
32
+ </ h3 >
29
33
< SpeakerCard
30
34
name = "Uri Goldshtein"
31
35
title = "The Guild — Founder"
32
36
src = { uriGoldshtein }
33
- twitterHref = "UriGoldshtein"
34
- linkedinHref = "uri-goldshtein-88986749"
35
37
/>
36
38
< SpeakerCard
37
39
name = "Elizabeth Stone"
38
40
title = "Netflix — CTO"
39
41
src = { elizabethStone }
40
42
linkedinHref = "https://www.linkedin.com/in/elizabeth-stone-608a754/"
41
43
/>
42
- < SpeakerCard
43
- name = "Kamil Kisiela"
44
- title = "The Guild — Developer"
45
- src = { kamilKisiela }
46
- twitterHref = "kamilkisiela"
47
- linkedinHref = "kamilkisiela"
48
- />
49
- < SpeakerCard
50
- name = "Rajeev Rajan"
51
- title = "Atlassian — CTO"
52
- src = { rajeevRajan }
53
- twitterHref = "rajeevrajango"
54
- linkedinHref = "rajeev-rajan"
55
- />
56
- < SpeakerCard
57
- name = "Tenmai Gopal"
58
- title = "Hasura — CEO & Co-Founder"
59
- src = { tenmaiGopal }
60
- twitterHref = "tenmaigopal"
61
- linkedinHref = "tenmai"
62
- />
44
+ < div className = "flex grow max-sm:contents" >
45
+ < SpeakerCard
46
+ name = "Kamil Kisiela"
47
+ title = "The Guild — Developer"
48
+ src = { kamilKisiela }
49
+ />
50
+ < SpeakerCard
51
+ name = "Rajeev Rajan"
52
+ title = "Atlassian — CTO"
53
+ src = { rajeevRajan }
54
+ />
55
+ < SpeakerCard
56
+ name = "Tenmai Gopal"
57
+ title = "Hasura — CEO & Co-Founder"
58
+ src = { tenmaiGopal }
59
+ />
60
+ < div className = "mt-6 flex grow items-end justify-end pl-6" >
61
+ < Button variant = "secondary" > View all speakers</ Button >
62
+ </ div >
63
+ </ div >
63
64
</ div >
64
65
</ section >
65
66
)
@@ -71,51 +72,58 @@ function SpeakerCard({
71
72
src,
72
73
twitterHref,
73
74
linkedinHref,
75
+ className,
74
76
} : {
75
77
name : string
76
78
title : string
77
79
src : string | StaticImageData
78
80
twitterHref ?: string
79
81
linkedinHref ?: string
82
+ className ?: string
80
83
} ) {
81
84
return (
82
- < article className = "group flex flex-col" >
83
- < div className = "relative aspect-square w-full overflow-hidden border border-[#83BD02]" >
84
- < Image
85
- src = { src }
86
- alt = ""
87
- width = { 236 }
88
- height = { 236 }
89
- className = "size-full object-cover transition-transform duration-300"
90
- />
91
- </ div >
92
- < div className = "flex items-center justify-between border border-t-0 border-[#83BD02] p-3" >
93
- < div className = "flex flex-col gap-1" >
94
- < h4 className = "font-medium typography-body-md" > { name } </ h4 >
95
- < p className = "text-neu-700 typography-body-sm" > { title } </ p >
96
- </ div >
97
- < div className = "flex gap-3" >
98
- { twitterHref && (
99
- < a
100
- href = { twitterHref }
101
- target = "_blank"
102
- rel = "noopener noreferrer"
103
- className = "text-neu-700 transition-colors hover:text-neu-900"
104
- >
105
- < TwitterIcon className = "size-6" />
106
- </ a >
107
- ) }
108
- { linkedinHref && (
109
- < a
110
- href = { linkedinHref }
111
- target = "_blank"
112
- rel = "noopener noreferrer"
113
- className = "text-neu-700 transition-colors hover:text-neu-900"
114
- >
115
- < LinkedInIcon />
116
- </ a >
117
- ) }
85
+ < article
86
+ className = { clsx (
87
+ ":border-r border-y border-r border-sec-dark first-of-type:border-l" ,
88
+ className ,
89
+ ) }
90
+ >
91
+ < Image
92
+ src = { src }
93
+ alt = ""
94
+ width = { 236 }
95
+ height = { 236 }
96
+ className = "aspect-square size-[236px] w-full object-cover transition-transform"
97
+ />
98
+ < div className = "flex items-stretch border-t border-sec-dark" >
99
+ < div className = "flex grow flex-col gap-1 p-3" >
100
+ < h4 className = "typography-body-md" > { name } </ h4 >
101
+ < p className = "text-neu-700 typography-body-xs" > { title } </ p >
118
102
</ div >
103
+ { ( linkedinHref || twitterHref ) && (
104
+ < div className = "flex items-center border-l border-sec-dark sm:flex-col sm:border-l" >
105
+ { linkedinHref && (
106
+ < a
107
+ href = { linkedinHref }
108
+ target = "_blank"
109
+ rel = "noopener noreferrer"
110
+ className = "flex grow items-center justify-center p-4 transition-colors hover:text-neu-700 dark:hover:text-neu-400 sm:p-2"
111
+ >
112
+ < LinkedInIcon />
113
+ </ a >
114
+ ) }
115
+ { twitterHref && (
116
+ < a
117
+ href = { twitterHref }
118
+ target = "_blank"
119
+ rel = "noopener noreferrer"
120
+ className = "flex grow items-center justify-center p-4 transition-colors hover:text-neu-700 dark:hover:text-neu-400 sm:p-2"
121
+ >
122
+ < TwitterIcon className = "size-6" />
123
+ </ a >
124
+ ) }
125
+ </ div >
126
+ ) }
119
127
</ div >
120
128
</ article >
121
129
)
0 commit comments