Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c748c5217 | ||
|
|
a95d01b026 | ||
|
|
d728897805 | ||
|
|
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 | ||
|
|
3747762c4f | ||
|
|
ac1d84fc9a | ||
|
|
7a07e2dbdd | ||
|
|
cd42bf0f2b | ||
|
|
ed75f330a1 | ||
|
|
553c93a7d1 | ||
|
|
7484bd8697 | ||
|
|
62d7b45822 | ||
|
|
3cfa8cfeba | ||
|
|
d3db7774fe | ||
|
|
1315132b9d | ||
|
|
b99a47985b | ||
|
|
ca1da07048 | ||
|
|
9c0895f589 | ||
|
|
70ae41f7d4 | ||
|
|
a6979b8d23 | ||
|
|
0903a4b9c2 | ||
|
|
c84d6bd5af | ||
|
|
59382b8d21 | ||
|
|
cf8ec07002 | ||
|
|
7b239b8fe3 | ||
|
|
cac49da466 | ||
|
|
385b43cfc6 | ||
|
|
c21df45857 | ||
|
|
6b1370131d | ||
|
|
9547c56898 | ||
|
|
eded9d9eaa | ||
|
|
c86952d172 | ||
|
|
49bc7be27f | ||
|
|
0dd0ff4843 | ||
|
|
0aa774b21f | ||
|
|
5843f9af1a | ||
|
|
2b8fc51d0b | ||
|
|
8eec040226 | ||
|
|
447553b1ac | ||
|
|
bc966e676e | ||
|
|
09bdb21600 | ||
|
|
70b644595d | ||
|
|
4eae7921cc | ||
|
|
5b63a5ed41 | ||
|
|
9fa4e3a22a | ||
|
|
ce1b541f29 | ||
|
|
82ba4401c6 | ||
|
|
5b767e8147 | ||
|
|
f334f87390 | ||
|
|
2f95a96834 | ||
|
|
0d55418bf1 | ||
|
|
d00efa943c | ||
|
|
ce8b1a10f3 | ||
|
|
ced0b84247 | ||
|
|
962eea4ace | ||
|
|
8e8b6f4e1c | ||
|
|
8012ddb0a4 | ||
|
|
48c1ff96ae | ||
|
|
520472da51 | ||
|
|
cbbde4fdac |
4
.htaccess
Normal file
@@ -0,0 +1,4 @@
|
||||
# adding https redirection :
|
||||
RewriteEngine On
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
|
||||
13
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
// Use Prettier as the default formatter for HTML, CSS, and PHP
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[css]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[php]": {
|
||||
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
|
||||
}
|
||||
}
|
||||
216
README.md
@@ -1,189 +1,41 @@
|
||||
### instructions
|
||||
|
||||
direction | width | child | child | child
|
||||
| | position | main axis | second axis
|
||||
................................................................
|
||||
horizontal | content | left |-pack |-fit
|
||||
vertical |-parent | right | grow | stretch
|
||||
| | top | space |
|
||||
| | bottom | spread |
|
||||
| |-center | |
|
||||
- start server with php, and browser-sync for auto reload :
|
||||
- `npm run dev`
|
||||
- setup instructions :
|
||||
- install apps : `sudo apt update && sudo apt install php-cli nodejs npm`
|
||||
- verify : `php -v` & `node -v` & `npm -v`
|
||||
- install dependencies : `npm ci`
|
||||
- -> only for info, at project creation setup :
|
||||
- run : `npm init -y && npm install --save-dev browser-sync`
|
||||
- add in package.jsons > scripts : `php -S localhost:8000 & browser-sync start --proxy localhost:8000 --files "**/*.php,**/*.css,**/*.js" --port 3000`
|
||||
- `php -S localhost:8000` → starts PHP built-in server
|
||||
- `&` → runs PHP server in the background (Linux/macOS)
|
||||
- `browser-sync start --proxy localhost:8000` → proxies PHP server
|
||||
- `--files "**/*.php,**/*.css,**/*.js"` → watches files for changes
|
||||
- `--port 3000` → BrowserSync UI accessible at http://localhost:3000
|
||||
|
||||
.<direction>-<width>-<position-[position]>-<main-axis>-<second-axis>
|
||||
---
|
||||
|
||||
position :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-top . . top . . right-top . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left . .-center . . right . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-bottom . . bottom . . right-bottom. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
### ressources
|
||||
|
||||
width :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . parent . .
|
||||
. . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . content .
|
||||
. . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
html validator : https://validator.w3.org/nu
|
||||
|
||||
main axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . space . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . spread. . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .-pack . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . grow . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
second axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . .
|
||||
. .-fit . . . . . .stretch. . . .
|
||||
. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
**v2 :**
|
||||
|
||||
|
||||
direction | width | child | child | child
|
||||
| | position | main axis | second axis
|
||||
................................................................
|
||||
horizontal | fit | left |-pack | begin
|
||||
vertical | large | right | grow | end
|
||||
| | top | space |-middle
|
||||
| | bottom | spread | equal
|
||||
| |-center | | stretch
|
||||
|
||||
.<direction>-<width>-<position-[position]>-<main-axis>-<second-axis>
|
||||
|
||||
position :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-top . . top . . right-top . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left . .-center . . right . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-bottom . . bottom . . right-bottom. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
main axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . space . . . . . . justify-content
|
||||
. . . . . . . . . . . . . . . . . : space-around
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . spread. . . . . . justify-content
|
||||
. . . . . . . . . . . . . . . . . : space-between
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .-pack . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . grow . . . . . . child :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . grow: 1;
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
second axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . begin . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . .
|
||||
. .-middle. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . equal . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . end . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. .stretch. . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
---
|
||||
|
||||
### difficulties
|
||||
|
||||
- [accessibility with ascii art titles](https://stackoverflow.com/questions/77537096/make-text-in-ascii-art-more-accessible)
|
||||
- I finally decided to go with a structure like this :
|
||||
```html
|
||||
<h1 aria-label="hugo lamy">
|
||||
<span aria-hidden="true" class="pre"> hugo (ascii) </span>
|
||||
<span aria-hidden="true" class="pre"> lamy (ascii) </span>
|
||||
</h1>
|
||||
```
|
||||
- [links accessibility](https://webaim.org/techniques/hypertext/)
|
||||
- [accessibility gone wild](https://webaim.org/articles/gonewild/)
|
||||
- [don't use title attribute](https://stackoverflow.com/questions/11161915/simple-tooltip-title-attribute/11163133#11163133)
|
||||
- [I thought title text improved accessibility. I was wrong.](https://silktide.com/blog/i-thought-title-text-improved-accessibility-i-was-wrong/)
|
||||
- [Things I learned by pretending to be blind for a week](https://medium.com/silktide/things-i-learned-by-pretending-to-be-blind-for-a-week-bf7b09f33eb4)
|
||||
- [create the full screen hero section with the navbar under the title](https://stackoverflow.com/questions/77596781/in-css-how-to-make-a-sticky-navbar-after-the-header-in-an-hero-section/)
|
||||
|
||||
654
index.html
@@ -1,654 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr" dir="ltr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<!-- 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/style.css" type="text/css" rel="stylesheet">
|
||||
<link href="./styles/reset.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/cv.css" type="text/css" rel="stylesheet">
|
||||
<link href="./styles/elements/infos.css" type="text/css" rel="stylesheet">
|
||||
<link href="./styles/elements/test.css" type="text/css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<!--
|
||||
|
||||
ids :
|
||||
|
||||
<id="personnal_infos">
|
||||
<id="role_title">
|
||||
<id="cv_infos">
|
||||
<id="mouse_1">
|
||||
<id="mouse_2">
|
||||
<id="mouse_3">
|
||||
<id="mouse_4">
|
||||
<id="banner_1">
|
||||
<id="banner_2">
|
||||
<id="banner_3">
|
||||
<id="banner_4">
|
||||
<id="banner_5">
|
||||
|
||||
original : • 8226 U+2022
|
||||
: 57442 U+E062
|
||||
: 57443 U+E063
|
||||
: 57444 U+E064
|
||||
: 57445 U+E065
|
||||
actual : 57446 U+E066
|
||||
: 57447 U+E067
|
||||
|
||||
<section style="height: 200px;" class="left child-left-dense horizontal">
|
||||
|
||||
accessibility pre : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#specifications
|
||||
|
||||
<figure>
|
||||
<pre role="img" aria-label="ASCII COW">
|
||||
___________________________
|
||||
< I'm an expert in my field. >
|
||||
---------------------------
|
||||
\ ^__^
|
||||
\ (oo)\_______
|
||||
(__)\ )\/\
|
||||
||----w |
|
||||
|| ||
|
||||
</pre>
|
||||
<figcaption id="cow-caption">
|
||||
A cow saying, "I'm an expert in my field." The cow is illustrated using
|
||||
preformatted text characters.
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
||||
-->
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
ROLE TITLE
|
||||
-->
|
||||
<section id="role_title">
|
||||
<figure id="name" style="gap:10px 30px;" data-flex="horizontal center wrap">
|
||||
<pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<figure id="title" style="gap:10px 30px; margin:30px 0px;" data-flex="horizontal center wrap">
|
||||
<pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
</section>
|
||||
<!--
|
||||
END ROLE TITLE
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
CV INFOS
|
||||
-->
|
||||
<section id="cv_infos" data-flex="vertical left">
|
||||
<details>
|
||||
<summary>
|
||||
<h2>Informatique</h2>
|
||||
</summary>
|
||||
<ul>
|
||||
<li>École 42, Paris, 2021-2022, tronc commun - niveau 10</li>
|
||||
<li>SIMPLON, développeur full-stack JavaScript, 2018</li>
|
||||
<li>Backend, plugin WordPress avec API Google Maps, <a href="https://2022.lejourdesprofs.org/#programme" target="_blank" rel="noopener noreferrer"></a>, 2022</li>
|
||||
<li>Full-stack, reprise d’un site d’artistes en php, <a href="https://www.bloc-house.org" target="_blank" rel="noopener noreferrer"></a>, 2021</li>
|
||||
<li>Site vitrine, association Kosmopolit, <a href="https://kosmopolit.bitbucket.io" target="_blank" rel="noopener noreferrer"></a>, 2021</li>
|
||||
</ul>
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
<h2>Bénévolat</h2>
|
||||
</summary>
|
||||
<ul>
|
||||
<li>Cogestion des bénévoles d'un camp de réfugiés, UTOPIA 56, Grande-Synthe, France, 2016</li>
|
||||
<li>Formateur contraception testiculaire, ZEROMILLIONS, Paris, France, 2021-2023</li>
|
||||
<li>Distribution de nourriture (Migrants-Wilson & Secours Populaire)</li>
|
||||
</ul>
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
<h2>Outils informatiques</h2>
|
||||
</summary>
|
||||
<ul>
|
||||
<li>C, HTML, CSS, C++, JavaScript, script bash, PHP, Svelte, TypeScript</li>
|
||||
<li>Git, Docker, Nginx, MariaDB, Node.js, Nest.js, WebSocket, Express, npm</li>
|
||||
<li>Emails, sending emails, receiving emails, deleting emails ("the it crowd", Jane Barber s01e01)</li>
|
||||
</ul>
|
||||
</details>
|
||||
<details>
|
||||
<summary>
|
||||
<h2>Études d’architecture</h2>
|
||||
</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>
|
||||
<h2>Centres d'intérêts</h2>
|
||||
</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>
|
||||
</section>
|
||||
<!--
|
||||
END CV INFOS
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
PERSONNAL INFOS
|
||||
-->
|
||||
<section id="personnal_infos" style="margin: 50px auto;">
|
||||
<p>hugogogo@protonmail.com</p>
|
||||
</section>
|
||||
<!--
|
||||
END PERSONNAL INFOS
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
MOUSE 1
|
||||
-->
|
||||
<figure class="frames_container mouse" id="mouse_1">
|
||||
<pre class="frame f1">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f3">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f4">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END MOUSE 1
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
MOUSE 2
|
||||
-->
|
||||
<figure class="frames_container mouse" id="mouse_2">
|
||||
<pre class="frame f1">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f3">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f4">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END MOUSE 2
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
MOUSE 3
|
||||
-->
|
||||
<figure class="frames_container mouse" id="mouse_3">
|
||||
<pre class="frame f1">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f3">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f4">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END MOUSE 3
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
MOUSE 4
|
||||
-->
|
||||
<figure class="frames_container mouse" id="mouse_4">
|
||||
<pre class="frame f1">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f3">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
<pre class="frame f4">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END MOUSE 4
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
BANNER 1
|
||||
-->
|
||||
<figure id="banner_1">
|
||||
<pre class="banner">
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END BANNER 1
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
BANNER 2
|
||||
-->
|
||||
<figure id="banner_2">
|
||||
<pre class="banner reverse t1_0">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END BANNER 2
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
BANNER 3
|
||||
-->
|
||||
<figure id="banner_3">
|
||||
<pre class="banner t2_0 reverse">
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END BANNER 3
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
BANNER 4
|
||||
-->
|
||||
<figure id="banner_4">
|
||||
<pre class="banner t0_5">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END BANNER 4
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
BANNER 5
|
||||
-->
|
||||
<figure id="banner_5">
|
||||
<pre class="banner reverse">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</figure>
|
||||
<!--
|
||||
END BANNER 5
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
25
index.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<!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/reset.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/base.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/text.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" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include './src/body.php'; ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
482
notes.md
Normal file
@@ -0,0 +1,482 @@
|
||||
# projects
|
||||
|
||||
- [/] ljdp
|
||||
- [ ] tchat transcendance
|
||||
- setup docker without sudo on server
|
||||
- remove authentification from project
|
||||
- [ ] cube3d
|
||||
- [ ] minishell
|
||||
|
||||
---
|
||||
|
||||
# dots
|
||||
|
||||
·•◦●∘⬤
|
||||
|
||||
- 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)
|
||||
|
||||
---
|
||||
|
||||
# dots texts
|
||||
|
||||
```
|
||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • ••••
|
||||
• • • • • • • • • • • •• •• •• •• • • • • •
|
||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • ••••
|
||||
• • • • • • • • • • • • • • • • • • • •
|
||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • •
|
||||
|
||||
••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
||||
• •• • • • • • • •• •• • • • • • • • • •
|
||||
• • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
||||
• • •• • • • • • • • • • • • • • • • • •
|
||||
••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • •••• ••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
||||
• • • • • • • • • • • •• •• •• •• • • • • • • •• • • • • • • •• •• • • • • • • • • •
|
||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • •••• • • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
||||
• • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • •
|
||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • • ••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•
|
||||
•• ••••• •••••
|
||||
••• • • • • ••
|
||||
•••• • •••• • • • •
|
||||
•• •• • • • • • • • •
|
||||
•• •• • • • ••• •••••
|
||||
•• •• • •• •
|
||||
•• •• • •• •
|
||||
•• ••••••••• • • •
|
||||
•• •• • •••• ••••• •
|
||||
•• •• • • • • • • •
|
||||
•• •• • • • • •• • •
|
||||
•••• • •• •• •• •
|
||||
••• • ••••••• • • •••
|
||||
•• • • •••••
|
||||
•••••••• • • •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•
|
||||
•
|
||||
•• •
|
||||
• • •••••••
|
||||
• •• • •
|
||||
••••• • • • •
|
||||
• • • • • •
|
||||
• • • •• •
|
||||
• • • •
|
||||
• • ••
|
||||
••• • •
|
||||
• ••••• •
|
||||
• •
|
||||
•• •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•••• •
|
||||
• • •
|
||||
• • •
|
||||
• •••
|
||||
•••••
|
||||
• •
|
||||
• •
|
||||
• •
|
||||
••• •••
|
||||
• • • •
|
||||
• • • •
|
||||
•••• ••••
|
||||
• • • • •
|
||||
••• • • •
|
||||
••••••••
|
||||
•
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•
|
||||
•• •
|
||||
• • •
|
||||
•••••••••
|
||||
• • ••
|
||||
• • •
|
||||
••••• • • •
|
||||
• • •• •
|
||||
• •
|
||||
• • ••
|
||||
• • • •
|
||||
• •• •
|
||||
••• ••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
• • • • ••••• ••••• • ••• • • • •
|
||||
• • • • • • • • • • •• •• • •
|
||||
••••• • • • •• • • • ••••• • • • •
|
||||
• • • • • • • • • • • • • •
|
||||
• • ••••• ••••• ••••• ••••• • • • • •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
•••• •••• ••••• ••••• ••••• ••••• ••••• •••••
|
||||
• • • • • • • • • • •
|
||||
•••• •••• • • • •••• • • •••••
|
||||
• • • • • • • • • •
|
||||
• • • ••••• •• ••••• ••••• • •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
••• •••• ••••• •••• ••••• ••••• ••••• • • ••••• ••••• • • • • •
|
||||
• • • • • • • • • • • • • • • • • •• ••
|
||||
••••• •••• • • • •••• •••• • •• ••••• • • ••• • • • •
|
||||
• • • • • • • • • • • • • • • • • • • •
|
||||
• • •••• ••••• •••• ••••• • ••••• • • ••••• •• • • ••••• • •
|
||||
|
||||
• • ••••• •••• ••• •••• ••••• ••••• • • • • • • • • • • •••••
|
||||
•• • • • • • • • • • • • • • • • • • • • • • •
|
||||
• • • • • •••• • • •••• ••••• • • • • • • • • • •
|
||||
• •• • • • • • • • • • • • • • • • • • • • •
|
||||
• • ••••• • •• • • • ••••• • ••••• • • • • • • •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# CSS framework
|
||||
|
||||
direction | width | child | child | child
|
||||
| | position | main axis | second axis
|
||||
................................................................
|
||||
horizontal | content | left |-pack |-fit
|
||||
vertical |-parent | right | grow | stretch
|
||||
| | top | space |
|
||||
| | bottom | spread |
|
||||
| |-center | |
|
||||
|
||||
.<direction>-<width>-<position-[position]>-<main-axis>-<second-axis>
|
||||
|
||||
position :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-top . . top . . right-top . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left . .-center . . right . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-bottom . . bottom . . right-bottom. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
width :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . parent . .
|
||||
. . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . content .
|
||||
. . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
main axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . space . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . spread. . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .-pack . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . grow . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
second axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . .
|
||||
. .-fit . . . . . .stretch. . . .
|
||||
. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
---
|
||||
|
||||
**v2 :**
|
||||
|
||||
direction | width | child | child | child
|
||||
| | position | main axis | second axis
|
||||
................................................................
|
||||
horizontal | fit | left |-pack | begin
|
||||
vertical | large | right | grow | end
|
||||
| | top | space |-middle
|
||||
| | bottom | spread | equal
|
||||
| |-center | | stretch
|
||||
|
||||
.<direction>-<width>-<position-[position]>-<main-axis>-<second-axis>
|
||||
|
||||
position :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-top . . top . . right-top . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left . .-center . . right . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . left-bottom . . bottom . . right-bottom. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
main axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . space . . . . . . justify-content
|
||||
. . . . . . . . . . . . . . . . . : space-around
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . spread. . . . . . justify-content
|
||||
. . . . . . . . . . . . . . . . . : space-between
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .-pack . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . grow . . . . . . child :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . grow: 1;
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
second axis :
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . begin . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . .
|
||||
. .-middle. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . equal . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. . end . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . .
|
||||
. . . .
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. .stretch. . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
1789
package-lock.json
generated
Normal file
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": "php -S localhost:8000 & browser-sync start --proxy localhost:8000 --files \"**/*.php,**/*.css,**/*.js\" --port 3000"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"browser-sync": "^3.0.4"
|
||||
}
|
||||
}
|
||||
56
src/body.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<style>
|
||||
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;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<div>
|
||||
<?php include 'modules/language.html'; ?>
|
||||
|
||||
<?php include 'modules/hero.html'; ?>
|
||||
|
||||
<?php include 'modules/cv.html'; ?>
|
||||
|
||||
<?php include 'modules/projects.html'; ?>
|
||||
|
||||
<?php include 'modules/infos.html'; ?>
|
||||
|
||||
</div>
|
||||
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 |
33
src/docs/banners/banner_1.svg
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
36
src/docs/banners/banner_2.svg
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
39
src/docs/banners/banner_3.svg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
42
src/docs/banners/banner_4.svg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
45
src/docs/banners/banner_5.svg
Normal file
|
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 |
381
src/modules/cv.html
Normal file
@@ -0,0 +1,381 @@
|
||||
<style>
|
||||
#cv_section {
|
||||
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;
|
||||
}
|
||||
|
||||
.dashed {
|
||||
border: 1px dashed black;
|
||||
padding: 20px;
|
||||
padding-left: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * *
|
||||
* * * * * * * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||
|
||||
<section id="cv_section" 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">
|
||||
<!--
|
||||
CV DOWNLLOAD
|
||||
-->
|
||||
|
||||
<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>
|
||||
|
||||
<!--
|
||||
CV CONTENT
|
||||
-->
|
||||
|
||||
<h2 class="dashed">
|
||||
<span class="fr">COMPÉTENCES</span>
|
||||
<span class="en">SKILLS</span>
|
||||
</h2>
|
||||
|
||||
<ul class="dashed">
|
||||
<li>
|
||||
<span class="fr en">
|
||||
<b>Langages :</b> C, C++, TypeScript, JavaScript, PHP, bash, CSS, HTML
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr en">
|
||||
<b>Backend / Cloud :</b> Node.js, NestJS, Firebase Cloud Functions,
|
||||
MongoDB, MySQL
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr">
|
||||
<b>Embarqué / IoT :</b> Linux, Zephyr RTOS, optimisation mémoire
|
||||
</span>
|
||||
<span class="en">
|
||||
<b>Embedded / IoT :</b> Linux, Zephyr RTOS, memory optimization
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr"> <b>Outils :</b> Git, Docker </span>
|
||||
<span class="en"> <b>Tools :</b> Git, Docker </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr en">
|
||||
<b>Web :</b> WordPress, Svelte.js, React.js, Next.js
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr">
|
||||
<b>Méthodes :</b> TDD, tests d'intégration, programmation
|
||||
fonctionnelle
|
||||
</span>
|
||||
<span class="en">
|
||||
<b>Practices :</b> TDD, integration testing, functional programming
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="fr">
|
||||
<b>Langues :</b> Français (natif), Anglais (courant)
|
||||
</span>
|
||||
<span class="en">
|
||||
<b>Languages :</b> French (native), English (fluent)
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="dashed">
|
||||
<span class="fr">EXPÉRIENCE</span>
|
||||
<span class="en">EXPERIENCE</span>
|
||||
</h2>
|
||||
|
||||
<ul class="dashed">
|
||||
<li>
|
||||
<span class="fr">
|
||||
Developpeur Backend & Embarqué - OSKEY (2024-présent) oskey.io/
|
||||
</span>
|
||||
<span class="en">
|
||||
Backend & Embedded Developer - OSKEY (2024-Present) oskey.io/
|
||||
</span>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<span class="fr">
|
||||
Développement d'endpoints backend Firebase Cloud Functions en
|
||||
TypeScript / NestJS pour la communication avec des appareils IoT
|
||||
</span>
|
||||
<span class="en">
|
||||
Design of Firebase Cloud Functions backend APIs in TypeScript /
|
||||
NestJS for communication with IoT devices
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Refactorisation du backend existant (typage TypeScript strict,
|
||||
correction d'erreurs, amélioration de la maintenabilité)
|
||||
</span>
|
||||
<span class="en">
|
||||
Refactored existing backend (strict TypeScript typing, bug fixes,
|
||||
maintainability improvements)
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Développement d'helpers backend centralisant les contrôles
|
||||
d'accès, la gestion des erreurs et l'accès aux données en base
|
||||
</span>
|
||||
<span class="en">
|
||||
Development of backend helpers that centralize access controls,
|
||||
error handling, and access to documents in the database
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Optimisation de la gestion mémoire d'un firmware IoT en C sous
|
||||
Zephyr RTOS
|
||||
</span>
|
||||
<span class="en">
|
||||
Optimized memory usage of an IoT firmware written in C (Zephyr
|
||||
RTOS) running on microcontrollers
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Mise en place de tests d'intégration backend et firmware
|
||||
</span>
|
||||
<span class="en">
|
||||
Implemented backend and firmware integration tests
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Developpeur Fullstack - FIPF (2024) carteprof.org/
|
||||
</span>
|
||||
<span class="en">
|
||||
Fullstack Developer - FIPF (2024) carteprof.org/
|
||||
</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span class="fr">
|
||||
Développement d'un plugin WordPress (PHP / MySQL) pour la gestion
|
||||
des paiements
|
||||
</span>
|
||||
<span class="en">
|
||||
Developed a WordPress plugin (PHP / MySQL) for payment management
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr"> Audit et correction de plugins tiers </span>
|
||||
<span class="en"> Audited and fixed third-party plugins </span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr"> Automatisation des flux de paiement </span>
|
||||
<span class="en"> Automated payment workflows </span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fr">
|
||||
Developpeur Front-End - KOSMOPOLIT (2023) kosmopolit/
|
||||
</span>
|
||||
<span class="en">
|
||||
Front-End Developer - KOSMOPOLIT (2023) kosmopolit/
|
||||
</span>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<span class="fr">
|
||||
Développement d'un site static multilingue (JavaScript, HTML/CSS)
|
||||
</span>
|
||||
<span class="en">
|
||||
Developed a multilingual static website (JavaScript, HTML/CSS)
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="dashed">
|
||||
<span class="fr">FORMATION</span>
|
||||
<span class="en">EDUCATION</span>
|
||||
</h2>
|
||||
|
||||
<ul class="dashed">
|
||||
<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>
|
||||
|
||||
<h2 class="dashed">
|
||||
<span class="fr">PROJETS</span>
|
||||
<span class="en">PROJECTS</span>
|
||||
</h2>
|
||||
|
||||
<ul class="dashed">
|
||||
<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>
|
||||
</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>
|
||||
136
src/modules/hero.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<style>
|
||||
/* specific banners */
|
||||
#top_banner {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#hero_section {
|
||||
min-height: 100vh;
|
||||
grid-template-columns: 1fr auto 1fr;
|
||||
grid-template-rows: 1fr auto auto;
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * *
|
||||
* * * * * * * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||
|
||||
<!--
|
||||
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>
|
||||
|
||||
<section class="section hero" id="hero_section">
|
||||
<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>
|
||||
30
src/modules/infos.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<style>
|
||||
#infos article {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
place-content: center;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * *
|
||||
* * * * * * * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||
|
||||
<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>
|
||||
86
src/modules/language.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<style>
|
||||
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: none;
|
||||
}
|
||||
|
||||
#en {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + #language_label {
|
||||
#fr {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#en {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* SWITCH LANGUAGE
|
||||
*/
|
||||
|
||||
#language {
|
||||
~ * .fr,
|
||||
~ * .en {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:not(:checked) ~ * .fr {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
&:checked ~ * .en {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * *
|
||||
* * * * * * * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||
|
||||
<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>
|
||||
203
src/modules/projects.html
Normal file
@@ -0,0 +1,203 @@
|
||||
<style>
|
||||
#projects {
|
||||
header {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.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;
|
||||
|
||||
figure figcaption {
|
||||
text-align: left;
|
||||
margin-bottom: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.mouse {
|
||||
margin-top: 100px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * * *
|
||||
* * * * * * * * *
|
||||
* * * * * * * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * *
|
||||
* * * * * * * * * * * * * *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||
|
||||
<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>
|
||||
93
src/styles/banners.css
Normal file
@@ -0,0 +1,93 @@
|
||||
.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);
|
||||
}
|
||||
25
src/styles/base.css
Normal file
@@ -0,0 +1,25 @@
|
||||
: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;
|
||||
}
|
||||
}
|
||||
|
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 |
369
src/styles/mouses.css
Normal file
@@ -0,0 +1,369 @@
|
||||
.mouse {
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
overflow: hidden;
|
||||
|
||||
.frames {
|
||||
position: relative;
|
||||
animation: mouse_move infinite 2s normal steps(4);
|
||||
|
||||
&::before {
|
||||
position: relative;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
&::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%);
|
||||
}
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* MOUSE 1 *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
.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
|
||||
";
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* MOUSE 2 *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
.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
|
||||
";
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* MOUSE 3 *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
.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
|
||||
";
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* MOUSE 4 *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
.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
|
||||
";
|
||||
}
|
||||
47
src/styles/reset.css
Normal file
@@ -0,0 +1,47 @@
|
||||
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;
|
||||
}
|
||||
76
src/styles/text.css
Normal file
@@ -0,0 +1,76 @@
|
||||
@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;
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
|
||||
pre.banner {
|
||||
position: relative;
|
||||
margin: 10px 0px 10px -100px;
|
||||
animation-name: slide;
|
||||
animation-iteration-count: infinite;
|
||||
animation-duration: 2s;
|
||||
animation-timing-function: linear;
|
||||
animation-direction: normal;
|
||||
}
|
||||
pre.banner.pause {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
pre.banner.reverse {
|
||||
animation-direction: reverse;
|
||||
}
|
||||
pre.banner.t0_5 {
|
||||
animation-duration: 0.5s;
|
||||
}
|
||||
pre.banner.t1_0 {
|
||||
animation-duration: 1s;
|
||||
}
|
||||
pre.banner.t1_5 {
|
||||
animation-duration: 1.5s;
|
||||
}
|
||||
pre.banner.t2_0 {
|
||||
animation-duration: 2s;
|
||||
}
|
||||
@keyframes slide {
|
||||
from {left:0;}
|
||||
to {left:2.4em;}
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
|
||||
#cv_infos {
|
||||
margin: 10px 10px 30px 10px;
|
||||
}
|
||||
#cv_infos h1,
|
||||
#cv_infos h2,
|
||||
#cv_infos h3,
|
||||
#cv_infos h4,
|
||||
#cv_infos h5,
|
||||
#cv_infos h6 {
|
||||
/*
|
||||
place-self: center;
|
||||
margin-left: var(--list-padding);
|
||||
*/
|
||||
}
|
||||
#cv_infos details {
|
||||
margin: 10px 0px;
|
||||
}
|
||||
#cv_infos summary {
|
||||
/*
|
||||
*/
|
||||
margin-left: var(--list-padding);
|
||||
}
|
||||
#cv_infos summary + * {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
details summary {
|
||||
/*
|
||||
list-style-type: none;
|
||||
*/
|
||||
list-style-position: outside;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
#personnal_infos {
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
|
||||
.mouse {
|
||||
position: relative;
|
||||
margin: 0px;
|
||||
}
|
||||
.frames_container {
|
||||
display: grid;
|
||||
width: fit-content;
|
||||
/*
|
||||
border: 1px solid blue;
|
||||
*/
|
||||
}
|
||||
pre.frame.hide {
|
||||
display: none;
|
||||
}
|
||||
pre.frame {
|
||||
position: relative;
|
||||
grid-column: 1;
|
||||
grid-row: 1;
|
||||
margin: auto auto 0px 0px;
|
||||
|
||||
/*
|
||||
width: fit-content;
|
||||
height: fit-content;
|
||||
|
||||
border: 1px solid red;
|
||||
*/
|
||||
|
||||
opacity: 0;
|
||||
--tframes: 2s;
|
||||
animation-name: ascii_frame;
|
||||
animation-iteration-count: infinite;
|
||||
animation-duration: var(--tframes);
|
||||
animation-timing-function: linear;
|
||||
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,24 +0,0 @@
|
||||
|
||||
#test::after {
|
||||
content: " \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a ";
|
||||
white-space: pre-wrap;
|
||||
/*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
|
||||
#role_title #name {
|
||||
margin:30px 0px 40px 0px;
|
||||
}
|
||||
#role_title #title {
|
||||
margin:30px 0px 40px 0px;
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
|
||||
/*
|
||||
DATA-FLEX
|
||||
|
||||
direction width position main axis cross axis
|
||||
|
||||
[/]-horizontal [/]-parent [/]-center [/]-pack [/]-fit
|
||||
[/] vertical [/] content [/] left [/]-wrap [/] stretch
|
||||
[/] right [/] nowrap
|
||||
[/] top [/] grow
|
||||
[/] bottom [/] space
|
||||
[/] spread
|
||||
[/] gap
|
||||
-> for GAP, you can custom the value with 'style="--gap:?px;"'
|
||||
*/
|
||||
[data-flex] {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: auto;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
[data-flex] > * {
|
||||
flex-grow: 0;
|
||||
}
|
||||
/*
|
||||
direction : -horizontal- vertical
|
||||
*/
|
||||
[data-flex~="horizontal"] { flex-direction: row; }
|
||||
[data-flex~="vertical"] { flex-direction: column; }
|
||||
/*
|
||||
width : -parent- content
|
||||
*/
|
||||
[data-flex~="parent"] { width: auto; }
|
||||
[data-flex~="content"] { width: fit-content; }
|
||||
/*
|
||||
position : -center- left right top bottom
|
||||
*/
|
||||
[data-flex~="horizontal"][data-flex~="left"] { justify-content: flex-start; }
|
||||
[data-flex~="horizontal"][data-flex~="right"] { justify-content: flex-end; }
|
||||
[data-flex~="horizontal"][data-flex~="top"] { align-items: flex-start; }
|
||||
[data-flex~="horizontal"][data-flex~="bottom"] { align-items: flex-end; }
|
||||
[data-flex~="horizontal"][data-flex~="center"] { }
|
||||
[data-flex~="vertical"][data-flex~="left"] { align-items: flex-start; }
|
||||
[data-flex~="vertical"][data-flex~="right"] { align-items: flex-end; }
|
||||
[data-flex~="vertical"][data-flex~="top"] { justify-content: flex-start; }
|
||||
[data-flex~="vertical"][data-flex~="bottom"] { justify-content: flex-end; }
|
||||
[data-flex~="vertical"][data-flex~="center"] { align-items: center; }
|
||||
/*
|
||||
main axis : -pack- space spread grow wrap gap
|
||||
*/
|
||||
[data-flex~="horizontal"][data-flex~="pack"] > * { flex-grow: 0; }
|
||||
[data-flex~="horizontal"][data-flex~="space"] { justify-content: space-around; }
|
||||
[data-flex~="horizontal"][data-flex~="spread"] { justify-content: space-between; }
|
||||
[data-flex~="horizontal"][data-flex~="grow"] > * { flex-grow: 1; }
|
||||
[data-flex~="vertical"][data-flex~="pack"] > * { flex-grow: 0; }
|
||||
[data-flex~="vertical"][data-flex~="space"] { justify-content: space-around; }
|
||||
[data-flex~="vertical"][data-flex~="spread"] { justify-content: space-between; }
|
||||
[data-flex~="vertical"][data-flex~="grow"] > * { flex-grow: 1; }
|
||||
[data-flex~="wrap"] { flex-wrap: wrap; }
|
||||
/*
|
||||
cross axis : -fit- stretch
|
||||
*/
|
||||
[data-flex~="horizontal"][data-flex~="fit"],
|
||||
[data-flex~="vertical"][data-flex~="fit"] { }
|
||||
[data-flex~="horizontal"][data-flex~="stretch"],
|
||||
[data-flex~="vertical"][data-flex~="stretch"] { align-items: stretch; }
|
||||
|
||||
|
||||
@@ -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,60 +0,0 @@
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
}
|
||||
:root {
|
||||
--small-space: 10px;
|
||||
--medium-space: calc(var(--small-space) * 3);
|
||||
--big-space: calc(var(--small-space) * 10);
|
||||
--list-padding: 40px;
|
||||
}
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
figure {
|
||||
overflow: hidden;
|
||||
}
|
||||
script, style {
|
||||
display: none;
|
||||
}
|
||||
pre {
|
||||
margin: 10px 0px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
grid
|
||||
*/
|
||||
|
||||
#personnal_infos { grid-area: infos; }
|
||||
#role_title { grid-area: title; }
|
||||
#cv_infos { grid-area: cv; }
|
||||
#mouse_1 { grid-area: mouse_1; }
|
||||
#mouse_2 { grid-area: mouse_2; }
|
||||
#mouse_3 { grid-area: mouse_3; }
|
||||
#mouse_4 { grid-area: mouse_4; }
|
||||
#banner_1 { grid-area: banner_1;}
|
||||
#banner_2 { grid-area: banner_2;}
|
||||
#banner_3 { grid-area: banner_3;}
|
||||
#banner_4 { grid-area: banner_4;}
|
||||
#banner_5 { grid-area: banner_5;}
|
||||
|
||||
body {
|
||||
/*
|
||||
*/
|
||||
margin: 0px;
|
||||
display: grid;
|
||||
grid:
|
||||
' title ' auto
|
||||
' banner_1 ' auto
|
||||
' mouse_1 ' auto
|
||||
' banner_2 ' auto
|
||||
' cv ' auto
|
||||
' banner_3 ' auto
|
||||
' banner_4 ' auto
|
||||
' mouse_2 ' auto
|
||||
' mouse_3 ' auto
|
||||
' banner_5 ' auto
|
||||
' mouse_4 ' auto
|
||||
' infos ' auto
|
||||
/ 1fr ;
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
|
||||
@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;
|
||||
}
|
||||
ul {
|
||||
/*
|
||||
*/
|
||||
display: block;
|
||||
list-style-type: "• ";
|
||||
padding-left: var(--list-padding);
|
||||
}
|
||||
li {
|
||||
display: list-item;
|
||||
}
|
||||
li::marker {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
a::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; }
|
||||
pre {
|
||||
line-height: 0.8;
|
||||
font-size: min(2.2vw, 1.0rem);
|
||||
}
|
||||
325
temp.txt
@@ -1,325 +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)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • ••••
|
||||
• • • • • • • • • • • •• •• •• •• • • • • •
|
||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • ••••
|
||||
• • • • • • • • • • • • • • • • • • • •
|
||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • •
|
||||
|
||||
••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
||||
• •• • • • • • • •• •• • • • • • • • • •
|
||||
• • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
||||
• • •• • • • • • • • • • • • • • • • • •
|
||||
••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
•••• •••• ••••• ••••• •••• ••• • • • • ••••• • • •••• ••••• • • ••••• ••••• •••• • • ••• ••••• ••••• ••• • • •••••
|
||||
• • • • • • • • • • • •• •• •• •• • • • • • • •• • • • • • • •• •• • • • • • • • • •
|
||||
•••• •••• • • • •• •••• ••••• • • • • • • •••• • • •••• • • • • •••• • • •••• • • • ••••• • • • • • • ••••
|
||||
• • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • •
|
||||
• • • ••••• ••••• • • • • • • • • ••••• ••••• • • ••••• • • • ••••• • • • • • • • ••••• ••• ••••• •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
•
|
||||
•• ••••• •••••
|
||||
••• • • • • ••
|
||||
•••• • •••• • • • •
|
||||
•• •• • • • • • • • •
|
||||
•• •• • • • ••• •••••
|
||||
•• •• • •• •
|
||||
•• •• • •• •
|
||||
•• ••••••••• • • •
|
||||
•• •• • •••• ••••• •
|
||||
•• •• • • • • • • •
|
||||
•• •• • • • • •• • •
|
||||
•••• • •• •• •• •
|
||||
••• • ••••••• • • •••
|
||||
•• • • •••••
|
||||
•••••••• • • •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
•
|
||||
•
|
||||
•• •
|
||||
• • •••••••
|
||||
• •• • •
|
||||
••••• • • • •
|
||||
• • • • • •
|
||||
• • • •• •
|
||||
• • • •
|
||||
• • ••
|
||||
••• • •
|
||||
• ••••• •
|
||||
• •
|
||||
•• •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
•••• •
|
||||
• • •
|
||||
• • •
|
||||
• •••
|
||||
•••••
|
||||
• •
|
||||
• •
|
||||
• •
|
||||
••• •••
|
||||
• • • •
|
||||
• • • •
|
||||
•••• ••••
|
||||
• • • • •
|
||||
••• • • •
|
||||
••••••••
|
||||
•
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
•
|
||||
•• •
|
||||
• • •
|
||||
•••••••••
|
||||
• • ••
|
||||
• • •
|
||||
••••• • • •
|
||||
• • •• •
|
||||
• •
|
||||
• • ••
|
||||
• • • •
|
||||
• •• •
|
||||
••• ••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
• • • • ••••• ••••• • ••• • • • •
|
||||
• • • • • • • • • • •• •• • •
|
||||
••••• • • • •• • • • ••••• • • • •
|
||||
• • • • • • • • • • • • • •
|
||||
• • ••••• ••••• ••••• ••••• • • • • •
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
••• •••• ••••• •••• ••••• ••••• ••••• • • ••••• ••••• • • • • •
|
||||
• • • • • • • • • • • • • • • • • •• ••
|
||||
••••• •••• • • • •••• •••• • •• ••••• • • ••• • • • •
|
||||
• • • • • • • • • • • • • • • • • • • •
|
||||
• • •••• ••••• •••• ••••• • ••••• • • ••••• •• • • ••••• • •
|
||||
|
||||
• • ••••• •••• ••• •••• ••••• ••••• • • • • • • • • • • •••••
|
||||
•• • • • • • • • • • • • • • • • • • • • • • •
|
||||
• • • • • •••• • • •••• ••••• • • • • • • • • • •
|
||||
• •• • • • • • • • • • • • • • • • • • • • •
|
||||
• • ••••• • •• • • • ••••• • ••••• • • • • • • •••••
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||