diff --git a/src/components/FloatingActionButton.css b/src/components/FloatingActionButton.css
deleted file mode 100644
index e829df8..0000000
--- a/src/components/FloatingActionButton.css
+++ /dev/null
@@ -1,39 +0,0 @@
-.floating-button-container {
- position: fixed;
- top: 20px;
- right: 20px;
- z-index: 100;
- }
-
- .floating-button-container .MuiButton-root {
- background-color: rgba(0,0,51, 0.7);
- color: white;
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
- transition: 0.3s;
- }
-
- .floating-button-container .MuiButton-root:hover,
- .floating-button-container .MuiButton-root.Mui-focusVisible {
- background-color: rgba(0,0,51, 0.9);
- box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.4);
- }
-
- .floating-button-container .MuiMenu-paper {
- margin-top: 15px;
- margin-right: 20px;
- min-width: 20ch;
- background-color: rgba(245, 245, 245, 0.8);
- border-radius: 15px;
- transition: 0.3s;
- box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.2);
- }
-
- .floating-button-container .MuiMenuItem-root:hover {
- background-color: rgba(0,0,51, 0.6);
- color: white;
- }
-
- .floating-button-container .MuiMenuItem-root:hover svg {
- color: white;
- transition: color 0.3s;
- }
diff --git a/src/components/InfoBox.css b/src/components/InfoBox.css
deleted file mode 100644
index 95fc8be..0000000
--- a/src/components/InfoBox.css
+++ /dev/null
@@ -1,28 +0,0 @@
-.info-box {
- position: absolute;
- /* top: 50%; */
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: #fff;
- padding: 1em;
- border-radius: 1em;
- font-size: 1em;
- text-align: center;
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
- width: 80%;
- max-width: 90%;
- margin: 0 auto;
- color: #7a90a4;
- z-index: 1;
-}
-
-.info-box h1 {
- color: #344D59;
-}
-
-@media (min-width: 600px) {
- .info-box {
- font-size: 1.15em;
- max-width: 60%;
- }
-}
diff --git a/src/components/InfoBox.js b/src/components/InfoBox.js
deleted file mode 100644
index 6dc3b13..0000000
--- a/src/components/InfoBox.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from 'react';
-import './InfoBox.css';
-
-function InfoBox({ title, description }) {
- return (
-
-
{title}
- {description.map((line, index) => (
-
{line}
- ))}
-
- )
-}
-
-export default InfoBox;
diff --git a/src/components/ProjectCard.css b/src/components/ProjectCard.css
deleted file mode 100644
index 0b50a9b..0000000
--- a/src/components/ProjectCard.css
+++ /dev/null
@@ -1,73 +0,0 @@
-.project-card {
- position: relative;
- border-radius: 20px;
- display: block;
- overflow: hidden;
- transition: all 0.3s ease-in-out;
-}
-
-.project-card-image-container {
- position: relative;
-}
-
-.project-image {
- width: 100%;
- object-fit: cover;
- transition: transform 0.5s;
- backface-visibility: hidden;
-}
-
-.project-card:hover .project-image {
- transform: scale(1.1);
-}
-
-.project-card-overlay {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background: rgba(12, 28, 34, 0.9);
- color: white;
- opacity: 0;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- padding: 20px;
- transition: opacity 0.3s ease-in-out;
-}
-
-.project-card:hover .project-card-overlay {
- opacity: 1;
-}
-
-.project-card-info {
- margin-bottom: 10px;
- display: flex;
- flex-direction: column;
- align-items: center;
-}
-
-.project-button {
- display: inline-block;
- padding: 10px 20px;
- background-color: #9b59b6;
- color: #f3f6f7;
- border: none;
- border-radius: 20px;
- text-decoration: none;
- transition: all 0.3s ease-in-out;
-}
-
-.project-button:hover {
- color: #ffffff;
- background-color: #8943a5;
- border-color: #5c157a;
- box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1);
-}
-
-.project-button:active {
- transform: scale(0.99);
- box-shadow: none;
-}
\ No newline at end of file
diff --git a/src/components/ProjectCard.js b/src/components/ProjectCard.js
deleted file mode 100644
index 6f00ddd..0000000
--- a/src/components/ProjectCard.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from 'react';
-import './ProjectCard.css';
-
-function ProjectCard({ projectName, projectDesc, projectImg, projectLink }) {
- return (
-
-
-
-
-
-
- );
-}
-
-export default ProjectCard;
diff --git a/src/components/ProjectCardSection.css b/src/components/ProjectCardSection.css
deleted file mode 100644
index eef9069..0000000
--- a/src/components/ProjectCardSection.css
+++ /dev/null
@@ -1,49 +0,0 @@
-.project-cards-section {
- width: 100%;
- margin-top: 90px;
- padding: 50px 0;
-}
-
-
-@media (max-width: 700px) {
- .project-cards-section {
- margin-top: 120px;
- }
-}
-
-.project-cards-container {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 20px;
- width: 90%;
- margin: 0 auto;
-}
-
-
-.btn-see-more {
- margin-top: 30px;
- background-color: #851805ee;
- color: #ffffff;
- border: none;
- padding: 10px 30px;
- font-family: 'Nunito', sans-serif;
- font-weight: 700;
- font-size: 1.2em;
- text-transform: uppercase;
- letter-spacing: 2px;
- transition: all 0.3s ease-in-out;
- border-radius: 10px;
- box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1);
- position: relative;
- z-index: 100;
-}
-
-.btn-see-more:hover {
- background-color: #841b17;
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
-}
-
-.btn-see-more:active {
- transform: scale(0.98);
- box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
-}
diff --git a/src/components/ProjectCardSection.js b/src/components/ProjectCardSection.js
deleted file mode 100644
index 8600582..0000000
--- a/src/components/ProjectCardSection.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import Button from '@mui/material/Button';
-import './ProjectCardSection.css';
-import ProjectCard from '../components/ProjectCard';
-
-function ProjectCardSection({ number }) {
- const [projects, setProjects] = useState([]);
-
- useEffect(() => {
-
- const fetchGitHubProjects = async () => {
- try {
- const response = await fetch('https://api.github.com/users/redboarddev/repos?sort=pushed&direction=desc');
- if (!response.ok) {
- throw new Error('Error while retrieving GitHub data');
- }
-
- const data = await response.json();
-
- const filteredProjects = data.filter((project) => project.description);
-
- const slicedProjects = filteredProjects.slice(0, 6);
-
- const mappedProjects = slicedProjects.map((project) => ({
- projectName: project.name,
- projectDesc: project.description,
- projectImg: project.owner.avatar_url,
- projectLink: project.html_url,
- }));
-
- setProjects(mappedProjects);
- } catch (error) {
- console.error('Erreur:', error);
- }
- };
-
- fetchGitHubProjects();
- }, []);
-
- return (
-
-
- {projects.map((project, index) => (
-
- ))}
-
-
-
-
-
- );
-}
-
-export default ProjectCardSection;
diff --git a/src/components/WordCloud.css b/src/components/WordCloud.css
deleted file mode 100644
index f9a7bd9..0000000
--- a/src/components/WordCloud.css
+++ /dev/null
@@ -1,51 +0,0 @@
-.word-cloud-box {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- border-radius: 25px;
- box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.3);
- max-width: 90%;
- margin: 0 auto;
-}
-
-@media (max-width: 600px) {
- .word-cloud-container {
- height: 500px;
- }
- }
-
-.word-cloud-container {
- position: relative;
- width: 100%;
- height: 400px;
-}
-
-.description-container {
- width: 100%;
- position: relative;
- color: #fff;
- border-radius: 15px;
- font-family: "Lucida Console", Monaco, monospace;
- font-size: 16px;
- letter-spacing: 0.1em;
- line-height: 24px;
- transition: all 0.3s ease;
- background-color: rgb(114, 62, 62, 0.96);
- margin-top: 1em;
-}
-
-.word-cloud-word {
- font-family: "Roboto", sans-serif;
- cursor: pointer;
- transition: all 0.3s ease;
- font-weight: normal;
-}
-
-.word-cloud-word:hover {
- background-color: #f5f5f5;
-}
-
-.word-cloud-word.selected {
- font-weight: bold;
-}
\ No newline at end of file
diff --git a/src/components/WordCloud.js b/src/components/WordCloud.js
deleted file mode 100644
index 3cf6446..0000000
--- a/src/components/WordCloud.js
+++ /dev/null
@@ -1,138 +0,0 @@
-import React, { useEffect, useRef } from "react";
-import * as d3 from "d3";
-import cloud from "d3-cloud";
-import "./WordCloud.css";
-import { Paper, Box } from '@mui/material';
-
-const WordCloud = ({ data }) => {
- const wordCloudRef = useRef(null);
-
- useEffect(() => {
- d3.select(wordCloudRef.current).html("");
-
- const drawWordCloud = data => {
- const color = d3.scaleOrdinal()
- .domain(data.map(d => d.text))
- .range(["#003f5c", "#bc5090", "#ffa600", "#ff7c43", "#1F1F1F", "#008080", "#D2691E", "#808080"]);
-
- const screenWidth = wordCloudRef.current.clientWidth;
- const maxWordSize = 40;
- const minWordSize = 20;
- const maxPadding = 10;
- const minPadding = 5;
-
- const wordSizeScale = d3
- .scaleLinear()
- .domain([300, 1200])
- .range([minWordSize, maxWordSize])
- .clamp(true);
-
- const paddingScale = d3
- .scaleLinear()
- .domain([300, 1200])
- .range([minPadding, maxPadding])
- .clamp(true);
-
- const layout = cloud()
- .size([screenWidth, 400])
- .words(data.map((d) => ({ text: d.text, size: wordSizeScale(screenWidth) })))
- .padding((d) => paddingScale(screenWidth))
- .rotate(() => Math.floor(Math.random() * 21) - 10)
- .font("Arial")
- .fontSize((d) => d.size)
- .on("end", draw);
- layout.start();
-
-
- function draw(words) {
- const svg = d3.select(wordCloudRef.current)
- .append("svg")
- .attr("width", layout.size()[0])
- .attr("height", layout.size()[1])
- .append("g")
- .attr("transform", "translate(" + layout.size()[0] / 2 + "," + layout.size()[1] / 2 + ")");
-
- svg.selectAll("text")
- .data(words)
- .enter()
- .append("text")
- .style("font-size", d => d.size + "px")
- .style("font-family", "Arial")
- .style("fill", d => color(d.text))
- .attr("class", "word-cloud-word")
- .attr("text-anchor", "middle")
- .attr("transform", d => "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")")
- .text(d => d.text)
- .on('click', handleClick);
- }
-
- function handleClick(d) {
- const word = d3.select(this);
- const isSelected = word.classed("selected");
-
- if (!isSelected) {
- d3.selectAll(".word-cloud-word")
- .style("font-weight", "normal")
- .classed("selected", false);
-
- word.style("font-weight", "bold")
- .classed("selected", true);
- }
-
- const descriptionContainer = d3.select(".description-container");
- const matchedData = data.find(item => item.text === word.text());
- descriptionContainer.text(matchedData.text + ": " + matchedData.description);
- }
- };
-
- drawWordCloud(data);
- }, [data]);
-
- return (
-
-
-
-
-
- Cliquez sur un mot pour plus de détails
-
-
- );
-};
-
-export default WordCloud;
diff --git a/src/pages/Home.js b/src/pages/Home.js
index d86fe78..04f7b8e 100644
--- a/src/pages/Home.js
+++ b/src/pages/Home.js
@@ -1,44 +1,13 @@
import React from 'react';
import Button from '@mui/material/Button';
import "./Home.css";
-import { Container, Grid } from '@mui/material';
import ProfileImage from '../components/ProfileImage';
-import FloatingActionButton from '../components/FloatingActionButton';
import TypingEffect from '../components/TypingEffect';
-import WordCloud from '../components/WordCloud';
-import InfoBox from '../components/InfoBox';
-import ProjectCardSection from '../components/ProjectCardSection';
function Home() {
- const data = [
- { text: "JavaScript", value: 35, description: "Langage de programmation pour le développement web." },
- { text: "Python", value: 45, description: "Langage de programmation polyvalent et puissant." },
- { text: "React", value: 40, description: "Bibliothèque JavaScript pour la création d'interfaces utilisateur." },
- { text: "Node.js", value: 35, description: "Plateforme de développement côté serveur en JavaScript." },
- { text: "HTML/CSS", value: 50, description: "Langages de base pour la création de pages web." },
- { text: "Git", value: 45, description: "Système de contrôle de version pour le suivi des modifications de code." },
- { text: "Docker", value: 30, description: "Plateforme de conteneurisation pour l'exécution d'applications." },
- { text: "SQL", value: 40, description: "Langage de requête pour interagir avec les bases de données relationnelles." },
- { text: "C++", value: 20, description: "Langage de programmation pour le développement système et les applications." },
- { text: "Java", value: 30, description: "Langage de programmation polyvalent pour les applications." },
- { text: "TypeScript", value: 35, description: "Langage de programmation typé pour le développement JavaScript." },
- { text: "Ruby", value: 25, description: "Cadre d'application web basé sur Ruby." },
- { text: "PHP", value: 25, description: "Langage de script pour le développement web côté serveur." },
- { text: "DevOps", value: 35, description: "Méthodologie de développement logiciel centrée sur la collaboration entre équipes de développement et opérations." },
- { text: "Ansible", value: 30, description: "Outil d'automatisation pour la gestion de configuration et le déploiement d'applications." },
- { text: "Vue.js", value: 20, description: "Framework JavaScript progressif pour la création d'interfaces utilisateur." },
- { text: "Angular", value: 30, description: "Plateforme de développement d'applications web côté client." },
- { text: "API REST", value: 40, description: "Architecture d'API pour les services web." },
- { text: "Express.js", value: 30, description: "Cadre d'application web pour Node.js." },
- { text: "GraphQL", value: 25, description: "Langage de requête pour les API et les services web." },
- { text: "GraphQL", value: 25, description: "Langage de requête pour les API et les services web." },
-
- ];
-
return (
<>
-
@@ -55,34 +24,6 @@ function Home() {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
>
);
}