Compare commits
89 Commits
simple_htm
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
d00efa943c | ||
|
|
ce8b1a10f3 | ||
|
|
ced0b84247 | ||
|
|
962eea4ace | ||
|
|
8e8b6f4e1c | ||
|
|
8012ddb0a4 | ||
|
|
48c1ff96ae | ||
|
|
520472da51 | ||
|
|
cbbde4fdac |
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
// Use Prettier as the default formatter for HTML and CSS
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
"[html]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"[css]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
}
|
||||||
|
}
|
||||||
11
README.md
@@ -1,4 +1,14 @@
|
|||||||
|
|
||||||
|
html validator : https://validator.w3.org/nu
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
start it with a server, like : `alive-server`
|
||||||
|
- https://www.npmjs.com/package/alive-server
|
||||||
|
- install : `npm install -g alive-server`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
difficulties :
|
difficulties :
|
||||||
|
|
||||||
- [accessibility with ascii art titles](https://stackoverflow.com/questions/77537096/make-text-in-ascii-art-more-accessible)
|
- [accessibility with ascii art titles](https://stackoverflow.com/questions/77537096/make-text-in-ascii-art-more-accessible)
|
||||||
@@ -220,4 +230,3 @@ projects :
|
|||||||
. .
|
. .
|
||||||
. . . . . . . . . . . . . . . . . . .
|
. . . . . . . . . . . . . . . . . . .
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
31
docs/banners/banner_0.svg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
32
docs/banners/banner_00.svg
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
33
docs/banners/banner_1.svg
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
36
docs/banners/banner_2.svg
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
39
docs/banners/banner_3.svg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
42
docs/banners/banner_4.svg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
45
docs/banners/banner_5.svg
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer.pdf
Normal file
BIN
docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_EN.pdf
Normal file
BIN
docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_Ats_FR.pdf
Normal file
BIN
docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_EN.pdf
Normal file
BIN
docs/cvs/CV_Hugo_Lamy_Backend_Embedded_Developer_FR.pdf
Normal file
5
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
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
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
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
docs/projects/cube3d_tour_with_map_square.gif
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
docs/projects/fdf_pyramide_loop_square_2_light.gif
Normal file
|
After Width: | Height: | Size: 9.2 MiB |
BIN
docs/projects/kosmopolit_square.gif
Normal file
|
After Width: | Height: | Size: 938 KiB |
BIN
docs/projects/ljdp_map_clusters_square_light.gif
Normal file
|
After Width: | Height: | Size: 5.3 MiB |
1174
index.html
@@ -1,33 +1,102 @@
|
|||||||
|
.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));
|
||||||
|
|
||||||
pre.banner {
|
background-image: url(../../docs/banners/banner_1.svg); /*default*/
|
||||||
position: relative;
|
background-size: contain;
|
||||||
margin: 10px 0px 10px -100px;
|
background-repeat: repeat;
|
||||||
animation-name: slide;
|
background-position-x: 0%;
|
||||||
|
|
||||||
|
animation-duration: 10s; /*default*/
|
||||||
|
animation-name: slide_svg;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-duration: 2s;
|
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-direction: normal;
|
animation-direction: normal;
|
||||||
}
|
}
|
||||||
pre.banner.pause {
|
@keyframes slide_svg {
|
||||||
animation-play-state: paused;
|
from {background-position-x: 0%;}
|
||||||
}
|
to {background-position-x: 100%;}
|
||||||
pre.banner.reverse {
|
|
||||||
animation-direction: reverse;
|
|
||||||
}
|
|
||||||
pre.banner.t05 {
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
}
|
|
||||||
pre.banner.t10 {
|
|
||||||
animation-duration: 1s;
|
|
||||||
}
|
|
||||||
pre.banner.t15 {
|
|
||||||
animation-duration: 1.5s;
|
|
||||||
}
|
|
||||||
pre.banner.t20 {
|
|
||||||
animation-duration: 2s;
|
|
||||||
}
|
|
||||||
@keyframes slide {
|
|
||||||
from {left:0;}
|
|
||||||
to {left:2.4em;}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* speeds
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.banner_pause {
|
||||||
|
animation-play-state: paused;
|
||||||
|
}
|
||||||
|
.banner_reverse {
|
||||||
|
animation-direction: reverse;
|
||||||
|
}
|
||||||
|
.banner_speed_10 {
|
||||||
|
animation-duration: 10s;
|
||||||
|
}
|
||||||
|
.banner_speed_20 {
|
||||||
|
animation-duration: 20s;
|
||||||
|
}
|
||||||
|
.banner_speed_30 {
|
||||||
|
animation-duration: 30s;
|
||||||
|
}
|
||||||
|
.banner_speed_40 {
|
||||||
|
animation-duration: 40s;
|
||||||
|
}
|
||||||
|
.banner_speed_50 {
|
||||||
|
animation-duration: 50s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* sizes
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.banner_size_0 {
|
||||||
|
background-image: url(../../docs/banners/banner_0.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_00 {
|
||||||
|
background-image: url(../../docs/banners/banner_00.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_1 {
|
||||||
|
background-image: url(../../docs/banners/banner_1.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 1);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 1);
|
||||||
|
}
|
||||||
|
.banner_size_2 {
|
||||||
|
background-image: url(../../docs/banners/banner_2.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 2);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 2);
|
||||||
|
}
|
||||||
|
.banner_size_3 {
|
||||||
|
background-image: url(../../docs/banners/banner_3.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 3);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 3);
|
||||||
|
}
|
||||||
|
.banner_size_4 {
|
||||||
|
background-image: url(../../docs/banners/banner_4.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 4);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 4);
|
||||||
|
}
|
||||||
|
.banner_size_5 {
|
||||||
|
background-image: url(../../docs/banners/banner_5.svg);
|
||||||
|
--banner_height: calc(var(--base_banner_height) * 5);
|
||||||
|
--dot_size: calc(var(--base_dot_size) * 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* specific banners */
|
||||||
|
#top_banner {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
|
|
||||||
#cv {
|
#cv {
|
||||||
/*
|
header {
|
||||||
place-items: center;
|
|
||||||
place-self: stretch;
|
|
||||||
*/
|
|
||||||
grid-template-columns: 1fr minmax(auto, 900px) 1fr;
|
|
||||||
}
|
|
||||||
#cv header {
|
|
||||||
height: 300px;
|
height: 300px;
|
||||||
}
|
}
|
||||||
#cv article {
|
}
|
||||||
/*
|
|
||||||
|
.cv {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
width: auto;
|
||||||
max-width: 900px;
|
max-width: 900px;
|
||||||
*/
|
|
||||||
|
> *:last-child {
|
||||||
|
margin-bottom: 100px;
|
||||||
}
|
}
|
||||||
#cv article h2 {
|
|
||||||
text-align: center;
|
.cv_download {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
#cv #cv_ascii {
|
|
||||||
/*
|
.banner {
|
||||||
place-self: center;
|
margin: 0px 0px 50px;
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
#cv #cv_download {
|
|
||||||
/*
|
h2 {
|
||||||
place-self: center;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
#cv details {
|
|
||||||
margin: 0px 0px 0px 25px;
|
|
||||||
}
|
|
||||||
#cv summary {
|
|
||||||
padding: 10px 0px;
|
|
||||||
}
|
|
||||||
#cv .mouse {
|
|
||||||
margin-top: 100px;
|
margin-top: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
border: 1px dashed black;
|
||||||
|
padding: 20px;
|
||||||
|
padding-left: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
|
|
||||||
#hero {
|
#hero {
|
||||||
grid-template-rows: 1fr auto auto;
|
min-height: 100vh;
|
||||||
height: 100vh;
|
grid-template-columns: 1fr auto 1fr;
|
||||||
/*
|
/*
|
||||||
grid-template-rows: 1fr 50px auto auto;
|
* WIP : trying to find a solution to have both qualities :
|
||||||
|
* - elements are spread across the page vertically ('hugo lamy developpeur' is not compacted on top)
|
||||||
|
* - the details element 'voir le cv' don't jump when we unroll it
|
||||||
|
*
|
||||||
|
grid-template-rows: 1fr auto 1fr;
|
||||||
|
grid-template-rows: auto auto 1fr;
|
||||||
*/
|
*/
|
||||||
|
grid-template-rows: 50vh 1fr;
|
||||||
}
|
}
|
||||||
#hero header {
|
#hero .subtitle {
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 700px;
|
||||||
|
margin: 0px auto;
|
||||||
}
|
}
|
||||||
#hero .mouse {
|
|
||||||
}
|
|
||||||
#hero .banner {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#infos article {
|
#infos article {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
59
styles/elements/language.css
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
input#language {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
label#language_label {
|
||||||
|
position: fixed;
|
||||||
|
top: 20px;
|
||||||
|
right: 20px;
|
||||||
|
padding: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
.flag {
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SWITCH FLAG
|
||||||
|
*/
|
||||||
|
#language {
|
||||||
|
&:not(:checked) + #language_label {
|
||||||
|
#fr {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
#en {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:checked + #language_label {
|
||||||
|
#fr {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#en {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SWITCH LANGUAGE
|
||||||
|
*/
|
||||||
|
|
||||||
|
#language {
|
||||||
|
~ * .fr,
|
||||||
|
~ * .en {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:checked) ~ * .en {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:checked ~ * .fr {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,61 +1,36 @@
|
|||||||
|
@import "./mouses/mouse_1.css";
|
||||||
|
@import "./mouses/mouse_2.css";
|
||||||
|
@import "./mouses/mouse_3.css";
|
||||||
|
@import "./mouses/mouse_4.css";
|
||||||
|
|
||||||
.mouse {
|
.mouse {
|
||||||
position: relative;
|
margin: auto;
|
||||||
margin: 20px 0px;
|
|
||||||
}
|
|
||||||
.frames_container {
|
|
||||||
display: grid;
|
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
/*
|
overflow: hidden;
|
||||||
border: 1px solid blue;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
pre.frame.hide {
|
.mouse .frames {
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
pre.frame {
|
|
||||||
position: relative;
|
position: relative;
|
||||||
grid-column: 1;
|
animation: mouse_move infinite 2s normal steps(4);
|
||||||
grid-row: 1;
|
}
|
||||||
margin: auto auto 0px 0px;
|
.mouse .frames::before {
|
||||||
|
position: relative;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
.mouse .frames::after {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
width: fit-content;
|
* using 'transform' instead of 'top', because 'top' needs
|
||||||
height: fit-content;
|
* the parent to have an explicit height
|
||||||
|
* but in this case its height is according to the children
|
||||||
border: 1px solid red;
|
*
|
||||||
*/
|
*/
|
||||||
|
@keyframes mouse_move {
|
||||||
opacity: 0;
|
0% {transform: translateY(0%);}
|
||||||
--tframes: 2s;
|
100% {transform: translateY(-400%);}
|
||||||
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%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
72
styles/elements/mouses/mouse_1.css
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
.mouse_1::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_1::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
72
styles/elements/mouses/mouse_2.css
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
.mouse_2::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_2::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
64
styles/elements/mouses/mouse_3.css
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
.mouse_3::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_3::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
64
styles/elements/mouses/mouse_4.css
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
.mouse_4::before {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
|
.mouse_4::after {
|
||||||
|
content:'\
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
\a
|
||||||
|
';
|
||||||
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
nav {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
background-color: #f6f6f6;
|
|
||||||
z-index: 1;
|
|
||||||
width: 100vw;
|
|
||||||
}
|
|
||||||
nav a {
|
|
||||||
position: relative;
|
|
||||||
padding: 10px 20px;
|
|
||||||
height: fit-content;
|
|
||||||
text-decoration: none;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
nav a:before {
|
|
||||||
content: "•";
|
|
||||||
position: absolute;
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
nav a:after {
|
|
||||||
content: "•";
|
|
||||||
position: absolute;
|
|
||||||
right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,31 +1,22 @@
|
|||||||
|
#projects {
|
||||||
#projects header {
|
header {
|
||||||
height: 300px;
|
height: 300px;
|
||||||
}
|
}
|
||||||
#projects .project {
|
|
||||||
max-width: 900px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
}
|
||||||
#projects article h2 {
|
#projects .projects_grid {
|
||||||
text-align: center;
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, auto));
|
||||||
|
grid-template-columns: repeat(2, minmax(100px, auto));
|
||||||
|
grid-template-columns: repeat(2, minmax(100px, 500px));
|
||||||
|
grid-gap: 20px;
|
||||||
}
|
}
|
||||||
#projects .project_description {
|
#projects .projects_grid figure {
|
||||||
padding: 20px 0px;
|
|
||||||
}
|
}
|
||||||
#projects #ljdp iframe {
|
#projects .projects_grid figure figcaption {
|
||||||
height: 550px;
|
text-align: left;
|
||||||
border: none;
|
margin-bottom: 100px;
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
@media only screen and (min-width: 741px) {
|
|
||||||
#projects #ljdp iframe {
|
|
||||||
height: 660px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#projects .project_description p {
|
|
||||||
margin: 0px 0px 10px 0px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#projects .mouse {
|
#projects .mouse {
|
||||||
margin-top: 100px;
|
margin-top: 100px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
|
|
||||||
section header { grid-area: header; }
|
|
||||||
section article { grid-area: article; }
|
|
||||||
section .mouse { grid-area: mouse; }
|
|
||||||
section .banner { grid-area: banner; }
|
|
||||||
|
|
||||||
section {
|
|
||||||
display: grid;
|
|
||||||
margin: 0px;
|
|
||||||
width: 100vw;
|
|
||||||
grid:
|
|
||||||
' . header . ' 1fr
|
|
||||||
' . article . ' auto
|
|
||||||
' . mouse . ' auto
|
|
||||||
' banner banner banner ' auto
|
|
||||||
/ 1fr auto 1fr ;
|
|
||||||
grid-gap: 10px;
|
|
||||||
gap: 10px;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
section header {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
place-content: center;
|
|
||||||
}
|
|
||||||
section footer {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
section header h1 {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -6,6 +6,21 @@
|
|||||||
margin:20px 0px 20px 0px;
|
margin:20px 0px 20px 0px;
|
||||||
}
|
}
|
||||||
.title {
|
.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;
|
gap: 10px 30px;
|
||||||
|
*/
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title > *:first-child {
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.margin_top_small {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.margin_bottom_small {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.margin_top_big {
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
.margin_bottom_big {
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DATA-FLEX
|
DATA-FLEX
|
||||||
|
|
||||||
|
|||||||
38
styles/sections.css
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
section header {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
place-content: center;
|
||||||
|
}
|
||||||
|
section header h1 {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
section article {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
section > * {
|
||||||
|
grid-column: 2 / span 1;
|
||||||
|
}
|
||||||
|
section > .grid_full_width {
|
||||||
|
grid-column: 1 / span 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
section .banner {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
|
|
||||||
:root {
|
:root {
|
||||||
--base_font_size: 62.5%;
|
--base_font_size: 62.5%;
|
||||||
}
|
}
|
||||||
html {
|
html {
|
||||||
font-size: var(--base_font_size);
|
font-size: var(--base_font_size);
|
||||||
}
|
}
|
||||||
body, main {
|
body {
|
||||||
overflow-x: clip;
|
overflow-x: clip;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*/
|
|
||||||
body, pre {
|
body, pre {
|
||||||
font-family: "notomono", monospace;
|
font-family: "notomono", monospace;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
*/
|
||||||
@media screen and (min-width: 500px) {
|
@media screen and (min-width: 500px) {
|
||||||
html {
|
html {
|
||||||
font-size: calc(var(--base_font_size) * 1.2);
|
font-size: calc(var(--base_font_size) * 1.2);
|
||||||
@@ -34,19 +34,7 @@ li {
|
|||||||
li::marker {
|
li::marker {
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
}
|
}
|
||||||
details summary {
|
|
||||||
/*
|
|
||||||
list-style-position: inside;
|
|
||||||
*/
|
|
||||||
list-style-position: outside;
|
|
||||||
}
|
|
||||||
details summary {
|
|
||||||
font-size: 1.8rem;
|
|
||||||
list-style-type: "▸ ";
|
|
||||||
}
|
|
||||||
details[open] summary {
|
|
||||||
list-style-type: "▾ ";
|
|
||||||
}
|
|
||||||
a:empty::after {
|
a:empty::after {
|
||||||
content: attr(href);
|
content: attr(href);
|
||||||
}
|
}
|
||||||
@@ -63,4 +51,10 @@ h6 { margin: 10px 0px; font-size: 1.0rem; }
|
|||||||
line-height: 0.8;
|
line-height: 0.8;
|
||||||
font-size: min(2.1vw, 1.0rem);
|
font-size: min(2.1vw, 1.0rem);
|
||||||
}
|
}
|
||||||
|
.pre_small {
|
||||||
|
font-size: min(1.5vw, 0.7rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|||||||