+ {/* Categories */}
+
{categories.map((category) => (
))}
+
+ {/* Search */}
+
+
+ setSearchQuery(e.target.value)}
+ className="w-full pl-10 pr-4 py-2 bg-white border border-stone-200 rounded-full text-stone-800 placeholder:text-stone-400 focus:outline-none focus:ring-2 focus:ring-stone-200 focus:border-stone-400 transition-all"
+ />
+
{/* Projects Grid */}
@@ -120,98 +148,102 @@ const ProjectsPage = () => {
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: index * 0.1 }}
- whileHover={{ y: -10 }}
- className="group relative overflow-hidden rounded-2xl glass-card card-hover"
+ whileHover={{ y: -8 }}
+ className="group flex flex-col bg-white/40 backdrop-blur-xl rounded-2xl overflow-hidden border border-white/60 shadow-[0_4px_20px_rgba(0,0,0,0.02)] hover:shadow-[0_20px_40px_rgba(0,0,0,0.06)] transition-all duration-500"
>
-
-
-
-
-
- {project.title.split(' ').map(word => word[0]).join('').toUpperCase()}
+ {/* Image / Fallback */}
+
+ {project.imageUrl ? (
+

+ ) : (
+
+
+ {project.title.charAt(0)}
-
- {project.title}
-
-
+ )}
{project.featured && (
-
+
Featured
)}
-
- {((project.github && project.github.trim() && project.github !== "#") || (project.live && project.live.trim() && project.live !== "#")) && (
-
- {project.github && project.github.trim() && project.github !== "#" && (
-
-
-
- )}
- {project.live && project.live.trim() && project.live !== "#" && (
-
-
-
- )}
-
- )}
-
+
-
+
{project.title}
-
-
-
{project.date}
+
+
+ {new Date(project.date).getFullYear()}
-
+
{project.description}
-
- {project.tags.map((tag) => (
+
+ {project.tags.slice(0, 4).map((tag) => (
{tag}
))}
+ {project.tags.length > 4 && (
+ + {project.tags.length - 4}
+ )}
-
-
View Project
-
-
+
+
+ {project.github && (
+
+
+
+ )}
+ {project.live && (
+
+
+
+ )}
+
+
+
+
Read More
+
+
+
))}
+
+ {filteredProjects.length === 0 && (
+
+
No projects found matching your criteria.
+
+
+ )}
);
};
-export default ProjectsPage;
+export default ProjectsPage;
\ No newline at end of file