Project.jsx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React from 'react';
  2. import projectList from '@/data/projectCardList.json';
  3. import DarkOverlay from "@/componenets/DarkOverlay.jsx";
  4. const Project = () => {
  5. return (
  6. <div className="w-full py-12 px-10 bg-blue-900">
  7. <div className="max-w-7xl mx-auto">
  8. <div className="pb-5">
  9. <div className="text-white text-4xl font-semibold font-['Inter']">주요 랜드마크 프로젝트 시공현장</div>
  10. </div>
  11. {/* cardList */}
  12. <div className="relative grid grid-cols-3 gap-x-8 gap-y-10 mt-10">
  13. {projectList.map((project, index) => (
  14. <div key={index} className="relative shadow-lg group cursor-pointer">
  15. {/* 그라디언트 오버레이 */}
  16. <div className="absolute inset-0 bg-gradient-to-b from-transparent to-black/60" />
  17. <img
  18. src={project.imageUrl}
  19. alt={project.title}
  20. className="w-full aspect-[4/3] object-cover"
  21. />
  22. <div className="">
  23. <h3 className='absolute z-10 left-6 top-[77%] group-hover:top-[30%] transition-all duration-500 ease-in-out text-lg text-white font-semibold'>
  24. {project.title}
  25. </h3>
  26. <div className="absolute z-10 left-6 top-[85%] text-xs text-white leading-7">MORE +</div>
  27. </div>
  28. <div className="absolute inset-0 bg-gradient-to-t from-black/80 opacity-0 group-hover:opacity-100 transition-opacity duration-300 ease-in-out flex flex-col justify-center">
  29. {project.description && (
  30. <div className="absolute left-6 right-6 top-[60%] group-hover:top-[40%] transition-all duration-500 ease-in-out">
  31. <p className="text-sm text-white leading-8 whitespace-pre-line">
  32. {project.description}
  33. </p>
  34. </div>
  35. )}
  36. </div>
  37. </div>
  38. ))}
  39. </div>
  40. <div className="flex justify-center items-center my-20">
  41. <div className="w-44 px-8 py-3 outline outline-white">
  42. <div className="w-28 text-center text-white text-base font-semibold font-['Inter']">MORE</div>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. )
  48. }
  49. export default Project;