@@ -18,21 +18,21 @@ const ProjectCard = ({
1818 return (
1919 < motion . div
2020 variants = { fadeIn ( "up" , "spring" , index * 0.3 , 0.75 ) }
21- className = "group"
21+ className = "group w-full "
2222 >
2323 < Tilt
2424 options = { {
2525 max : 25 ,
2626 scale : 1.02 ,
2727 speed : 400 ,
2828 } }
29- className = 'relative overflow-hidden bg-gradient-to-br from-tertiary/80 to-black-200/60 backdrop-blur-sm p-6 rounded-3xl w-full sm: w-[380px] lg:w-[420px] border border-tertiary/20 hover:border-violet-500/40 transition-all duration-500 hover:shadow-2xl hover:shadow-violet-500/20'
29+ className = 'relative overflow-hidden bg-gradient-to-br from-tertiary/80 to-black-200/60 backdrop-blur-sm p-4 sm:p- 6 rounded-2xl sm:rounded- 3xl w-full max- w-[380px] mx-auto border border-tertiary/20 hover:border-violet-500/40 transition-all duration-500 hover:shadow-2xl hover:shadow-violet-500/20'
3030 >
3131 { /* Gradient Overlay */ }
32- < div className = "absolute inset-0 bg-gradient-to-br from-violet-600/5 via-transparent to-purple-600/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500 rounded-3xl" > </ div >
32+ < div className = "absolute inset-0 bg-gradient-to-br from-violet-600/5 via-transparent to-purple-600/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500 rounded-2xl sm:rounded- 3xl" > </ div >
3333
3434 { /* Image Container */ }
35- < div className = 'relative w-full h-[240px] mb-6 overflow-hidden rounded-2xl' >
35+ < div className = 'relative w-full h-[200px] sm:h-[ 240px] mb-4 sm:mb- 6 overflow-hidden rounded-xl sm: rounded-2xl' >
3636 < img
3737 src = { image }
3838 alt = 'project_image'
@@ -43,17 +43,17 @@ const ProjectCard = ({
4343 < div className = "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300" > </ div >
4444
4545 { /* Enhanced GitHub Button */ }
46- < div className = 'absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-all duration-300 transform translate-y-2 group-hover:translate-y-0' >
46+ < div className = 'absolute top-3 right-3 sm:top-4 sm: right-4 opacity-0 group-hover:opacity-100 transition-all duration-300 transform translate-y-2 group-hover:translate-y-0' >
4747 < motion . div
4848 whileHover = { { scale : 1.1 , rotate : 5 } }
4949 whileTap = { { scale : 0.95 } }
5050 onClick = { ( ) => window . open ( source_code_link , "_blank" ) }
51- className = 'bg-gradient-to-br from-violet-600/90 to-purple-700/90 backdrop-blur-md w-12 h-12 rounded-2xl flex justify-center items-center cursor-pointer border border-violet-400/30 hover:border-violet-300/50 transition-all duration-300 shadow-lg hover:shadow-violet-500/25'
51+ className = 'bg-gradient-to-br from-violet-600/90 to-purple-700/90 backdrop-blur-md w-10 h-10 sm:w- 12 sm: h-12 rounded-xl sm: rounded-2xl flex justify-center items-center cursor-pointer border border-violet-400/30 hover:border-violet-300/50 transition-all duration-300 shadow-lg hover:shadow-violet-500/25'
5252 >
5353 < img
5454 src = { github }
5555 alt = 'source code'
56- className = 'w-5 h-5 object-contain'
56+ className = 'w-4 h-4 sm:w-5 sm: h-5 object-contain'
5757 />
5858 </ motion . div >
5959 </ div >
@@ -62,24 +62,24 @@ const ProjectCard = ({
6262 { /* Content */ }
6363 < div className = 'relative z-10' >
6464 { /* Title with Gradient */ }
65- < h3 className = 'text-white font-bold text-[22px ] sm:text-[26px] mb-3 group-hover:bg-gradient-to-r group-hover:from-white group-hover:via-violet-200 group-hover:to-white group-hover:bg-clip-text group-hover:text-transparent transition-all duration-300' >
65+ < h3 className = 'text-white font-bold text-[18px ] sm:text-[22px] lg:text-[ 26px] mb-2 sm:mb- 3 group-hover:bg-gradient-to-r group-hover:from-white group-hover:via-violet-200 group-hover:to-white group-hover:bg-clip-text group-hover:text-transparent transition-all duration-300 leading-tight ' >
6666 { name }
6767 </ h3 >
6868
6969 { /* Description */ }
70- < p className = 'text-gray-300 text-[14px ] sm:text-[15px] leading-relaxed mb-4 group-hover:text-gray-200 transition-colors duration-300' >
70+ < p className = 'text-gray-300 text-[13px ] sm:text-[14px] lg:text-[ 15px] leading-relaxed mb-3 sm: mb-4 group-hover:text-gray-200 transition-colors duration-300' >
7171 { description }
7272 </ p >
7373
7474 { /* Enhanced Tags */ }
75- < div className = 'flex flex-wrap gap-2 mb-4' >
75+ < div className = 'flex flex-wrap gap-1.5 sm:gap-2 mb-3 sm: mb-4' >
7676 { tags . map ( ( tag , tagIndex ) => (
7777 < motion . div
7878 key = { `${ name } -${ tag . name } ` }
7979 initial = { { opacity : 0 , scale : 0.8 } }
8080 animate = { { opacity : 1 , scale : 1 } }
8181 transition = { { delay : index * 0.1 + tagIndex * 0.05 } }
82- className = { `px-3 py-1.5 text-[12px ] sm:text-[13px] font-medium rounded-full border backdrop-blur-sm transition-all duration-300 hover:scale-105 cursor-default
82+ className = { `px-2 sm:px- 3 py-1 sm:py-1 .5 text-[11px ] sm:text-[12px] lg :text-[13px] font-medium rounded-full border backdrop-blur-sm transition-all duration-300 hover:scale-105 cursor-default
8383 ${ tag . color === 'text-blue-500' ? 'bg-blue-500/10 border-blue-400/30 text-blue-300 hover:bg-blue-500/20' : '' }
8484 ${ tag . color === 'text-green-500' ? 'bg-green-500/10 border-green-400/30 text-green-300 hover:bg-green-500/20' : '' }
8585 ${ tag . color === 'text-pink-500' ? 'bg-pink-500/10 border-pink-400/30 text-pink-300 hover:bg-pink-500/20' : '' }
@@ -101,15 +101,15 @@ const ProjectCard = ({
101101 whileHover = { { scale : 1.02 } }
102102 whileTap = { { scale : 0.98 } }
103103 onClick = { ( ) => window . open ( source_code_link , "_blank" ) }
104- className = "w-full py-3 bg-gradient-to-r from-violet-600/20 to-purple-600/20 hover:from-violet-600/30 hover:to-purple-600/30 border border-violet-500/30 hover:border-violet-400/50 rounded-xl text-violet-200 hover:text-white font-medium text-sm transition-all duration-300 backdrop-blur-sm group-hover:shadow-lg group-hover:shadow-violet-500/20"
104+ className = "w-full py-2.5 sm:py- 3 bg-gradient-to-r from-violet-600/20 to-purple-600/20 hover:from-violet-600/30 hover:to-purple-600/30 border border-violet-500/30 hover:border-violet-400/50 rounded-lg sm: rounded-xl text-violet-200 hover:text-white font-medium text-sm transition-all duration-300 backdrop-blur-sm group-hover:shadow-lg group-hover:shadow-violet-500/20"
105105 >
106106 View Project →
107107 </ motion . button >
108108 </ div >
109109
110110 { /* Decorative Elements */ }
111- < div className = "absolute -top-4 -right-4 w-24 h-24 bg-gradient-to-br from-violet-500/10 to-purple-500/10 rounded-full blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500" > </ div >
112- < div className = "absolute -bottom-4 -left-4 w-24 h-24 bg-gradient-to-br from-blue-500/10 to-violet-500/10 rounded-full blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500" > </ div >
111+ < div className = "absolute -top-4 -right-4 w-16 h-16 sm:w- 24 sm: h-24 bg-gradient-to-br from-violet-500/10 to-purple-500/10 rounded-full blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500" > </ div >
112+ < div className = "absolute -bottom-4 -left-4 w-16 h-16 sm:w- 24 sm: h-24 bg-gradient-to-br from-blue-500/10 to-violet-500/10 rounded-full blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500" > </ div >
113113 </ Tilt >
114114 </ motion . div >
115115 ) ;
@@ -131,9 +131,9 @@ const Works = () => {
131131 < div className = 'w-full flex justify-center lg:justify-start' >
132132 < motion . div
133133 variants = { fadeIn ( "" , "" , 0.1 , 1 ) }
134- className = 'mt-8 sm:mt-10 p-6 rounded-2xl bg-gradient-to-br from-tertiary/30 to-black-200/20 backdrop-blur-sm border border-tertiary/20'
134+ className = 'mt-6 sm:mt-8 lg:mt- 10 p-4 sm:p-6 rounded-xl sm: rounded-2xl bg-gradient-to-br from-tertiary/30 to-black-200/20 backdrop-blur-sm border border-tertiary/20'
135135 >
136- < p className = 'text-gray-300 text-[16px ] sm:text-[18px ] lg:text-[20px] w-full max-w-none lg:max-w-5xl xl:max-w-6xl leading-[28px ] sm:leading-[32px ] lg:leading-[36px] font-light tracking-wide text-justify' >
136+ < p className = 'text-gray-300 text-[14px ] sm:text-[16px ] lg:text-[18px] xl:text-[ 20px] w-full max-w-none lg:max-w-5xl xl:max-w-6xl leading-[22px ] sm:leading-[28px ] lg:leading-[32px] xl:leading-[ 36px] font-light tracking-wide text-center sm: text-justify' >
137137 Following projects showcases my skills and experience through{ " " }
138138 < span className = "text-white font-medium" > real-world examples</ span > { " " }
139139 of my work. Each project is briefly described with
@@ -149,9 +149,9 @@ const Works = () => {
149149 { /* Enhanced Projects Grid */ }
150150 < motion . div
151151 variants = { fadeIn ( "up" , "tween" , 0.2 , 1 ) }
152- className = 'mt-16 sm:mt-20 lg:mt-24 '
152+ className = 'mt-12 sm:mt-16 lg:mt-20 '
153153 >
154- < div className = 'flex flex-wrap gap-8 justify-center' >
154+ < div className = 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 sm:gap- 8 justify-items -center' >
155155 { projects . map ( ( project , index ) => (
156156 < ProjectCard key = { `project-${ index } ` } index = { index } { ...project } />
157157 ) ) }
0 commit comments