Compare commits
64 Commits
new_banner
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
704483f6e6 | ||
|
|
cd97001cc0 | ||
|
|
dfc4f55709 | ||
|
|
2c8ae62e4b | ||
|
|
eacd26e532 | ||
|
|
8ac697b6e3 | ||
|
|
f43afab585 | ||
|
|
0764207780 | ||
|
|
d040932217 | ||
|
|
c633026376 | ||
|
|
de4be9e248 | ||
|
|
b52842c254 | ||
|
|
5b1ea933f6 | ||
|
|
ecabfcc392 | ||
|
|
d9a6269f13 | ||
|
|
c08dff5171 | ||
|
|
0b55e2cdb3 | ||
|
|
9edec3714e | ||
|
|
e27344b350 | ||
|
|
d72c5ea2de | ||
|
|
92b75b3239 | ||
|
|
2e03ec0ae9 | ||
|
|
32ea6d6cf4 | ||
|
|
69b111b1e2 | ||
|
|
3f6eb8e78b | ||
|
|
4642f33e0a | ||
|
|
af9543e1f1 | ||
|
|
801576af7a | ||
|
|
f414587ec3 | ||
|
|
1056f8ea5c | ||
|
|
ad737c57dc | ||
|
|
fdd16bbd3e | ||
|
|
0c7860fee9 | ||
|
|
d545c2ef28 | ||
|
|
e21e5b8938 | ||
|
|
680c5808a3 | ||
|
|
8ac471331f | ||
|
|
04883ef891 | ||
|
|
8a69f25113 | ||
|
|
d60b3580c0 | ||
|
|
744c2aedcb | ||
|
|
86869399fb | ||
|
|
9ba7801d03 | ||
|
|
6e13db6a95 | ||
|
|
67bc569749 | ||
|
|
785be3e6ac | ||
|
|
5c6f636e4d | ||
|
|
d93015f2fa | ||
|
|
00485dbc70 | ||
|
|
527424df53 | ||
|
|
1742985974 | ||
|
|
40048d3871 | ||
|
|
877c5eb271 | ||
|
|
875a79816b | ||
|
|
ac836798b9 | ||
|
|
a40ab0b203 | ||
|
|
9302e725db | ||
|
|
c9150faa52 | ||
|
|
f5c7b07aad | ||
|
|
4f5cd77c81 | ||
|
|
f042247cbb | ||
|
|
b517d26ece | ||
|
|
668aad3c59 | ||
|
|
ac1d84fc9a |
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
// Use Prettier as the default formatter for HTML and CSS
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
"[html]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"[css]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
}
|
||||||
|
}
|
||||||
354
alphabet.txt
@@ -1,354 +0,0 @@
|
|||||||
|
|
||||||
·•◦●∘⬤
|
|
||||||
|
|
||||||
- 183 : ·
|
|
||||||
- 8226 : •
|
|
||||||
- 8729 : ∙
|
|
||||||
- 9679 : ●
|
|
||||||
- 9899 : ⚫
|
|
||||||
- 11044 : ⬤
|
|
||||||
|
|
||||||
- 57352
|
|
||||||
- 57894
|
|
||||||
- 58140
|
|
||||||
- 58189
|
|
||||||
- 58423
|
|
||||||
- 58470
|
|
||||||
- 58471
|
|
||||||
- 58472
|
|
||||||
- 58736 "Private Use Area"
|
|
||||||
- 58737 "Private Use Area"
|
|
||||||
- 61434 "Private Use Area"
|
|
||||||
- 61713 "Private Use Area"
|
|
||||||
|
|
||||||
- 57442 (0xe062) U+E062 "uniE062" -
|
|
||||||
- 57443 (0xe063) U+E063 "uniE063" -
|
|
||||||
- 57444 (0xe064) U+E064 "uniE064" -
|
|
||||||
- 57445 (0xe065) U+E065 "uniE065" -
|
|
||||||
- 57446 (0xe066) U+E066 "uniE066" -
|
|
||||||
- 57447 (0xe067) U+E067 "uniE067" -
|
|
||||||
|
|
||||||
|
|
||||||
1229 * (1638 + 410)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • ••••
|
|
||||||
• • • • • • • • • • • •• •• •• •• • • • • •
|
|
||||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • ••••
|
|
||||||
• • • • • • • • • • • • • • • • • • • •
|
|
||||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • •
|
|
||||||
|
|
||||||
••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
|
||||||
• •• • • • • • • •• •• • • • • • • • • •
|
|
||||||
• • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
|
||||||
• • •• • • • • • • • • • • • • • • • • •
|
|
||||||
••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • •••• ••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
|
||||||
• • • • • • • • • • • •• •• •• •• • • • • • • •• • • • • • • •• •• • • • • • • • • •
|
|
||||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • •••• • • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
|
||||||
• • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • •
|
|
||||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • • ••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•
|
|
||||||
•• ••••• •••••
|
|
||||||
••• • • • • ••
|
|
||||||
•••• • •••• • • • •
|
|
||||||
•• •• • • • • • • • •
|
|
||||||
•• •• • • • ••• •••••
|
|
||||||
•• •• • •• •
|
|
||||||
•• •• • •• •
|
|
||||||
•• ••••••••• • • •
|
|
||||||
•• •• • •••• ••••• •
|
|
||||||
•• •• • • • • • • •
|
|
||||||
•• •• • • • • •• • •
|
|
||||||
•••• • •• •• •• •
|
|
||||||
••• • ••••••• • • •••
|
|
||||||
•• • • •••••
|
|
||||||
•••••••• • • •
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
•
|
|
||||||
•
|
|
||||||
•• •
|
|
||||||
• • •••••••
|
|
||||||
• •• • •
|
|
||||||
••••• • • • •
|
|
||||||
• • • • • •
|
|
||||||
• • • •• •
|
|
||||||
• • • •
|
|
||||||
• • ••
|
|
||||||
••• • •
|
|
||||||
• ••••• •
|
|
||||||
• •
|
|
||||||
•• •
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•••• •
|
|
||||||
• • •
|
|
||||||
• • •
|
|
||||||
• •••
|
|
||||||
•••••
|
|
||||||
• •
|
|
||||||
• •
|
|
||||||
• •
|
|
||||||
••• •••
|
|
||||||
• • • •
|
|
||||||
• • • •
|
|
||||||
•••• ••••
|
|
||||||
• • • • •
|
|
||||||
••• • • •
|
|
||||||
••••••••
|
|
||||||
•
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•
|
|
||||||
•• •
|
|
||||||
• • •
|
|
||||||
•••••••••
|
|
||||||
• • ••
|
|
||||||
• • •
|
|
||||||
••••• • • •
|
|
||||||
• • •• •
|
|
||||||
• •
|
|
||||||
• • ••
|
|
||||||
• • • •
|
|
||||||
• •• •
|
|
||||||
••• ••••
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
• • • • ••••• ••••• • ••• • • • •
|
|
||||||
• • • • • • • • • • •• •• • •
|
|
||||||
••••• • • • •• • • • ••••• • • • •
|
|
||||||
• • • • • • • • • • • • • •
|
|
||||||
• • ••••• ••••• ••••• ••••• • • • • •
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
•••• •••• ••••• ••••• ••••• ••••• ••••• •••••
|
|
||||||
• • • • • • • • • • •
|
|
||||||
•••• •••• • • • •••• • • •••••
|
|
||||||
• • • • • • • • • •
|
|
||||||
• • • ••••• •• ••••• ••••• • •••••
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
••• •••• ••••• •••• ••••• ••••• ••••• • • ••••• ••••• • • • • •
|
|
||||||
• • • • • • • • • • • • • • • • • •• ••
|
|
||||||
••••• •••• • • • •••• •••• • •• ••••• • • ••• • • • •
|
|
||||||
• • • • • • • • • • • • • • • • • • • •
|
|
||||||
• • •••• ••••• •••• ••••• • ••••• • • ••••• •• • • ••••• • •
|
|
||||||
|
|
||||||
• • ••••• •••• ••• •••• ••••• ••••• • • • • • • • • • • •••••
|
|
||||||
•• • • • • • • • • • • • • • • • • • • • • • •
|
|
||||||
• • • • • •••• • • •••• ••••• • • • • • • • • • •
|
|
||||||
• •• • • • • • • • • • • • • • • • • • • • •
|
|
||||||
• • ••••• • •• • • • ••••• • ••••• • • • • • • •••••
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
532
index.html
@@ -1,532 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="fr" dir="ltr">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
||||||
<!-- create "fake" favicon : https://stackoverflow.com/questions/1321878/how-to-prevent-favicon-ico-requests -->
|
|
||||||
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
|
|
||||||
<title>hugulumu.fr</title>
|
|
||||||
<meta name="description" content="site web de hugo lamy, developpeur">
|
|
||||||
<link href="./styles/reset.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/style.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/global.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/text.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/mouses.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/banners.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/title.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/nav.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/sections.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/hero.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/projects.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/cv.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href="./styles/elements/infos.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
original : • 8226 U+2022
|
|
||||||
: 57442 U+E062
|
|
||||||
: 57443 U+E063
|
|
||||||
: 57444 U+E064
|
|
||||||
: 57445 U+E065
|
|
||||||
actual : 57446 U+E066
|
|
||||||
: 57447 U+E067
|
|
||||||
-->
|
|
||||||
|
|
||||||
<body id="body">
|
|
||||||
<main id="top">
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
NAV
|
|
||||||
<nav>
|
|
||||||
<a href="#top">accueil</a>
|
|
||||||
<a href="#projects">projets</a>
|
|
||||||
<a href="#cv">cv</a>
|
|
||||||
<a href="#infos">contact</a>
|
|
||||||
</nav>
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
HERO SECTION
|
|
||||||
-->
|
|
||||||
<section class="section hero" id="hero">
|
|
||||||
<header>
|
|
||||||
<h1 aria-label="hugo lamy" id="name" class="title">
|
|
||||||
<span aria-hidden="true" class="pre pre_small">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
<span aria-hidden="true" class="pre pre_small">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</h1>
|
|
||||||
<h1 aria-label="programmeur informatique" id="title" class="title">
|
|
||||||
<span aria-hidden="true" class="pre">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
<span aria-hidden="true" class="pre">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="frames_container mouse" id="mouse_1" role="img" aria-label="mouse animated in ASCII art">
|
|
||||||
<pre class="frame f1" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f2" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f3" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f4" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<div class="banner banner_size_5 banner_speed_30" aria-label="banner delimitation in ASCII art"></div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
PROJECTS
|
|
||||||
-->
|
|
||||||
<section id="projects" class="section">
|
|
||||||
|
|
||||||
<header>
|
|
||||||
<h1 aria-label="projets">
|
|
||||||
<span aria-hidden="true" class="pre">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<article>
|
|
||||||
<h2>projets réalisés</h2>
|
|
||||||
<figure class="project" id="ljdp">
|
|
||||||
<figcaption class="project_description">
|
|
||||||
<h3>extension wordpress :</h3><p>extension wordpress affichant les articles du site sur une carte, et permettant d'affiner la selection avec des critères</p>
|
|
||||||
<ul>
|
|
||||||
<li>lien du site : <a href="https://2022.lejourdesprofs.org/#programme" target="_blank" rel="noopener noreferrer" title="link to the webpage the running plugin"></a></li>
|
|
||||||
<li>lien du code : <a href="incomming" target="_blank" rel="noopener noreferrer" title="link to the source code of the plugin"></a></li>
|
|
||||||
<li>technologies : wordpress backend, php, javascript, html, css, google maps javascript API, google maps geocoding API, google maps markerclusterer</li>
|
|
||||||
</ul>
|
|
||||||
</figcaption>
|
|
||||||
<iframe
|
|
||||||
src="https://2022.lejourdesprofs.org/hugogogo/"
|
|
||||||
data-flex="center"
|
|
||||||
title="embedded plugin from it's original website"
|
|
||||||
sandbox="allow-scripts allow-popups"
|
|
||||||
></iframe>
|
|
||||||
</figure>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
<div class="frames_container mouse" id="mouse_2" role="img" aria-label="mouse animated in ASCII art">
|
|
||||||
<pre class="frame f1" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f2" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f3" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f4" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<div class="banner banner_size_3 banner_speed_20 banner_reverse" aria-label="banner delimitation in ASCII art"></div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
CV
|
|
||||||
-->
|
|
||||||
<section id="cv" class="section">
|
|
||||||
|
|
||||||
<header>
|
|
||||||
<h1 aria-label="cv" id="cv_ascii">
|
|
||||||
<span aria-hidden="true" class="pre">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<article>
|
|
||||||
<h2 id="cv_download"><a href="downloads/hugo_lamy_2023_cv.pdf" target="_blank" rel="noopener noreferrer" title="link to a pdf version of this section CV">version pdf</a></h2>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Outils informatiques</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>Langages : C, HTML, CSS, C++, JavaScript, script bash, PHP, Svelte, TypeScript</li>
|
|
||||||
<li>Technologies : Git, Docker, Nginx, MariaDB, Node.js, Nest.js, WebSocket, Express, npm</li>
|
|
||||||
<li>Plus : emails, sending emails, receiving emails, deleting emails ("the it crowd", Jane Barber s01e01)</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Projets informatique</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>Full-stack, reprise d’un site d’artistes en php, <a href="https://www.bloc-house.org" target="_blank" rel="noopener noreferrer" title="link to bloc-house website"></a>, 2021</li>
|
|
||||||
<li>Backend, plugin WordPress avec API Google Maps, <a href="https://2022.lejourdesprofs.org/#programme" target="_blank" rel="noopener noreferrer" title="link to lejourdesprofs website"></a>, 2022</li>
|
|
||||||
<li>Site vitrine, association Kosmopolit, <a href="https://kosmopolit.bitbucket.io" target="_blank" rel="noopener noreferrer" title="link to kosmopolit website"></a>, 2021</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Formations informatique</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>École 42, Paris, 2021-2022, tronc commun - niveau 10 (C, C++, système, algorithime, réseaux)</li>
|
|
||||||
<li>SIMPLON, développeur full-stack JavaScript, 2018 (Javascript, Node.js, React.js, HTML, CSS)</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Bénévolat</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>Formateur contraception testiculaire, ZEROMILLIONS, Paris, France, 2021-2023</li>
|
|
||||||
<li>Cogestion des bénévoles d'un camp de réfugiés, UTOPIA 56, Grande-Synthe, France, 2016</li>
|
|
||||||
<li>Distribution de nourriture (Migrants-Wilson & Secours Populaire)</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Études d’architecture</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>Master 1, ENSAPM, ESA, ENSAV, île-de-france, France, 2008-2014</li>
|
|
||||||
<li>Stages : PERSPECTIVA (Houston, Texas, 2009), AS (Paris, 2012), JC QUINTON (Paris 2014)</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>
|
|
||||||
<h3>Centres d'intérêts</h3>
|
|
||||||
</summary>
|
|
||||||
<ul>
|
|
||||||
<li>Vélo : longs voyages à vélo, construction de vélos retro-directs</li>
|
|
||||||
<li>Magie : cartes, pièces, scène</li>
|
|
||||||
<li>Autonomie : recherche des moyens de vivre avec le minimum d'affaires</li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
<div class="frames_container mouse" id="mouse_3" role="img" aria-label="mouse animated in ASCII art">
|
|
||||||
<pre class="frame f1" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f2" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f3" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f4" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<div class="banner banner_size_3 banner_speed_50 banner_reverse" aria-label="banner delimitation in ASCII art"></div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
INFOS
|
|
||||||
-->
|
|
||||||
<section id="infos" class="footer section">
|
|
||||||
|
|
||||||
<article>
|
|
||||||
<p>hugogogo@protonmail.com</p>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
<div class="frames_container mouse" id="mouse_4" role="img" aria-label="mouse animated in ASCII art">
|
|
||||||
<pre class="frame f1" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f2" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f3" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre class="frame f4" aria-hidden="true">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<div class="banner">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
33
index.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="fr" dir="ltr">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||||
|
/>
|
||||||
|
<!-- create "fake" favicon : https://stackoverflow.com/questions/1321878/how-to-prevent-favicon-ico-requests -->
|
||||||
|
<link rel="icon" href="data:;base64,iVBORw0KGgo=" />
|
||||||
|
<title>hugulumu.fr</title>
|
||||||
|
<meta name="description" content="site web de hugo lamy, developpeur" />
|
||||||
|
<base href="./src/" />
|
||||||
|
<link href="./styles/global_style.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/mouses.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/banners.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/language.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/elements/title.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/elements/hero.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link
|
||||||
|
href="./styles/elements/projects.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="./styles/elements/cv.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="./styles/elements/infos.css" type="text/css" rel="stylesheet" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<?php include './src/body.php'; ?>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
390
package-lock.json
generated
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
{
|
||||||
|
"name": "website_hugulumu",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "website_hugulumu",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "ISC",
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^3.1.14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/anymatch": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||||
|
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"normalize-path": "^3.0.0",
|
||||||
|
"picomatch": "^2.0.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/balanced-match": {
|
||||||
|
"version": "4.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
|
||||||
|
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "18 || 20 || >=22"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/binary-extensions": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/brace-expansion": {
|
||||||
|
"version": "5.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
|
||||||
|
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"balanced-match": "^4.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "18 || 20 || >=22"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/braces": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"fill-range": "^7.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/chokidar": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"anymatch": "~3.1.2",
|
||||||
|
"braces": "~3.0.2",
|
||||||
|
"glob-parent": "~5.1.2",
|
||||||
|
"is-binary-path": "~2.1.0",
|
||||||
|
"is-glob": "~4.0.1",
|
||||||
|
"normalize-path": "~3.0.0",
|
||||||
|
"readdirp": "~3.6.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.10.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://paulmillr.com/funding/"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "~2.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/debug": {
|
||||||
|
"version": "4.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
||||||
|
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "^2.1.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"supports-color": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/fill-range": {
|
||||||
|
"version": "7.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
|
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"to-regex-range": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/fsevents": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||||
|
"dev": true,
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/glob-parent": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"is-glob": "^4.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/has-flag": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ignore-by-default": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
|
},
|
||||||
|
"node_modules/is-binary-path": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"binary-extensions": "^2.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-extglob": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-glob": {
|
||||||
|
"version": "4.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||||
|
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-extglob": "^2.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-number": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.12.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/minimatch": {
|
||||||
|
"version": "10.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
|
||||||
|
"integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BlueOak-1.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"brace-expansion": "^5.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "18 || 20 || >=22"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ms": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/nodemon": {
|
||||||
|
"version": "3.1.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz",
|
||||||
|
"integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"chokidar": "^3.5.2",
|
||||||
|
"debug": "^4",
|
||||||
|
"ignore-by-default": "^1.0.1",
|
||||||
|
"minimatch": "^10.2.1",
|
||||||
|
"pstree.remy": "^1.1.8",
|
||||||
|
"semver": "^7.5.3",
|
||||||
|
"simple-update-notifier": "^2.0.0",
|
||||||
|
"supports-color": "^5.5.0",
|
||||||
|
"touch": "^3.1.0",
|
||||||
|
"undefsafe": "^2.0.5"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"nodemon": "bin/nodemon.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/nodemon"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/normalize-path": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/picomatch": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pstree.remy": {
|
||||||
|
"version": "1.1.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
|
||||||
|
"integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/readdirp": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"picomatch": "^2.2.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/semver": {
|
||||||
|
"version": "7.7.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
|
||||||
|
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/simple-update-notifier": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"semver": "^7.5.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/supports-color": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"has-flag": "^3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/to-regex-range": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-number": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/touch": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"nodetouch": "bin/nodetouch.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/undefsafe": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "website_hugulumu",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "html validator : https://validator.w3.org/nu",
|
||||||
|
"main": "index.js",
|
||||||
|
"directories": {
|
||||||
|
"doc": "docs"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"dev": "nodemon --exec 'php -S localhost:8000' --ext php,html"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^3.1.14"
|
||||||
|
}
|
||||||
|
}
|
||||||
725
src/body.php
Normal file
@@ -0,0 +1,725 @@
|
|||||||
|
|
||||||
|
<input type="checkbox" id="language" />
|
||||||
|
<label id="language_label" for="language">
|
||||||
|
<span id="fr"
|
||||||
|
><img class="flag" src="./docs/flags/fr_bnw.svg" alt="french flag"
|
||||||
|
/></span>
|
||||||
|
<span id="en"
|
||||||
|
><img class="flag" src="./docs/flags/gb_bnw.svg" alt="english flag"
|
||||||
|
/></span>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
I moved this outside the hero section,
|
||||||
|
so that i can change my mind to put it or not without having to change the grid rows height
|
||||||
|
-->
|
||||||
|
<div
|
||||||
|
id="top_banner"
|
||||||
|
class="banner banner_size_0 banner_speed_50 banner_reverse grid_full_width"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
HERO SECTION
|
||||||
|
-->
|
||||||
|
<section class="section hero" id="hero">
|
||||||
|
<header>
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="hugo lamy" id="name" class="title">
|
||||||
|
<span aria-hidden="true" class="pre pre_small">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span aria-hidden="true" class="pre pre_small">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="programmeur informatique" id="title" class="title">
|
||||||
|
<span aria-hidden="true" class="pre">
|
||||||
|
<span class="fr">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span class="en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p class="subtitle">
|
||||||
|
<span class="fr">
|
||||||
|
Bonjour, je suis un développeur inventif, méthodique, et passionné par
|
||||||
|
l'informatique, et plus particulièrement le libre et l'open source.
|
||||||
|
J'aime explorer de nouvelles solutions techniques et comprendre les
|
||||||
|
systèmes en profondeur :-]
|
||||||
|
</span>
|
||||||
|
<span class="en">
|
||||||
|
Hello, I am a creative, methodical developer with a passion for computer
|
||||||
|
science, particularly free and open-source software. I enjoy exploring
|
||||||
|
new technical solutions and gaining a deep understanding of systems :-]
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="mouse"><div class="frames mouse_1 pre"></div></div>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_3 banner_speed_30 grid_full_width"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CV
|
||||||
|
-->
|
||||||
|
<section id="cv" class="section">
|
||||||
|
<header>
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="curriculum vitae">
|
||||||
|
<span aria-hidden="true" class="pre">
|
||||||
|
<span class="fr en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="cv">
|
||||||
|
<div class="cv_download">
|
||||||
|
<p>
|
||||||
|
<span class="fr">télécharger </span>
|
||||||
|
<span class="en">download </span>
|
||||||
|
:
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_FR.pdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to pdf CV version graphical FR"
|
||||||
|
>
|
||||||
|
<span class="fr">[Graphique FR]</span>
|
||||||
|
<span class="en">[Graphical FR]</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_EN.pdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to pdf CV version graphical EN"
|
||||||
|
>
|
||||||
|
<span class="fr">[Graphique EN]</span>
|
||||||
|
<span class="en">[Graphical EN]</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_FR.pdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to pdf CV version ats FR"
|
||||||
|
>
|
||||||
|
<span class="fr">[ATS FR]</span>
|
||||||
|
<span class="en">[ATS FR]</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_EN.pdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to pdf CV version ats EN"
|
||||||
|
>
|
||||||
|
<span class="fr">[ATS EN]</span>
|
||||||
|
<span class="en">[ATS EN]</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<span class="fr">EXPÉRIENCES</span>
|
||||||
|
<span class="en">WORK EXPERIENCES</span>
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_0 banner_pause"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">web full-stack</span>
|
||||||
|
<span class="en">web full-stack</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>BLOC-HOUSE: reprise du site d'une association d'artistes
|
||||||
|
(fullstack, php, javascript, html, css), 2023</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>BLOC-HOUSE: takeover of an artists' association website
|
||||||
|
(fullstack, php, javascript, html, css), 2023</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>TRANSCENDENCE: chat en ligne avec gestions des comptes et
|
||||||
|
notifications (fullstack, node.js, nest.js, websocket, svelte,
|
||||||
|
PostgreSQL)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>TRANSCENDENCE: online chat with account management and
|
||||||
|
notifications (fullstack, node.js, nest.js, websocket, svelte,
|
||||||
|
PostgreSQL)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>FIPF: plugin qui gère les paiements, les roles, corrige les
|
||||||
|
autres plugins et des actions front-end (fullstack, js, php, bdd),
|
||||||
|
2024</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>FIPF: plugin that manages payments, roles, corrects other plugins
|
||||||
|
and front-end actions (fullstack, js, php, bdd), 2024</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>JIPF: utilise les API GoogleMaps pour afficher des données
|
||||||
|
dynamiques sur une carte avec des filtres, 2022</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>JIPF: uses GoogleMaps APIs to display dynamic data on a map, with
|
||||||
|
interactive filters</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>KOSMOPOLIT: front-end, integration d'un site statique pour une
|
||||||
|
association de litterature, (html, css atomique), 2022</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>KOSMOPOLIT: front-end, integration of a static site for a
|
||||||
|
literature association, (html, atomic css), 2022</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">devops</span>
|
||||||
|
<span class="en">devops</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>WEBSERV: création d'un serveur web non-bloquant en multiplexage,
|
||||||
|
capable de gérer des requetes http et envoyer du contenu (c++,
|
||||||
|
linux sockets)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>WEBSERV: creation of a non-blocking multiplexing web server
|
||||||
|
capable of managing http requests and sending content (c++, linux
|
||||||
|
sockets)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>MINITALK: utiliser les signaux système de linux pour creer une
|
||||||
|
communication en code ascii entre deux processus</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>MINITALK: using linux system signals to create ascii code
|
||||||
|
communication between two processes</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>INCEPTION: création de zéro d'ima-ges docker pour deployer
|
||||||
|
wordpress avec encription SSL (docker compose, mariaDB, NGINX,
|
||||||
|
Wordpress)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>INCEPTION: creating docker images from scratch to deploy
|
||||||
|
wordpress with SSL encription (docker compose, mariaDB, NGINX,
|
||||||
|
Wordpress)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">game</span>
|
||||||
|
<span class="en">game</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>CUBE 3D: jeu à la premiere personne utilisant le raycasting pour
|
||||||
|
la 3d et les textures, et le clavier pour bouger (c,
|
||||||
|
trigonométrie, inputs)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>CUBE 3D: first-person game using raycasting for 3d and textures,
|
||||||
|
and the keyboard for movement (c, trigonometry, inputs)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>FDF: modélisation spatiale de formes en courbes de niveau à
|
||||||
|
partir de cartes (c, trigonometrie, inputs)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>FDF: spatial modelling of contour lines from maps with keyboard
|
||||||
|
control (c, trigonometrie, inputs)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">system</span>
|
||||||
|
<span class="en">system</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>MINISHELL: créer un shell capable de parser des prompts, exécuter
|
||||||
|
des programmes, et réagir aux signaux (c, bash, signals, fork,
|
||||||
|
pipe, readline)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>MINISHELL: creating a shell capable of parsing prompts, executing
|
||||||
|
programs, and listening to signals (c, bash, signals, fork, pipe,
|
||||||
|
readline)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>CONTAINERS: recoder 3 conteneurs c++ avec les iterateurs,
|
||||||
|
surcharges, et templates : map, vector, stack</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>CONTAINERS: recoding c++ containers with iterators, overloads and
|
||||||
|
templates : map, vector, stack</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>PUSHSWAP: algorithmes de tris avec deux piles et des mouvements
|
||||||
|
limités aux extrémités des piles (c)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>PUSHSWAP: sorting algorithms with two stacks and limited movement
|
||||||
|
at the ends of the stacks (c)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<span class="fr">COMPÉTENCES</span>
|
||||||
|
<span class="en">SKILLS</span>
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_0 banner_pause"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">hard skills</span>
|
||||||
|
<span class="en">hard skills</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Langages : C, C++, bash, JavaScript, PHP, CSS, HTML</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Languages : C, C++, bash, JavaScript, PHP, CSS, HTML</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Technologies : Node.js, Git, Gitaction, Docker, Wordpress, Nginx,
|
||||||
|
MariaDB, Nest.js, Svelte, WebSocket, Express, npm, react</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Technologies : Node.js, Git, Gitaction, Docker, Wordpress, Nginx,
|
||||||
|
MariaDB, Nest.js, Svelte, WebSocket, Express, npm, react</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Plus : emails, sending emails, receiving emails, deleting emails
|
||||||
|
(the it crowd S01E01)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Plus : emails, sending emails, receiving emails, deleting emails
|
||||||
|
(the it crowd S01E01)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>
|
||||||
|
<span class="fr">soft skills</span>
|
||||||
|
<span class="en">soft skills</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr">capacité d'apprentissage et autonomie</span>
|
||||||
|
<span class="en">learning ability, and autonomy</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">attention aux détails, patience</span>
|
||||||
|
<span class="en">attention to details, patience</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">adaptabilité et resolution de problemes</span>
|
||||||
|
<span class="en">adaptability and problem-solving</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">recevoir des feedbacks</span>
|
||||||
|
<span class="en">receiving feedback</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<span class="fr">FORMATIONS</span>
|
||||||
|
<span class="en">EDUCATIONS</span>
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_0 banner_pause"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">informatique</span>
|
||||||
|
<span class="en">computer science</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>École 42, Paris, 2021-2022, tronc commun - niveau 10 (C, C++,
|
||||||
|
système, algorithmie, réseaux)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>42 school, Paris, 2021-2022, common core - level 10 (C, C++,
|
||||||
|
system, algorithms, networks)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>SIMPLON, développeur full-stack JavaScript, 2018 (Javascript,
|
||||||
|
Node.js, React.js, HTML, CSS)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>SIMPLON, developer full-stack JavaScript, 2018 (Javascript,
|
||||||
|
Node.js, React.js, HTML, CSS)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>
|
||||||
|
<span class="fr">architecture</span>
|
||||||
|
<span class="en">architecture</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Master 1, ENSAPM, ESA, ENSAV, île-de-france, France,
|
||||||
|
2008-2014</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Master 1, ENSAPM, ESA, ENSAV, île-de-france, France,
|
||||||
|
2008-2014</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>3 stages : PERSPECTIVA (Houston, Texas, 2009, 3 mois), AS (Paris,
|
||||||
|
2012, 6 mois), JC QUINTON (Paris 2014, 6 mois)</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>3 internships : PERSPECTIVA (Houston, Texas, 2009, 3 months), AS
|
||||||
|
(Paris, 2012, 6 months), JC QUINTON (Paris 2014, 6 months)</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<span class="fr">PERSONNEL</span>
|
||||||
|
<span class="en">PERSONAL</span>
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_0 banner_pause"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<span class="fr">engagement associatif</span>
|
||||||
|
<span class="en">volunteer work</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Vulgarisation et recherche contraception testiculaire,
|
||||||
|
ZEROMILLIONS, Paris, France, 2021-2024</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Popularisation and research into testicular contraception,
|
||||||
|
ZEROMILLIONS, Paris, France, 2021-2024</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Aide au logement, travail, administratif, et projets de vie de
|
||||||
|
personnes précaires, 2018-2024</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Help with housing, work, administration and life projects for
|
||||||
|
people on the margins of society, 2018-2024</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Distribution de nourriture, MIGRANTS-WILSON & SECOURS POPULAIRE,
|
||||||
|
2020-2022</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Food distribution, MIGRANTS-WILSON & SECOURS POPULAIRE,
|
||||||
|
2020-2022</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr"
|
||||||
|
>Cogestion des bénévoles d'un camp de réfugiés, UTOPIA 56,
|
||||||
|
Grande-Synthe, France, 2016</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>Co-management of volunteers in a refugee camp, UTOPIA 56,
|
||||||
|
Grande-Synthe, France, 2016</span
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>
|
||||||
|
<span class="fr">centre d'intérêts</span>
|
||||||
|
<span class="en">interests</span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span class="fr">vélo</span>
|
||||||
|
<span class="en">bicycle</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">magie</span>
|
||||||
|
<span class="en">magic tricks</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">noeuds</span>
|
||||||
|
<span class="en">knots</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">mathématiques et physiques</span>
|
||||||
|
<span class="en">mathematics and physics</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="fr">politique</span>
|
||||||
|
<span class="en">politic</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mouse"><div class="frames mouse_3 pre"></div></div>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_2 banner_reverse banner_speed_40 grid_full_width"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
PROJECTS
|
||||||
|
-->
|
||||||
|
<section id="projects" class="section">
|
||||||
|
<header>
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="projets">
|
||||||
|
<span aria-hidden="true" class="pre">
|
||||||
|
<span class="fr">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span class="en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
<p>
|
||||||
|
<span class="fr">code-sources de tous les projets : </span>
|
||||||
|
<span class="en">source code for all projects : </span>
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to git repositories"
|
||||||
|
></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="">
|
||||||
|
<span class="fr">quelques exemples de projets réalisés :</span>
|
||||||
|
<span class="en">some examples of completed projects :</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="projects_grid">
|
||||||
|
<figure class="project">
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/42/42_INT_04_fdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
>
|
||||||
|
<img src="./docs/projects/fdf_pyramide_loop_square_2_light.gif" />
|
||||||
|
</a>
|
||||||
|
<figcaption>
|
||||||
|
<p>
|
||||||
|
<span class="fr"
|
||||||
|
>programme qui creer une representation 3D filaire d'une carte
|
||||||
|
avec des points a differentes altitudes</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>program that creates a 3D wireframe representation of a map
|
||||||
|
with points at different altitudes</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/42/42_INT_04_fdf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
></a>
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
||||||
|
|
||||||
|
<figure class="project">
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/42/42_INT_10_cube3d"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
>
|
||||||
|
<img src="./docs/projects/cube3d_tour_with_map_square.gif" />
|
||||||
|
</a>
|
||||||
|
<figcaption>
|
||||||
|
<p>
|
||||||
|
<span class="fr"
|
||||||
|
>mini jeu video utilisant le raycasting pour creer une
|
||||||
|
impression de deplacement dans un environnement 3D</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>mini video game using raycasting to create the impression of
|
||||||
|
movement in a 3D environment</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/42/42_INT_10_cube3d"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
></a>
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
||||||
|
|
||||||
|
<figure class="project">
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/pro/2023_WEBSITE_jipf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
>
|
||||||
|
<img src="./docs/projects/ljdp_map_clusters_square_light.gif" />
|
||||||
|
</a>
|
||||||
|
<figcaption>
|
||||||
|
<p>
|
||||||
|
<span class="fr"
|
||||||
|
>plugin wordpress representant des evenements sur une carte avec
|
||||||
|
des marqueurs et des filtres de tris</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>wordpress plugin showing events on a map with markers and
|
||||||
|
sorting filters</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/pro/2023_WEBSITE_jipf"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
></a>
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
||||||
|
|
||||||
|
<figure class="project">
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/pro/2022_WEBSITE_kosmopolit"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
>
|
||||||
|
<img src="./docs/projects/kosmopolit_square.gif" />
|
||||||
|
</a>
|
||||||
|
<figcaption>
|
||||||
|
<p>
|
||||||
|
<span class="fr"
|
||||||
|
>site internet statique utilisant une structure uniquement en
|
||||||
|
html et css</span
|
||||||
|
>
|
||||||
|
<span class="en"
|
||||||
|
>static website using a structure based solely on html and
|
||||||
|
css</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://gitea.hugulumu.com/pro/2022_WEBSITE_kosmopolit"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="link to the source code"
|
||||||
|
></a>
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mouse"><div class="frames mouse_2 pre"></div></div>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_3 banner_speed_20 banner_reverse grid_full_width"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
INFOS
|
||||||
|
-->
|
||||||
|
<section id="infos" class="footer section">
|
||||||
|
<article>
|
||||||
|
<a href="mailto:hugogogo@protonmail.com">hugogogo@protonmail.com</a>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<div class="mouse"><div class="frames mouse_4 pre"></div></div>
|
||||||
|
</section>
|
||||||
31
src/docs/banners/banner_0.svg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
32
src/docs/banners/banner_00.svg
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
@@ -16,17 +16,18 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
white-space: pre;
|
/*
|
||||||
|
* dont work in chrome so use 'tspan' with 'dy' and 'xml:space'
|
||||||
|
*
|
||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
|
white-space: pre;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
<text x="0" y="0">
|
<text x="0" y="0">
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- Other SVG elements and attributes -->
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -16,20 +16,21 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
white-space: pre;
|
/*
|
||||||
|
* dont work in chrome so use 'tspan' with 'dy' and 'xml:space'
|
||||||
|
*
|
||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
|
white-space: pre;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
<text x="0" y="0">
|
<text x="0" y="0">
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- Other SVG elements and attributes -->
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.3 KiB |
@@ -16,23 +16,24 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
white-space: pre;
|
/*
|
||||||
|
* dont work in chrome so use 'tspan' with 'dy' and 'xml:space'
|
||||||
|
*
|
||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
|
white-space: pre;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
<text x="0" y="0">
|
<text x="0" y="0">
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- Other SVG elements and attributes -->
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -16,25 +16,27 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
white-space: pre;
|
/*
|
||||||
|
* dont work in chrome so use 'tspan' with 'dy' and 'xml:space'
|
||||||
|
*
|
||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
|
white-space: pre;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
<text x="0" y="0">
|
<text x="0" y="0">
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- Other SVG elements and attributes -->
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.7 KiB |
@@ -16,28 +16,30 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
white-space: pre;
|
/*
|
||||||
|
* dont work in chrome so use 'tspan' with 'dy' and 'xml:space'
|
||||||
|
*
|
||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
|
white-space: pre;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
<text x="0" y="0">
|
<text x="0" y="0">
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
|
<tspan x="0" dy="0.8em" xml:space="preserve"> </tspan>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- Other SVG elements and attributes -->
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
src/docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer.pdf
Normal file
BIN
src/docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_EN.pdf
Normal file
BIN
src/docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_FR.pdf
Normal file
BIN
src/docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_EN.pdf
Normal file
BIN
src/docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_FR.pdf
Normal file
5
src/docs/flags/fr.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fr" viewBox="0 0 640 480">
|
||||||
|
<path fill="#fff" d="M0 0h640v480H0z"/>
|
||||||
|
<path fill="#000091" d="M0 0h213.3v480H0z"/>
|
||||||
|
<path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 231 B |
5
src/docs/flags/fr_bnw.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fr" viewBox="0 0 640 480">
|
||||||
|
<path fill="#ffffff" d="M0 0h640v480H0z"/>
|
||||||
|
<path fill="#232323" d="M0 0h213.3v480H0z"/>
|
||||||
|
<path fill="#727272" d="M426.7 0H640v480H426.7z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 234 B |
7
src/docs/flags/gb.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb" viewBox="0 0 640 480">
|
||||||
|
<path fill="#012169" d="M0 0h640v480H0z"/>
|
||||||
|
<path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
|
||||||
|
<path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
|
||||||
|
<path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
|
||||||
|
<path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 504 B |
7
src/docs/flags/gb_bnw.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb" viewBox="0 0 640 480">
|
||||||
|
<path fill="#262626" d="M0 0h640v480H0z"/>
|
||||||
|
<path fill="#FFFFFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
|
||||||
|
<path fill="#666666" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
|
||||||
|
<path fill="#FFFFFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
|
||||||
|
<path fill="#666666" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 510 B |
BIN
src/docs/projects/cube3d_tour_with_map_square.gif
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
src/docs/projects/fdf_pyramide_loop_square_2_light.gif
Normal file
|
After Width: | Height: | Size: 9.2 MiB |
BIN
src/docs/projects/kosmopolit_square.gif
Normal file
|
After Width: | Height: | Size: 938 KiB |
BIN
src/docs/projects/ljdp_map_clusters_square_light.gif
Normal file
|
After Width: | Height: | Size: 5.3 MiB |
61
src/modules/hero.html
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<section class="section hero" id="hero">
|
||||||
|
<header>
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="hugo lamy" id="name" class="title">
|
||||||
|
<span aria-hidden="true" class="pre pre_small">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span aria-hidden="true" class="pre pre_small">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
<h1 aria-label="programmeur informatique" id="title" class="title">
|
||||||
|
<span aria-hidden="true" class="pre">
|
||||||
|
<span class="fr">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span class="en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p class="subtitle">
|
||||||
|
<span class="fr">
|
||||||
|
Bonjour, je suis un développeur inventif, méthodique, et passionné par
|
||||||
|
l'informatique, et plus particulièrement le libre et l'open source.
|
||||||
|
J'aime explorer de nouvelles solutions techniques et comprendre les
|
||||||
|
systèmes en profondeur :-]
|
||||||
|
</span>
|
||||||
|
<span class="en">
|
||||||
|
Hello, I am a creative, methodical developer with a passion for computer
|
||||||
|
science, particularly free and open-source software. I enjoy exploring
|
||||||
|
new technical solutions and gaining a deep understanding of systems :-]
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="mouse"><div class="frames mouse_1 pre"></div></div>
|
||||||
|
<div
|
||||||
|
class="banner banner_size_3 banner_speed_30 grid_full_width"
|
||||||
|
aria-label="banner delimitation in ASCII art"
|
||||||
|
></div>
|
||||||
|
</section>
|
||||||
101
src/styles/banners.css
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
.banner {
|
||||||
|
width: 100%;
|
||||||
|
--base_banner_height: 24px;
|
||||||
|
--banner_height: var(--base_banner_height); /*default*/
|
||||||
|
--base_dot_size: 4.2vw;
|
||||||
|
--dot_size: var(--base_dot_size); /*default*/
|
||||||
|
height: min(var(--dot_size), var(--banner_height));
|
||||||
|
|
||||||
|
background-image: url(../docs/banners/banner_1.svg); /*default*/
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: repeat;
|
||||||
|
background-position-x: 0%;
|
||||||
|
|
||||||
|
animation-duration: 10s; /*default*/
|
||||||
|
animation-name: slide_svg;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-direction: normal;
|
||||||
|
}
|
||||||
|
@keyframes slide_svg {
|
||||||
|
from {
|
||||||
|
background-position-x: 0%;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
background-position-x: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* speeds
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.banner_pause {
|
||||||
|
animation-play-state: paused;
|
||||||
|
}
|
||||||
|
.banner_reverse {
|
||||||
|
animation-direction: reverse;
|
||||||
|
}
|
||||||
|
.banner_speed_10 {
|
||||||
|
animation-duration: 10s;
|
||||||
|
}
|
||||||
|
.banner_speed_20 {
|
||||||
|
animation-duration: 20s;
|
||||||
|
}
|
||||||
|
.banner_speed_30 {
|
||||||
|
animation-duration: 30s;
|
||||||
|
}
|
||||||
|
.banner_speed_40 {
|
||||||
|
animation-duration: 40s;
|
||||||
|
}
|
||||||
|
.banner_speed_50 {
|
||||||
|
animation-duration: 50s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* sizes
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.banner_size_0 {
|
||||||
|
background-image: url(../docs/banners/banner_0.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_00 {
|
||||||
|
background-image: url(../docs/banners/banner_00.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_1 {
|
||||||
|
background-image: url(../docs/banners/banner_1.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_2 {
|
||||||
|
background-image: url(../docs/banners/banner_2.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 2);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 2);
|
||||||
|
}
|
||||||
|
.banner_size_3 {
|
||||||
|
background-image: url(../docs/banners/banner_3.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 3);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 3);
|
||||||
|
}
|
||||||
|
.banner_size_4 {
|
||||||
|
background-image: url(../docs/banners/banner_4.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 4);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 4);
|
||||||
|
}
|
||||||
|
.banner_size_5 {
|
||||||
|
background-image: url(../docs/banners/banner_5.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 5);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* specific banners */
|
||||||
|
#top_banner {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
38
src/styles/elements/cv.css
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#cv {
|
||||||
|
header {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cv {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
width: auto;
|
||||||
|
max-width: 900px;
|
||||||
|
|
||||||
|
> *:last-child {
|
||||||
|
margin-bottom: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cv_download {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
margin: 0px 0px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
border: 1px dashed black;
|
||||||
|
padding: 20px;
|
||||||
|
padding-left: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/styles/elements/hero.css
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#hero {
|
||||||
|
min-height: 100vh;
|
||||||
|
grid-template-columns: 1fr auto 1fr;
|
||||||
|
/*
|
||||||
|
* WIP : trying to find a solution to have both qualities :
|
||||||
|
* - elements are spread across the page vertically ('hugo lamy developpeur' is not compacted on top)
|
||||||
|
* - the details element 'voir le cv' don't jump when we unroll it
|
||||||
|
*
|
||||||
|
grid-template-rows: 1fr auto 1fr;
|
||||||
|
grid-template-rows: auto auto 1fr;
|
||||||
|
*/
|
||||||
|
grid-template-rows: 50vh 1fr;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
/*
|
||||||
|
older safari doesn't not support flex gap
|
||||||
|
I could use a workaround :
|
||||||
|
https://stackoverflow.com/questions/65452057/flexbox-gap-workaround-for-safari
|
||||||
|
but it doesn't work with wrap
|
||||||
|
so instead I make them in columns and add a margin
|
||||||
|
|
||||||
|
gap: 10px 30px;
|
||||||
|
*/
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
> *:first-child {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&#name {
|
||||||
|
margin: 30px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&#title {
|
||||||
|
margin: 20px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 700px;
|
||||||
|
margin: 0px auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#infos article {
|
#infos article {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
22
src/styles/elements/projects.css
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#projects {
|
||||||
|
header {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#projects .projects_grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, auto));
|
||||||
|
grid-template-columns: repeat(2, minmax(100px, auto));
|
||||||
|
grid-template-columns: repeat(2, minmax(100px, 500px));
|
||||||
|
grid-gap: 20px;
|
||||||
|
}
|
||||||
|
#projects .projects_grid figure {
|
||||||
|
}
|
||||||
|
#projects .projects_grid figure figcaption {
|
||||||
|
text-align: left;
|
||||||
|
margin-bottom: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projects .mouse {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 607 B After Width: | Height: | Size: 607 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 612 B |
248
src/styles/global_style.css
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* RESET CSS *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
body * {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
textarea,
|
||||||
|
select {
|
||||||
|
/* Remove built-in form typography styles */
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
}
|
||||||
|
img,
|
||||||
|
picture,
|
||||||
|
video,
|
||||||
|
canvas,
|
||||||
|
svg {
|
||||||
|
display: block;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
li,
|
||||||
|
p,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
/* Avoid text overflows
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
*/
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* style details elements */
|
||||||
|
details summary {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
details summary > * {
|
||||||
|
/* allow to put h1 or anything inside the summary without breaking the line */
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
script,
|
||||||
|
style {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* GLOBAL CSS *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--base_font_size: 62.5%;
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
font-size: var(--base_font_size);
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
overflow-x: clip;
|
||||||
|
margin: auto;
|
||||||
|
width: fit-content;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://css-tricks.com/slow-movement/#h-you-can-implement-native-smooth-scrolling-in-css */
|
||||||
|
/* Animate scrolling only if users don’t prefer reduced motion */
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add some spacing between the target and the top of the viewport */
|
||||||
|
:target {
|
||||||
|
scroll-margin-top: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* TEXT CSS *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "notomono";
|
||||||
|
src: url("./fonts/notomono/NotoMono-Dot.woff") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
body,
|
||||||
|
pre {
|
||||||
|
font-family: "notomono", monospace;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 500px) {
|
||||||
|
html {
|
||||||
|
font-size: calc(var(--base_font_size) * 1.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
display: block;
|
||||||
|
list-style-type: "• ";
|
||||||
|
padding-left: 25px;
|
||||||
|
/*
|
||||||
|
list-style-position: inside;
|
||||||
|
*/
|
||||||
|
list-style-position: outside;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
display: list-item;
|
||||||
|
}
|
||||||
|
li::marker {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:empty::after {
|
||||||
|
content: attr(href);
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin: 30px 0px;
|
||||||
|
font-size: 2.25rem;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 30px 0px;
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
margin: 20px 0px;
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
margin: 20px 0px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
margin: 10px 0px;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
h6 {
|
||||||
|
margin: 10px 0px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pre,
|
||||||
|
pre {
|
||||||
|
display: flex;
|
||||||
|
white-space: pre;
|
||||||
|
line-height: 0.8;
|
||||||
|
font-size: min(2.1vw, 1rem);
|
||||||
|
}
|
||||||
|
.pre_small {
|
||||||
|
font-size: min(1.5vw, 0.7rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* SECTIONS GLOBAL CSS *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: grid;
|
||||||
|
margin: 0px;
|
||||||
|
width: 100vw;
|
||||||
|
grid-template-columns: auto auto auto;
|
||||||
|
grid-auto-rows: auto;
|
||||||
|
grid-gap: 10px;
|
||||||
|
gap: 10px;
|
||||||
|
min-height: 100vh;
|
||||||
|
justify-items: center;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
> * {
|
||||||
|
grid-column: 2 / span 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .grid_full_width {
|
||||||
|
grid-column: 1 / span 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
place-content: center;
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,6 +16,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.margin_top_small {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.margin_bottom_small {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.margin_top_big {
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
.margin_bottom_big {
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DATA-FLEX
|
DATA-FLEX
|
||||||
|
|
||||||
59
src/styles/language.css
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
input#language {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
label#language_label {
|
||||||
|
position: fixed;
|
||||||
|
top: 20px;
|
||||||
|
right: 20px;
|
||||||
|
padding: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
.flag {
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SWITCH FLAG
|
||||||
|
*/
|
||||||
|
#language {
|
||||||
|
&:not(:checked) + #language_label {
|
||||||
|
#fr {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
#en {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:checked + #language_label {
|
||||||
|
#fr {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#en {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SWITCH LANGUAGE
|
||||||
|
*/
|
||||||
|
|
||||||
|
#language {
|
||||||
|
~ * .fr,
|
||||||
|
~ * .en {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:checked) ~ * .en {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:checked ~ * .fr {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
}
|
||||||
36
src/styles/mouses.css
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
@import "./mouses/mouse_1.css";
|
||||||
|
@import "./mouses/mouse_2.css";
|
||||||
|
@import "./mouses/mouse_3.css";
|
||||||
|
@import "./mouses/mouse_4.css";
|
||||||
|
|
||||||
|
.mouse {
|
||||||
|
margin: auto;
|
||||||
|
width: fit-content;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.mouse .frames {
|
||||||
|
position: relative;
|
||||||
|
animation: mouse_move infinite 2s normal steps(4);
|
||||||
|
}
|
||||||
|
.mouse .frames::before {
|
||||||
|
position: relative;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
.mouse .frames::after {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* using 'transform' instead of 'top', because 'top' needs
|
||||||
|
* the parent to have an explicit height
|
||||||
|
* but in this case its height is according to the children
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@keyframes mouse_move {
|
||||||
|
0% {transform: translateY(0%);}
|
||||||
|
100% {transform: translateY(-400%);}
|
||||||
|
}
|
||||||
|
|
||||||
72
src/styles/mouses/mouse_1.css
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
.mouse_1::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_1::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
72
src/styles/mouses/mouse_2.css
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
.mouse_2::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_2::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
64
src/styles/mouses/mouse_3.css
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
.mouse_3::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_3::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
64
src/styles/mouses/mouse_4.css
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
.mouse_4::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_4::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
.banner {
|
|
||||||
width: 100%;
|
|
||||||
--base_banner_height: 24px;
|
|
||||||
--banner_height: var(--base_banner_height); /*default*/
|
|
||||||
height: min(26vw, var(--banner_height));
|
|
||||||
|
|
||||||
background-image: url(../img/banner_1.svg); /*default*/
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: repeat;
|
|
||||||
background-position-x: 0%;
|
|
||||||
|
|
||||||
animation-duration: 10s; /*default*/
|
|
||||||
animation-name: slide_svg;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
animation-direction: normal;
|
|
||||||
}
|
|
||||||
@keyframes slide_svg {
|
|
||||||
from {background-position-x: 0%;}
|
|
||||||
to {background-position-x: 100%;}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* speeds
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
.banner_pause {
|
|
||||||
animation-play-state: paused;
|
|
||||||
}
|
|
||||||
.banner_reverse {
|
|
||||||
animation-direction: reverse;
|
|
||||||
}
|
|
||||||
.banner_speed_10 {
|
|
||||||
animation-duration: 10s;
|
|
||||||
}
|
|
||||||
.banner_speed_20 {
|
|
||||||
animation-duration: 20s;
|
|
||||||
}
|
|
||||||
.banner_speed_30 {
|
|
||||||
animation-duration: 30s;
|
|
||||||
}
|
|
||||||
.banner_speed_40 {
|
|
||||||
animation-duration: 40s;
|
|
||||||
}
|
|
||||||
.banner_speed_50 {
|
|
||||||
animation-duration: 50s;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sizes
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
.banner_size_1 {
|
|
||||||
background-image: url(../img/banner_1.svg);
|
|
||||||
--banner_height: calc(var(--base_banner_height) * 1);
|
|
||||||
}
|
|
||||||
.banner_size_2 {
|
|
||||||
background-image: url(../img/banner_2.svg);
|
|
||||||
--banner_height: calc(var(--base_banner_height) * 2);
|
|
||||||
}
|
|
||||||
.banner_size_3 {
|
|
||||||
background-image: url(../img/banner_3.svg);
|
|
||||||
--banner_height: calc(var(--base_banner_height) * 3);
|
|
||||||
}
|
|
||||||
.banner_size_4 {
|
|
||||||
background-image: url(../img/banner_4.svg);
|
|
||||||
--banner_height: calc(var(--base_banner_height) * 4);
|
|
||||||
}
|
|
||||||
.banner_size_5 {
|
|
||||||
background-image: url(../img/banner_5.svg);
|
|
||||||
--banner_height: calc(var(--base_banner_height) * 5);
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
|
|
||||||
#cv {
|
|
||||||
/*
|
|
||||||
place-items: center;
|
|
||||||
place-self: stretch;
|
|
||||||
*/
|
|
||||||
grid-template-columns: 1fr minmax(auto, 900px) 1fr;
|
|
||||||
}
|
|
||||||
#cv header {
|
|
||||||
height: 300px;
|
|
||||||
}
|
|
||||||
#cv article {
|
|
||||||
/*
|
|
||||||
max-width: 900px;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
#cv article h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
#cv #cv_ascii {
|
|
||||||
/*
|
|
||||||
place-self: center;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
#cv #cv_download {
|
|
||||||
/*
|
|
||||||
place-self: center;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
#cv details {
|
|
||||||
margin: 0px 0px 0px 25px;
|
|
||||||
}
|
|
||||||
#cv summary {
|
|
||||||
padding: 10px 0px;
|
|
||||||
}
|
|
||||||
#cv .mouse {
|
|
||||||
margin-top: 100px;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
|
|
||||||
#hero {
|
|
||||||
grid-template-rows: 1fr auto auto;
|
|
||||||
min-height: 100vh;
|
|
||||||
/*
|
|
||||||
grid-template-rows: 1fr 50px auto auto;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
#hero header {
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
#hero .mouse {
|
|
||||||
}
|
|
||||||
#hero .banner {
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
|
|
||||||
.mouse {
|
|
||||||
position: relative;
|
|
||||||
margin: 20px 0px;
|
|
||||||
}
|
|
||||||
.frames_container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-rows: 1fr;
|
|
||||||
width: fit-content;
|
|
||||||
}
|
|
||||||
pre.frame.hide {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
pre.frame {
|
|
||||||
position: relative;
|
|
||||||
justify-items: start;
|
|
||||||
align-items: end;
|
|
||||||
grid-column: 1;
|
|
||||||
grid-row: 1;
|
|
||||||
|
|
||||||
opacity: 0;
|
|
||||||
--tframes: 2s;
|
|
||||||
animation-name: ascii_frame;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-duration: var(--tframes);
|
|
||||||
animation-timing-function: steps(3);
|
|
||||||
animation-direction: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre.frame.f2 {animation-delay: calc(var(--tframes) * 25/100);}
|
|
||||||
pre.frame.f3 {animation-delay: calc(var(--tframes) * 50/100);}
|
|
||||||
pre.frame.f4 {animation-delay: calc(var(--tframes) * 75/100);}
|
|
||||||
|
|
||||||
@keyframes ascii_frame {
|
|
||||||
0% {opacity: 1;}
|
|
||||||
25% {opacity: 1;}
|
|
||||||
25.1% {opacity: 0;}
|
|
||||||
100% {opacity: 0;}
|
|
||||||
}
|
|
||||||
|
|
||||||
#mouse_1 {
|
|
||||||
place-self: center;
|
|
||||||
}
|
|
||||||
#mouse_2 {
|
|
||||||
left: 10%;
|
|
||||||
}
|
|
||||||
#mouse_3 {
|
|
||||||
left: 60%;
|
|
||||||
}
|
|
||||||
#mouse_4 {
|
|
||||||
left: 20%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
|
|
||||||
nav {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
background-color: #f6f6f6;
|
|
||||||
z-index: 1;
|
|
||||||
width: 100vw;
|
|
||||||
font-size: min(4vw, 1.5rem);
|
|
||||||
}
|
|
||||||
nav a {
|
|
||||||
position: relative;
|
|
||||||
padding: 10px min(5%, 20px);
|
|
||||||
height: fit-content;
|
|
||||||
text-decoration: none;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
nav a:before {
|
|
||||||
content: "•";
|
|
||||||
position: absolute;
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
nav a:after {
|
|
||||||
content: "•";
|
|
||||||
position: absolute;
|
|
||||||
right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
#projects header {
|
|
||||||
height: 300px;
|
|
||||||
}
|
|
||||||
#projects .project {
|
|
||||||
max-width: 900px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
#projects article h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
#projects .project_description {
|
|
||||||
padding: 20px 0px;
|
|
||||||
}
|
|
||||||
#projects #ljdp iframe {
|
|
||||||
height: 550px;
|
|
||||||
border: none;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
@media only screen and (min-width: 741px) {
|
|
||||||
#projects #ljdp iframe {
|
|
||||||
height: 660px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#projects .project_description p {
|
|
||||||
margin: 0px 0px 10px 0px;
|
|
||||||
}
|
|
||||||
#projects .mouse {
|
|
||||||
margin-top: 100px;
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
section header { grid-area: header; }
|
|
||||||
section article { grid-area: article; }
|
|
||||||
section .mouse { grid-area: mouse; }
|
|
||||||
section .banner { grid-area: banner; }
|
|
||||||
|
|
||||||
section {
|
|
||||||
display: grid;
|
|
||||||
margin: 0px;
|
|
||||||
width: 100vw;
|
|
||||||
grid:
|
|
||||||
' . header . ' auto
|
|
||||||
' . article . ' auto
|
|
||||||
' . mouse . ' auto
|
|
||||||
' banner banner banner ' auto
|
|
||||||
/ 1fr auto 1fr ;
|
|
||||||
grid-gap: 10px;
|
|
||||||
gap: 10px;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
section header {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
place-content: center;
|
|
||||||
}
|
|
||||||
section footer {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
section header h1 {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
section .banner {
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
#name {
|
|
||||||
margin:30px 0px 20px 0px;
|
|
||||||
}
|
|
||||||
#title {
|
|
||||||
margin:20px 0px 20px 0px;
|
|
||||||
}
|
|
||||||
.title {
|
|
||||||
/*
|
|
||||||
older safari doesn't not support flex gap
|
|
||||||
I could use a workaround :
|
|
||||||
https://stackoverflow.com/questions/65452057/flexbox-gap-workaround-for-safari
|
|
||||||
but it doesn't work with wrap
|
|
||||||
so instead I make them in columns and add a margin
|
|
||||||
|
|
||||||
gap: 10px 30px;
|
|
||||||
*/
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title > *:first-child {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
body * {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
input, button, textarea, select {
|
|
||||||
/* Remove built-in form typography styles */
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img, picture, video, canvas, svg {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
li, p, h1, h2, h3, h4, h5, h6 {
|
|
||||||
/* Avoid text overflows
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
*/
|
|
||||||
overflow-wrap: anywhere;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* style details elements */
|
|
||||||
details summary {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
details summary > * {
|
|
||||||
/* allow to put h1 or anything inside the summary without breaking the line */
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
:root {
|
|
||||||
}
|
|
||||||
body, main {
|
|
||||||
overflow-x: clip;
|
|
||||||
margin: auto;
|
|
||||||
width: fit-content;
|
|
||||||
background-color: #f6f6f6;
|
|
||||||
}
|
|
||||||
script, style {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
pre {
|
|
||||||
margin: 10px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* https://css-tricks.com/slow-movement/#h-you-can-implement-native-smooth-scrolling-in-css */
|
|
||||||
/* Animate scrolling only if users don’t prefer reduced motion */
|
|
||||||
@media (prefers-reduced-motion: no-preference) {
|
|
||||||
html {
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add some spacing between the target and the top of the viewport */
|
|
||||||
:target {
|
|
||||||
scroll-margin-top: 0px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "notomono";
|
|
||||||
src:
|
|
||||||
url("./fonts/notomono/NotoMono-Dot.woff") format("woff");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
html {
|
|
||||||
font-size: 62.5%;
|
|
||||||
}
|
|
||||||
body * {
|
|
||||||
font-family: "notomono", monospace;
|
|
||||||
font-size: 1.8rem;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
.pre, pre {
|
|
||||||
display: flex;
|
|
||||||
white-space: pre;
|
|
||||||
line-height: 0.8;
|
|
||||||
font-size: min(2.1vw, 1.0rem);
|
|
||||||
}
|
|
||||||
.pre_small {
|
|
||||||
font-size: min(1.5vw, 0.7rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
for screen larger than 500px
|
|
||||||
*/
|
|
||||||
@media screen and (min-width: 500px) {
|
|
||||||
body {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
display: block;
|
|
||||||
list-style-type: "• ";
|
|
||||||
padding-left: 25px;
|
|
||||||
/*
|
|
||||||
list-style-position: inside;
|
|
||||||
*/
|
|
||||||
list-style-position: outside;
|
|
||||||
}
|
|
||||||
li {
|
|
||||||
display: list-item;
|
|
||||||
}
|
|
||||||
li::marker {
|
|
||||||
font-size: 1.8rem;
|
|
||||||
}
|
|
||||||
details summary {
|
|
||||||
/*
|
|
||||||
list-style-position: inside;
|
|
||||||
*/
|
|
||||||
list-style-position: outside;
|
|
||||||
}
|
|
||||||
details summary {
|
|
||||||
font-size: 1.8rem;
|
|
||||||
list-style-type: "▸ ";
|
|
||||||
}
|
|
||||||
details[open] summary {
|
|
||||||
list-style-type: "▾ ";
|
|
||||||
}
|
|
||||||
a:empty::after {
|
|
||||||
content: attr(href);
|
|
||||||
}
|
|
||||||
h1 { margin: 30px 0px; font-size: 2.25rem; }
|
|
||||||
h2 { margin: 30px 0px; font-size: 2.0rem; }
|
|
||||||
h3 { margin: 20px 0px; font-size: 1.75rem; }
|
|
||||||
h4 { margin: 20px 0px; font-size: 1.5rem; }
|
|
||||||
h5 { margin: 10px 0px; font-size: 1.25rem; }
|
|
||||||
h6 { margin: 10px 0px; font-size: 1.0rem; }
|
|
||||||
|
|
||||||