diff --git a/assets/CV_Théo_Dupin.pdf b/assets/CV_Théo_Dupin.pdf index b8cff29..413f80f 100644 Binary files a/assets/CV_Théo_Dupin.pdf and b/assets/CV_Théo_Dupin.pdf differ diff --git a/assets/django.png b/assets/django.png new file mode 100644 index 0000000..067af14 Binary files /dev/null and b/assets/django.png differ diff --git a/assets/java.png b/assets/java.png new file mode 100644 index 0000000..30d57d4 Binary files /dev/null and b/assets/java.png differ diff --git a/assets/kanban.png b/assets/kanban.png new file mode 100644 index 0000000..04cc46d Binary files /dev/null and b/assets/kanban.png differ diff --git a/assets/kotlin.png b/assets/kotlin.png new file mode 100644 index 0000000..a959b6d Binary files /dev/null and b/assets/kotlin.png differ diff --git a/assets/mongodb.png b/assets/mongodb.png new file mode 100644 index 0000000..04ed21e Binary files /dev/null and b/assets/mongodb.png differ diff --git a/assets/mysql.png b/assets/mysql.png new file mode 100644 index 0000000..8e1ea03 Binary files /dev/null and b/assets/mysql.png differ diff --git a/assets/nestjs.png b/assets/nestjs.png new file mode 100644 index 0000000..cf5f2b3 Binary files /dev/null and b/assets/nestjs.png differ diff --git a/assets/postgresql.png b/assets/postgresql.png new file mode 100644 index 0000000..88f9a5f Binary files /dev/null and b/assets/postgresql.png differ diff --git a/assets/python.png b/assets/python.png new file mode 100644 index 0000000..d141aec Binary files /dev/null and b/assets/python.png differ diff --git a/assets/scrum.png b/assets/scrum.png new file mode 100644 index 0000000..f53f0a7 Binary files /dev/null and b/assets/scrum.png differ diff --git a/assets/sqlite.png b/assets/sqlite.png new file mode 100644 index 0000000..40be5b3 Binary files /dev/null and b/assets/sqlite.png differ diff --git a/assets/streamlit.png b/assets/streamlit.png new file mode 100644 index 0000000..5d806cb Binary files /dev/null and b/assets/streamlit.png differ diff --git a/assets/typeorm.png b/assets/typeorm.png new file mode 100644 index 0000000..7e25ec3 Binary files /dev/null and b/assets/typeorm.png differ diff --git a/assets/typescript.png b/assets/typescript.png new file mode 100644 index 0000000..d739537 Binary files /dev/null and b/assets/typescript.png differ diff --git a/index.html b/index.html index 1645e21..07378f2 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ + @@ -30,9 +31,8 @@ @@ -108,7 +108,59 @@
- + +
+ + +
+
+

Compétences

+
+
+
+

Languages de programmation

+
+ HTML + CSS + JavaScript + Typescript + Python +   PHP +   Bash + SQL + C/C++/C# + Java + Kotlin +
+
+
+

Frameworks / Bibliothèques / ORM

+
+ Angular + NestJS + React + Node.js + TypeORM + Symfony + Django + Streamlit +
+
+
+

Bases de données

+
+ PostgreSQL + MySQL + MongoDB + SQLite +
+
+
+

Gestion de projets

+
+ SCRUM + KANBAN +
@@ -124,6 +176,8 @@ + + \ No newline at end of file diff --git a/main.js b/main.js index 1873de6..cc1f427 100644 --- a/main.js +++ b/main.js @@ -21,5 +21,22 @@ document.addEventListener('DOMContentLoaded', function() { }); }); +// button return to top +window.onscroll = function() {scrollFunction()}; + +function scrollFunction() { + if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { + document.getElementById("button-top").style.display = "block"; + } else { + document.getElementById("button-top").style.display = "none"; + } +} + +// Revenir au début de la page lorsque le bouton est cliqué +function topFunction() { + document.body.scrollTop = 0; // Pour les navigateurs Safari + document.documentElement.scrollTop = 0; // Pour les autres navigateurs +} + // AOS AOS.init(); \ No newline at end of file diff --git a/styles.css b/styles.css index 466b36e..aaa29f0 100644 --- a/styles.css +++ b/styles.css @@ -34,7 +34,7 @@ section { left: 0; width: 100%; height: 100%; - background: rgba(0, 0, 0, 0.1); + background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(2px); z-index: -1; } @@ -226,7 +226,88 @@ section .wave.wave4 { font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; text-align: justify; } +/* ************ */ +/* SKILLS */ +.container-skills { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: white; + color: black; + gap: 40px; +} + +.skills-content { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 10px; + width: 80%; + font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + text-align: justify; +} + +.badge { + width: auto; + height: 25px; + background-color: #e0e0e0; + color: black; + padding: 10px 15px; + border-radius: 20px; + display: inline-block; + transition: transform 0.3s, box-shadow 0.3s; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + cursor: pointer; +} + +.badge i, +.badge img { + width: 16px; + height: 16px; + font-size: 16px; + vertical-align: middle; /* Ajustement de l'alignement vertical pour une meilleure présentation */ +} +.badge:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); +} + +#button-top { + position: fixed; + bottom: 20px; + right: 30px; + z-index: 99; + border: none; + outline: none; + background: linear-gradient(to bottom, #3498DB , #34495E); + color: white; + cursor: pointer; + padding: 15px; + border-radius: 50%; + font-size: 18px; + text-align: center; /* Pour centrer le contenu */ + line-height: 0; /* Supprime l'espacement interne par défaut */ + transition: background-color 0.3s; /* Animation de transition */ + } + + #button-top:hover { + background-color: black; + color: white; + } + + #button-top i { + font-size: 18px; + display: block; /* Assure que l'icône se comporte comme un bloc */ + margin: auto; /* Centre l'icône horizontalement */ + } + + /* Pour cacher le bouton au chargement de la page */ + #button-top.hidden { + display: none; + } @keyframes blink { 0%, 100% {