@@ -20,60 +20,144 @@ const MakerCard: React.FC<MakerCardProps> = ({
20
20
isProject = false ,
21
21
onClick
22
22
} ) => {
23
+ // PM인지 확인
24
+ const isPM = position ?. includes ( 'Project Manager' ) ;
25
+
23
26
if ( isProject ) {
24
27
return (
25
28
< div
26
29
className = { `
27
- w-[220px ] h-[80px ] rounded-[10px] bg-white flex flex-col items-center justify-center
30
+ w-full max-w-[200px ] h-[100px ] rounded-[10px] bg-white flex flex-col items-center justify-center
28
31
relative hover:shadow-lg transition-shadow duration-300 ease-in-out
29
32
${ active ? 'shadow-md' : 'shadow-sm' }
30
33
cursor-pointer
31
- sm:w-[110px]
34
+ sm:w-full sm:max-w-none
32
35
` }
33
36
onClick = { onClick }
34
37
>
35
- < span className = "text-[15px ] font-bold leading-[1.47] sm:text-[12px ] sm:text-center" >
38
+ < span className = "text-[16px ] font-bold leading-[1.47] sm:text-[14px ] sm:text-center px-2 " >
36
39
{ title }
37
40
</ span >
38
- < span className = "mt-[12px] text-[9px ] font-medium leading-[1.44] text-gray-400" >
41
+ < span className = "mt-[12px] text-[10px ] font-medium leading-[1.44] text-gray-400" >
39
42
{ subtitle }
40
43
</ span >
41
44
{ launched && (
42
- < span className = "text-[9px ] font-medium leading-[1.44] text-gray-400" >
45
+ < span className = "text-[10px ] font-medium leading-[1.44] text-gray-400" >
43
46
launched at { launched }
44
47
</ span >
45
48
) }
46
49
</ div >
47
50
) ;
48
51
}
49
52
53
+ // PM 카드 레이아웃
54
+ if ( isPM ) {
55
+ return (
56
+ < div className = { `
57
+ w-full max-w-[220px] h-[140px] py-0 px-[30px] rounded-[10px]
58
+ bg-gradient-to-br from-[#fff3d1] to-white
59
+ shadow-sm
60
+ flex flex-row items-center justify-between
61
+ hover:shadow-md transition-all duration-1000 ease-in-out
62
+ relative overflow-visible
63
+ sm:w-full sm:max-w-none
64
+ ` } >
65
+ < div className = "absolute inset-0 z-[1] pointer-events-none overflow-hidden rounded-[10px]" >
66
+ < div
67
+ style = { {
68
+ position : 'absolute' ,
69
+ top : '0' ,
70
+ width : '80%' ,
71
+ height : '200%' ,
72
+ background : 'linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.95), rgba(255,255,255,0))' ,
73
+ opacity : '0.7' ,
74
+ transform : 'skewX(45deg)' ,
75
+ animation : 'pmShine 1.5s ease-in-out infinite' ,
76
+ boxShadow : '0 0 30px 10px rgba(255,255,255,0.5)' ,
77
+ } }
78
+ />
79
+ </ div >
80
+ < div className = "flex flex-col items-start z-[2] max-w-[55%]" >
81
+ < span className = "text-[20px] font-bold leading-[1.3] text-[#333] truncate w-full" >
82
+ { title }
83
+ </ span >
84
+ < div className = "mt-[4px] flex flex-row items-center" >
85
+ < div className = "w-[13px] h-[20px] overflow-hidden mr-1 flex-shrink-0" >
86
+ < Image
87
+ src = "/SparcsLogo.svg"
88
+ alt = "Sparcs Logo"
89
+ width = { 70 }
90
+ height = { 20 }
91
+ className = "w-[70px] max-w-none [filter:invert(74%)_sepia(56%)_saturate(1094%)_hue-rotate(347deg)_brightness(97%)_contrast(92%)]"
92
+ />
93
+ </ div >
94
+ < span className = "text-[14px] font-extrabold leading-[1.5] font-['Raleway'] text-[#eba12a] truncate" >
95
+ { subtitle }
96
+ </ span >
97
+ </ div >
98
+ </ div >
99
+
100
+ < div className = "z-[2] self-center flex-shrink-0 flex flex-col items-end" >
101
+ < span className = "text-[12px] font-semibold leading-[1.4] text-[#eba12a] mb-1" >
102
+ { position ?. match ( / \d { 4 } / ) ?. [ 0 ] || '' }
103
+ </ span >
104
+ < span className = "text-[12px] font-bold leading-[1.4] text-[#eba12a] text-right" >
105
+ Project Manager
106
+ </ span >
107
+ </ div >
108
+
109
+ < style dangerouslySetInnerHTML = { {
110
+ __html : `
111
+ @keyframes pmShine {
112
+ 0% {
113
+ left: -150%;
114
+ }
115
+ 100% {
116
+ left: 150%;
117
+ }
118
+ }
119
+
120
+ @keyframes borderRotate {
121
+ 0% {
122
+ transform: rotate(0deg);
123
+ }
124
+ 100% {
125
+ transform: rotate(360deg);
126
+ }
127
+ }
128
+ `
129
+ } } />
130
+ </ div >
131
+ ) ;
132
+ }
133
+
50
134
return (
51
135
< div className = { `
52
- w-[280px ] h-[120px ] py-0 px-[36px ] rounded-[10px] shadow-md bg-white
136
+ w-full max-w-[220px ] h-[140px ] py-0 px-[30px ] rounded-[10px] shadow-sm bg-white
53
137
flex flex-row items-center justify-between
54
- hover:shadow-lg transition-shadow duration-300 ease-in-out
55
- sm:w-[120px] sm:flex-col sm:justify-center
138
+ hover:shadow-md transition-shadow duration-300 ease-in-out
139
+ sm:w-full sm:max-w-none
56
140
` } >
57
- < div className = "flex flex-col items-start sm:items-center " >
58
- < span className = "text-[20px ] font-bold leading-[1.5] sm:text-[14px] sm:text-center " >
141
+ < div className = "flex flex-col items-start max-w-[65%] " >
142
+ < span className = "text-[18px ] font-bold leading-[1.5] truncate w-full " >
59
143
{ title }
60
144
</ span >
61
- < div className = "mt-[4px] flex flex-row items-start " >
62
- < div className = "w-[13px] h-[20px] overflow-hidden" >
145
+ < div className = "mt-[4px] flex flex-row items-center " >
146
+ < div className = "w-[13px] h-[20px] overflow-hidden mr-1 flex-shrink-0 " >
63
147
< Image
64
- src = "SparcsLogo.svg"
148
+ src = "/ SparcsLogo.svg"
65
149
alt = "Sparcs Logo"
66
150
width = { 70 }
67
151
height = { 20 }
68
- className = "w-[70px] max-w-none filter-[ invert(63 %)_sepia(71 %)_saturate(514 %)_hue-rotate(352deg )_brightness(97%)_contrast(91 %)]"
152
+ className = "w-[70px] max-w-none [filter: invert(74 %)_sepia(56 %)_saturate(1094 %)_hue-rotate(347deg )_brightness(97%)_contrast(92 %)]"
69
153
/>
70
154
</ div >
71
- < span className = "text-[13px] font-extrabold leading-[1.5] font-['Raleway'] text-[#eba12a]" >
155
+ < span className = "text-[13px] font-extrabold leading-[1.5] font-['Raleway'] text-[#eba12a] truncate " >
72
156
{ subtitle }
73
157
</ span >
74
158
</ div >
75
159
</ div >
76
- < span className = "text-[10px] font-medium leading-[1.5] text-gray-400 sm:mt-[5px] sm:text-center " >
160
+ < span className = "text-[10px] font-medium leading-[1.5] text-gray-400 text-right flex-shrink-0 " >
77
161
{ position }
78
162
</ span >
79
163
</ div >
0 commit comments