Compare commits

..

2 Commits

Author SHA1 Message Date
Morph01
08457d6b91 add section Hero Section, section Skills, section About Me and the Navbar 2024-02-10 19:35:38 +01:00
Morph01
689be873fc styles css 2024-02-10 19:32:18 +01:00
5 changed files with 596 additions and 0 deletions

392
src/App.css Normal file
View File

@@ -0,0 +1,392 @@
/* Global CSS */
body {
margin: 0;
font-family: "Roboto", sans-serif;
-webkit-font-smoothing: "Roboto", sans-serif;
-moz-osx-font-smoothing: "Roboto", sans-serif;
font-style: normal;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
margin: 0;
}
:root {
--primary: #5e3bee;
--heading-color: #282938;
--bg-shade: #f5fcff;
--github: #e62872;
--darkblue: #1c1e53;
--black: #000000;
--white: #ffffff;
}
.btn {
font-family: "Roboto";
display: inline-block;
padding: 14px 32px;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
cursor: pointer;
text-align: center;
text-decoration: none;
border-radius: 4px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
transition: background-color 0.5s;
-webkit-transition: background-color 0.5s;
-moz-transition: background-color 0.5s;
-ms-transition: background-color 0.5s;
-o-transition: background-color 0.5s;
}
.btn-outline-primary {
color: var(--primary);
background-color: var(--white);
border: 1px solid var(--primary);
}
.btn-outline-primary:hover {
color: var(--white);
background-color: var(--primary);
}
.btn-primary {
color: var(--white);
background-color: var(--primary);
border: 1px solid var(--primary);
}
.btn-primary:hover {
color: var(--primary);
background-color: var(--white);
}
.btn-github {
color: var(--white);
background-color: var(--github);
border: var(--github);
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
box-shadow: 0 1px 2px 0 rgba(16, 24, 40, 0.95);
gap: 16px;
}
.btn-github:hover {
color: var(--github);
background-color: var(--white);
}
/* Global CSS Ends */
/* Main Headings */
/* Heading 1 */
h1 {
font-size: 56px;
font-weight: 700;
line-height: 67px;
}
/* Heading 2 */
h2 {
font-size: 48px;
font-weight: 700;
line-height: 58px;
}
/* Heading 3 */
h2 {
font-size: 24px;
font-weight: 700;
line-height: 34px;
}
/* Pragraphs text large medium small */
/* Body 1 */
.text-lg {
color: var(--darkblue);
font-size: 18px;
font-style: normal;
font-weight: 400;
line-height: 27px;
}
/* Body 2 */
.text-md {
color: var(--darkblue);
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
}
/* Body 3 */
.text-sm {
color: var(--black);
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 21px;
}
/* Section Titles */
/* Skills & About Me */
.section--title {
color: var(--heading-color);
font-size: 21px;
text-align: center;
font-style: normal;
font-weight: 600;
line-height: 32px;
display: flex;
align-items: flex-start;
}
/* Portfolio, Testimonial & Contact Me */
.sub--title {
color: var(--heading-color);
font-size: 16px;
font-weight: 600;
line-height: 24px;
}
/* Section Titles Ends */
/* Navbar Style Start */
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 85.333px;
background: var(--white);
box-shadow: 0px 5.333px 80px 0 rgba(0, 0, 0, 0.1);
position: fixed;
top: 0;
left: 0;
right: 0;
}
.navbar--items > ul {
list-style: none;
display: flex;
align-items: flex-start;
gap: 42.667px;
text-decoration: none;
}
.navbar--items ul > li > a {
text-decoration: none;
}
/* Navbar Content */
.navbar--content {
color: var(--darkblue);
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
cursor: pointer;
}
.navbar--active-content {
color: var(--primary);
}
/* Navbar Styler Ends */
/* Hero Section Style */
.hero--section {
display: grid;
grid-template-columns: repeat(2, 1fr);
padding: 133.333px 85.333px 133.333px;
align-items: center;
justify-content: space-between;
gap: 32px;
background-color: var(--bg-shade);
}
.hero--section--content-box {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 32px;
}
.hero--section--content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 21.333px;
}
.hero--section--content--box > button {
margin-top: 21.333px;
}
.hero--section--title {
color: var(--heading-color);
font-size: 74.667px;
font-weight: 700;
line-height: 90px;
align-self: stretch;
}
.hero--section--title--color {
color: var(--primary);
}
.hero--section-description {
color: var(--darkblue);
font-size: 24px;
font-weight: 400;
line-height: 36px;
}
.hero--section--img {
display: flex;
}
.hero--section--img > img {
width: 100%;
height: 100%;
}
/* Hero Section Style Ends */
/* Skills Section Style */
.skills--section {
display: flex;
padding: 149.33px 85.33px;
flex-direction: column;
justify-content: center;
align-items: flex-start;
gap: 106.667px;
}
.skills--section--heading {
color: var(--heading-color);
font-size: 64px;
font-weight: 700;
line-height: 77px;
}
.skills--section--container {
display: grid;
justify-content: center;
align-items: flex-start;
gap: 42.6px;
grid-template-columns: repeat(4, 1fr);
}
.skills--section--card {
display: flex;
padding: 32px;
flex-direction: column;
align-items: flex-start;
gap: 32px;
flex: 1 0 0;
border-radius: 10.6px;
background: var(--bg-shade);
min-height: 250px;
}
.skills--section--card:hover {
border-bottom: 4px solid var(--primary);
}
.skills--section--card:hover .skills--section--description {
color: var(--darkblue);
}
.skills--section--img {
display: flex;
padding: 13.3px;
justify-content: center;
align-items: center;
gap: 13.3px;
border-radius: 10.6px;
background: #fff;
box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.1);
}
.skills--section--card--content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 32px;
align-self: stretch;
}
.skills--section--title {
color: var(--heading-color);
font-size: 32px;
font-weight: 700;
line-height: 45px;
}
.skills--section--description {
color: var(--black);
font-size: 21.3px;
font-style: normal;
font-weight: 400;
line-height: 32px;
}
/* Skills Style Ends */
/* About Us Starts*/
.about--section {
display: grid;
padding: 133.3px 85.3px;
align-items: center;
gap: 114.6px;
grid-template-columns: repeat(2, 1fr);
}
.about--section--img > img {
width: 100%;
height: 100%;
}
/* About Us Ends */
/* My Portfolio Starts */
.portfolio--section {
display: flex;
padding: 112px 85px;
flex-direction: column;
align-items: flex-start;
gap: 80px;
}
.portfolio--container-box {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
}
.portfolio--container {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 21.3px;
}
.portfolio--section--container {
display: flex;
align-items: center;
justify-content: center;
gap: 42.6px;
width: 100%;
}
.portfolio--section--img {
border-radius: 8px;
width: 100%;
}
.portfolio--section--img > img {
width: 100%;
}
.portfolio--section--card {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 32px;
flex: 1 0 0;
background: #fff;
box-shadow: 0 0 32px 0 rgba(0, 0, 0, 0.15);
cursor: pointer;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
}
.portfolio--section--card--content {
display: flex;
padding: 32px;
flex-direction: column;
align-items: flex-start;
gap: 32px;
align-self: stretch;
}
.portfolio--section--title {
color: var(--heading-color);
}
.portfolio--link {
text-decoration: none;
display: flex;
gap: 16px;
border-bottom: 1.33px solid var(--primary);
padding-bottom: 10.6px;
font-weight: 600;
}
.portfolio--section--card:hover path {
stroke: #006b6a;
}
/* Portfolio Ends */

View File

@@ -0,0 +1,28 @@
export default function AboutMe() {
return (
<section id="AboutMe" className="about--section">
<div className="about--section--img">
<img src="./img/logo512.png" alt="AboutMe" />
</div>
<div className="hero--section--content-box about--section--box">
<div className="hero--section--content">
<p className="section--title">A propos</p>
<h1 className="skills-section--heading">A propos de moi</h1>
<p className="hero--section-description">
Je suis un étudiant hors pair, le meilleur alternant que vous pouvez
trouver. Ma passion est de jouer The Song of The Golden Dragon, de
Estas Tones. Le poulet c'est délicieux.
</p>
<p className="hero--section-description">
Ensuite, il faut dire que la guitare c'est génial et pourquoi pas me
choisir pour ça je vous le demande. Enfin j'aimerais ajouter qu'il
ne faut pas oublier de dire quelque chose de très important. Et oui,
vous voyez, l'alternant basique l'oubli, mais pas moi. J'ai de la
famille dans la mafia italienne ... J'apprécierais que vous me
choisissiez, fin vous comprenez.
</p>
</div>
</div>
</section>
);
}

View File

@@ -0,0 +1,27 @@
export default function HeroSection() {
return (
<section id="heroSection" className="hero--section">
<div className="hero--section--content-box">
<div className="hero--section--content">
<p className="section--title">Hello, je suis ALESSI Thibaut</p>
<h1 className="hero--section--title">
<span className="hero--section--title--color">
Etudiant à Polytech Lyon
</span>{" "}
<br />
Dev, BDD
</h1>
<p className="hero--section--description">
Voici la description, j'adore l'informatique miam miam
<br />A la recherche d'une alternance de 3 ans avec l'école
d'ingénieur Polytech Lyon
</p>
</div>
<button className="btn btn-primary">Contactez-moi</button>
</div>
<div className="hero--section--img">
<img src="./img/logo512.png" alt="Hero Section" />
</div>
</section>
);
}

View File

@@ -0,0 +1,25 @@
import data from "../../data/index.json";
export default function MySkills() {
return (
<section className="skills--section" id="mySkills">
<div className="portfolio--container">
<p className="section--title">Mes Compétences</p>
<h2 className="skills--section--heading">Mes Skills</h2>
</div>
<div className="skills--section--container">
{data?.skills?.map((item, index) => (
<div key={index} className="skills--section--card">
<div className="skills--section--img">
<img src={item.src} alt="Tools" />
</div>
<div className="skills--section--card--content">
<h3 className="skills--section--title">{item.title}</h3>
<p className="skills--section--description">{item.description}</p>
</div>
</div>
))}
</div>
</section>
);
}

124
src/Pages/Home/Navbar.jsx Normal file
View File

@@ -0,0 +1,124 @@
import { useState, useEffect } from "react";
import { Link } from "react-scroll";
function Navbar() {
const [navActive, setNavActive] = useState(false);
const toggleNav = () => {
setNavActive(!navActive);
};
const closeMenu = () => {
setNavActive(false);
};
useEffect(() => {
const handleResize = () => {
if (window.innerWidth <= 500) {
closeMenu;
}
};
window.addEventListener("resize", handleResize);
return () => {
window.removeEventListener("resize", handleResize);
};
}, []);
useEffect(() => {
if (window.innerWidth <= 1200) {
closeMenu;
}
}, []);
return (
<nav className={`navbar ${navActive ? "active" : ""}`}>
<div>
<img src="/logo.svg" alt="Logoipsum" />
</div>
<a
className={`nav__hamburger ${navActive ? "active" : ""}`}
onClick={toggleNav}
>
<span className="nav__hamburger__line"></span>
<span className="nav__hamburger__line"></span>
<span className="nav__hamburger__line"></span>
</a>
<div className={`navbar--items ${navActive ? "active" : ""}`}>
<ul>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="heroSection"
className="navbar--content"
>
Home
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="MyPortfolio"
className="navbar--content"
>
Portfolio
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="AboutMe"
className="navbar--content"
>
About Me
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="testimonial"
className="navbar--content"
>
Testimonials
</Link>
</li>
</ul>
</div>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="Contact"
className="btn btn-outline-primary"
>
Contact Me
</Link>
</nav>
);
}
export default Navbar;