@@ -4,74 +4,120 @@ interface Feature {
44 icon : React . ReactNode ;
55 title : string ;
66 description : string ;
7+ color : string ;
78}
89
910const FEATURES : Feature [ ] = [
1011 {
1112 icon : (
12- < div className = "w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center" >
13- < svg className = "w-6 h-6 text-blue-600" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
14- < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
15- </ svg >
16- </ div >
13+ < svg className = "w-8 h-8" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
14+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
15+ </ svg >
1716 ) ,
1817 title : '직무 체험 게임' ,
19- description : '간단한 퀘스트와 함께'
18+ description : '재미있는 퀘스트를 통해 다양한 IT 직무를 실제로 체험해보세요. 게임을 플레이하며 자연스럽게 자신의 적성을 발견할 수 있습니다.' ,
19+ color : 'slate'
2020 } ,
2121 {
2222 icon : (
23- < div className = "w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center" >
24- < svg className = "w-6 h-6 text-purple-600" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
25- < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
26- </ svg >
27- </ div >
23+ < svg className = "w-8 h-8" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
24+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
25+ </ svg >
2826 ) ,
29- title : 'AI기반 직무 추천' ,
30- description : '사용자 선호도 반영'
27+ title : 'AI 기반 직무 추천' ,
28+ description : '고도화된 AI 알고리즘이 당신의 선호도, 성향, 경험을 종합적으로 분석하여 최적의 IT 직무를 추천해드립니다.' ,
29+ color : 'blue'
3130 } ,
3231 {
3332 icon : (
34- < div className = "w-12 h-12 bg-green-100 rounded-lg flex items-center justify-center" >
35- < svg className = "w-6 h-6 text-green-600" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
36- < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-1.447-.894L15 4m0 13V4m0 0L9 7" />
37- </ svg >
38- </ div >
33+ < svg className = "w-8 h-8" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
34+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-1.447-.894L15 4m0 13V4m0 0L9 7" />
35+ </ svg >
3936 ) ,
40- title : '직무 로드맵' ,
41- description : '체계적인 성장 경로'
37+ title : '맞춤형 로드맵' ,
38+ description : '목표 직무까지의 체계적인 학습 경로를 제시합니다. 단계별 스킬 습득 가이드와 실무 프로젝트로 확실한 성장을 보장합니다.' ,
39+ color : 'indigo'
4240 }
4341] ;
4442
43+ const getColorClasses = ( color : string ) => {
44+ const colorMap = {
45+ slate : {
46+ bg : 'bg-slate-100' ,
47+ text : 'text-slate-700' ,
48+ border : 'border-slate-200' ,
49+ gradient : 'from-slate-500/10 to-slate-600/20'
50+ } ,
51+ blue : {
52+ bg : 'bg-blue-100' ,
53+ text : 'text-blue-700' ,
54+ border : 'border-blue-200' ,
55+ gradient : 'from-blue-500/10 to-blue-600/20'
56+ } ,
57+ indigo : {
58+ bg : 'bg-indigo-100' ,
59+ text : 'text-indigo-700' ,
60+ border : 'border-indigo-200' ,
61+ gradient : 'from-indigo-500/10 to-indigo-600/20'
62+ }
63+ } ;
64+ return colorMap [ color as keyof typeof colorMap ] || colorMap . slate ;
65+ } ;
66+
4567export const FeatureSection : React . FC = ( ) => {
4668 return (
47- < section className = "py-20 px-4 sm:px-6 lg:px-8" >
48- < div className = "max-w-7xl mx-auto" >
49- < div className = "text-center mb-16" >
50- < h2 className = "text-3xl font-bold text-gray-900 mb-4" >
51- PathFinder의 특별한 기능
69+ < section className = "min-h-screen flex items-center py-24 px-4 sm:px-6 lg:px-8 relative bg-gradient-to-br from-slate-50 to-blue-50" >
70+ { /* Background decoration */ }
71+ < div className = "absolute inset-0 bg-gradient-to-b from-transparent via-gray-50/50 to-transparent" > </ div >
72+
73+ < div className = "relative max-w-7xl mx-auto" >
74+ { /* Section header */ }
75+ < div className = "text-center mb-20" >
76+ < span className = "inline-block px-4 py-2 bg-slate-100 text-slate-800 text-sm font-medium rounded-full mb-6 border border-slate-200" >
77+ ✨ 특별한 기능들
78+ </ span >
79+ < h2 className = "text-4xl md:text-5xl font-bold text-gray-900 mb-10 mt-4 space-y-4" >
80+ < div > PathFinder만의</ div >
81+ < div className = "text-slate-700" > 특별한 경험</ div >
5282 </ h2 >
53- < p className = "text-lg text-gray-600 max-w-2xl mx-auto" >
54- AI 기술과 게임화된 경험을 통해 여러분에게 최적화된 직무를 찾아드립니다
83+ < p className = "text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed break-keep" >
84+ 단순한 설문조사를 넘어, AI와 게임화를 결합한 혁신적인 방식으로
85+ 당신에게 딱 맞는 IT 커리어를 찾아드립니다.
5586 </ p >
5687 </ div >
5788
58- < div className = "grid grid-cols-1 md:grid-cols-3 gap-8" >
59- { FEATURES . map ( ( feature , index ) => (
60- < div
61- key = { index }
62- className = "bg-white rounded-2xl p-8 shadow-lg hover:shadow-xl transition-shadow duration-300 border border-gray-100"
63- >
64- < div className = "flex flex-col items-center text-center" >
65- { feature . icon }
66- < h3 className = "text-xl font-semibold text-gray-900 mt-6 mb-3" >
67- { feature . title }
68- </ h3 >
69- < p className = "text-gray-600 leading-relaxed" >
70- { feature . description }
71- </ p >
89+ { /* Features grid */ }
90+ < div className = "grid grid-cols-1 lg:grid-cols-3 gap-8 lg:gap-12" >
91+ { FEATURES . map ( ( feature , index ) => {
92+ const colors = getColorClasses ( feature . color ) ;
93+ return (
94+ < div
95+ key = { index }
96+ className = "group relative bg-white rounded-3xl p-8 shadow-lg hover:shadow-2xl transition-all duration-500 border border-gray-100 hover:border-gray-200 transform hover:-translate-y-2"
97+ >
98+ { /* Background gradient */ }
99+ < div className = { `absolute inset-0 bg-gradient-to-br ${ colors . gradient } rounded-3xl opacity-0 group-hover:opacity-100 transition-opacity duration-500` } > </ div >
100+
101+ < div className = "relative z-10" >
102+ { /* Icon */ }
103+ < div className = { `w-16 h-16 ${ colors . bg } ${ colors . text } rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-transform duration-300` } >
104+ { feature . icon }
105+ </ div >
106+
107+ { /* Content */ }
108+ < h3 className = "text-2xl font-bold text-gray-900 mb-4 group-hover:text-gray-800 transition-colors duration-300" >
109+ { feature . title }
110+ </ h3 >
111+ < p className = "text-gray-600 leading-relaxed text-lg group-hover:text-gray-700 transition-colors duration-300 break-keep" >
112+ { feature . description }
113+ </ p >
114+
115+ { /* Decorative element */ }
116+ < div className = { `absolute top-6 right-6 w-12 h-12 ${ colors . bg } rounded-full opacity-20 group-hover:opacity-40 transition-opacity duration-300` } > </ div >
117+ </ div >
72118 </ div >
73- </ div >
74- ) ) }
119+ ) ;
120+ } ) }
75121 </ div >
76122 </ div >
77123 </ section >
0 commit comments