From f583f2f746d0d370cb2ace0f9afbba822febf5c7 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 21 Aug 2025 14:29:42 +0200 Subject: [PATCH 1/2] add of a base for singleProject component and style --- src/components/SingleProject.jsx | 25 +++++++++++++++++++++ src/styles/SingleProject.css | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/components/SingleProject.jsx create mode 100644 src/styles/SingleProject.css diff --git a/src/components/SingleProject.jsx b/src/components/SingleProject.jsx new file mode 100644 index 0000000..997d8ed --- /dev/null +++ b/src/components/SingleProject.jsx @@ -0,0 +1,25 @@ +import SkillCard from './SkillCard'; +import "../styles/SingleProject.css"; +function SingleProject({image, title, description, skills}) { + return ( +
+
+ {image} +
+
+

{title}

+

+ {description} +

+
    + {skills.map(skill => ( +
  • + ))} +
+
+
+ ) +} + + +export default SingleProject \ No newline at end of file diff --git a/src/styles/SingleProject.css b/src/styles/SingleProject.css new file mode 100644 index 0000000..22d7401 --- /dev/null +++ b/src/styles/SingleProject.css @@ -0,0 +1,38 @@ +.single-project { + display: flex; + width: 80%; + justify-self: center; + margin-bottom: 4%; +} + +.single-project-left{ + width: 60%; + margin-right: 2%; + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; + height: 400px; + img{ + width: 100%; + height: auto; + object-fit: contain; + display: block; + } +} + +.single-project-right{ + width: 40%; + margin-left: 2%; +} + +.single-project-skills-list{ + display: flex; + align-items: center; + flex-wrap: wrap; + list-style: none; + padding: 0; + li{ + margin: 0.5% 1%; + } +} \ No newline at end of file -- 2.47.2 From 51157c5e3a2a7c6a16ccb8f73fedbbdeeeb384b0 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 21 Aug 2025 16:40:58 +0200 Subject: [PATCH 2/2] complement of html and css --- src/components/SingleProject.jsx | 11 +++- src/styles/SingleProject.css | 99 ++++++++++++++++++++++++-------- 2 files changed, 83 insertions(+), 27 deletions(-) diff --git a/src/components/SingleProject.jsx b/src/components/SingleProject.jsx index 997d8ed..1603a0c 100644 --- a/src/components/SingleProject.jsx +++ b/src/components/SingleProject.jsx @@ -1,10 +1,13 @@ import SkillCard from './SkillCard'; import "../styles/SingleProject.css"; -function SingleProject({image, title, description, skills}) { +function SingleProject({image, title, description, skills, color}) { return (
- {image} + {image}/ +
+
+

{title}

@@ -16,7 +19,11 @@ function SingleProject({image, title, description, skills}) {
  • ))} +

    + Learn more +

    +
    ) } diff --git a/src/styles/SingleProject.css b/src/styles/SingleProject.css index 22d7401..c4a494f 100644 --- a/src/styles/SingleProject.css +++ b/src/styles/SingleProject.css @@ -1,38 +1,87 @@ .single-project { display: flex; width: 80%; - justify-self: center; - margin-bottom: 4%; -} - -.single-project-left{ - width: 60%; - margin-right: 2%; - display: flex; - justify-content: center; - align-items: center; + margin: 2rem auto; + background-color: #1E1E1E; overflow: hidden; - height: 400px; - img{ - width: 100%; - height: auto; - object-fit: contain; - display: block; - } + transition: all 0.3s ease-in-out; + border-radius: 12px; } -.single-project-right{ - width: 40%; - margin-left: 2%; +.single-project:hover { + transform: translateY(-5px); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); } -.single-project-skills-list{ +.single-project-left { + flex-shrink: 0; + width: 55%; +} + +.single-project-left img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.single-project-right { + display: flex; + flex-direction: column; + justify-content: space-between; + padding: 2rem 2rem 2rem 0rem; + align-items: flex-start; +} + +.single-project-title { + font-size: 2rem; + color: #EAEAEA; + margin-top: 0; + margin-bottom: 1rem; +} + +.single-project-description { + color: #B0B0B0; + margin-bottom: 1.5rem; + text-align: justify; +} + +.single-project-skills-list { display: flex; - align-items: center; flex-wrap: wrap; list-style: none; padding: 0; - li{ - margin: 0.5% 1%; - } + margin: 0; + gap: 8px; +} + + +.single-project-link { + color: #EAEAEA; + text-decoration: none; + font-weight: 600; +} + + + +.single-project-middle { + padding: 2rem 0.5rem; +} + +.single-project-line { + border-radius: 38px; + min-width: 1.5rem; + height: 0.25rem; + margin-top: 1.5rem; + margin-left: 2rem; +} + +.color-orange{ + background-color: #D95F46; +} +.color-purple{ + background-color: #a646d9; +} +.color-green{ + background-color: #36a837; } \ No newline at end of file -- 2.47.2