wip adding php include
233
README.md
@@ -1,232 +1,33 @@
|
||||
|
||||
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`
|
||||
- start server with php, and nodemon for auto reload :
|
||||
- `npm run dev`
|
||||
|
||||
- setup :
|
||||
- install apps : `sudo apt update && sudo apt install php-cli nodejs npm`
|
||||
- verify : `php -v` & `node -v` & `npm -v`
|
||||
- -> only for info, at project creation setup :
|
||||
- run : `npm init -y && npm install --save-dev nodemon`
|
||||
- add in package.jsons > scripts : `"dev": "nodemon --exec 'php -S localhost:8000' --ext php,html"`
|
||||
- install dependencies : `npm ci`
|
||||
|
||||
---
|
||||
|
||||
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>
|
||||
```
|
||||
- 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/)
|
||||
|
||||
---
|
||||
|
||||
projects :
|
||||
|
||||
- [/] ljdp
|
||||
- [ ] tchat transcendance
|
||||
- setup docker without sudo on server
|
||||
- remove authentification from project
|
||||
- [ ] cube3d
|
||||
- [ ] minishell
|
||||
|
||||
---
|
||||
|
||||
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. . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
33
index.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<!doctype html>
|
||||
<html lang="fr" dir="ltr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<!-- create "fake" favicon : https://stackoverflow.com/questions/1321878/how-to-prevent-favicon-ico-requests -->
|
||||
<link rel="icon" href="data:;base64,iVBORw0KGgo=" />
|
||||
<title>hugulumu.fr</title>
|
||||
<meta name="description" content="site web de hugo lamy, developpeur" />
|
||||
<base href="./src/" />
|
||||
<link href="./styles/global_style.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/mouses.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/banners.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/language.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/elements/title.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/elements/hero.css" type="text/css" rel="stylesheet" />
|
||||
<link
|
||||
href="./styles/elements/projects.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="./styles/elements/cv.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/elements/infos.css" type="text/css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include './src/body.php'; ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,11 +1,23 @@
|
||||
# projects
|
||||
|
||||
- [/] ljdp
|
||||
- [ ] tchat transcendance
|
||||
- setup docker without sudo on server
|
||||
- remove authentification from project
|
||||
- [ ] cube3d
|
||||
- [ ] minishell
|
||||
|
||||
---
|
||||
|
||||
# dots
|
||||
|
||||
·•◦●∘⬤
|
||||
|
||||
- 183 : ·
|
||||
- 8226 : •
|
||||
- 8729 : ∙
|
||||
- 9679 : ●
|
||||
- 9899 : ⚫
|
||||
- 183 : ·
|
||||
- 8226 : •
|
||||
- 8729 : ∙
|
||||
- 9679 : ●
|
||||
- 9899 : ⚫
|
||||
- 11044 : ⬤
|
||||
|
||||
- 57352
|
||||
@@ -28,327 +40,443 @@
|
||||
- 57446 (0xe066) U+E066 "uniE066" -
|
||||
- 57447 (0xe067) U+E067 "uniE067" -
|
||||
|
||||
1229 \* (1638 + 410)
|
||||
|
||||
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. . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
. . . . . . . . . . . . . . . . .
|
||||
. .
|
||||
. . . . . . . . . . . . . . . . . . .
|
||||
390
package-lock.json
generated
Normal file
@@ -0,0 +1,390 @@
|
||||
{
|
||||
"name": "website_hugulumu",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "website_hugulumu",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"nodemon": "^3.1.14"
|
||||
}
|
||||
},
|
||||
"node_modules/anymatch": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"normalize-path": "^3.0.0",
|
||||
"picomatch": "^2.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
|
||||
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "18 || 20 || >=22"
|
||||
}
|
||||
},
|
||||
"node_modules/binary-extensions": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
|
||||
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^4.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18 || 20 || >=22"
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
||||
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.4.3",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
||||
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "^2.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"is-glob": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/ignore-by-default": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
|
||||
"integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/is-binary-path": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"binary-extensions": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-glob": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"is-extglob": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "10.2.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
|
||||
"integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
|
||||
"dev": true,
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^5.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18 || 20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nodemon": {
|
||||
"version": "3.1.14",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz",
|
||||
"integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"chokidar": "^3.5.2",
|
||||
"debug": "^4",
|
||||
"ignore-by-default": "^1.0.1",
|
||||
"minimatch": "^10.2.1",
|
||||
"pstree.remy": "^1.1.8",
|
||||
"semver": "^7.5.3",
|
||||
"simple-update-notifier": "^2.0.0",
|
||||
"supports-color": "^5.5.0",
|
||||
"touch": "^3.1.0",
|
||||
"undefsafe": "^2.0.5"
|
||||
},
|
||||
"bin": {
|
||||
"nodemon": "bin/nodemon.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/nodemon"
|
||||
}
|
||||
},
|
||||
"node_modules/normalize-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/pstree.remy": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
|
||||
"integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"picomatch": "^2.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.7.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
|
||||
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/simple-update-notifier": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
|
||||
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"semver": "^7.5.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"is-number": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/touch": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
|
||||
"integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"nodetouch": "bin/nodetouch.js"
|
||||
}
|
||||
},
|
||||
"node_modules/undefsafe": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
||||
"integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "website_hugulumu",
|
||||
"version": "1.0.0",
|
||||
"description": "html validator : https://validator.w3.org/nu",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
"doc": "docs"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"dev": "nodemon --exec 'php -S localhost:8000' --ext php,html"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"nodemon": "^3.1.14"
|
||||
}
|
||||
}
|
||||
@@ -1,84 +1,31 @@
|
||||
<!doctype html>
|
||||
<html lang="fr" dir="ltr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<!-- create "fake" favicon : https://stackoverflow.com/questions/1321878/how-to-prevent-favicon-ico-requests -->
|
||||
<link rel="icon" href="data:;base64,iVBORw0KGgo=" />
|
||||
<title>hugulumu.fr</title>
|
||||
<meta name="description" content="site web de hugo lamy, developpeur" />
|
||||
<link href="./styles/reset.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/style.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/global.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/text.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/sections.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/hero.css" type="text/css" rel="stylesheet" />
|
||||
<link
|
||||
href="./styles/elements/projects.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="./styles/elements/cv.css" type="text/css" rel="stylesheet" />
|
||||
<link href="./styles/elements/infos.css" type="text/css" rel="stylesheet" />
|
||||
<link
|
||||
href="./styles/elements/language.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</head>
|
||||
|
||||
<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>
|
||||
|
||||
<!--
|
||||
original : • 8226 U+2022
|
||||
: 57442 U+E062
|
||||
: 57443 U+E063
|
||||
: 57444 U+E064
|
||||
: 57445 U+E065
|
||||
actual : 57446 U+E066
|
||||
: 57447 U+E067
|
||||
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>
|
||||
|
||||
<body id="body">
|
||||
<input type="checkbox" id="language" />
|
||||
<label id="language_label" for="language">
|
||||
<span id="fr"
|
||||
><img class="flag" src="./docs/flags/fr_bnw.svg" alt="french flag"
|
||||
/></span>
|
||||
<span id="en"
|
||||
><img class="flag" src="./docs/flags/gb_bnw.svg" alt="english flag"
|
||||
/></span>
|
||||
</label>
|
||||
|
||||
<!--
|
||||
I moved this outside the hero section,
|
||||
so that i can change my mind to put it or not without having to change the grid rows height
|
||||
-->
|
||||
<div
|
||||
id="top_banner"
|
||||
class="banner banner_size_0 banner_speed_50 banner_reverse grid_full_width"
|
||||
aria-label="banner delimitation in ASCII art"
|
||||
></div>
|
||||
|
||||
<!--
|
||||
HERO SECTION
|
||||
-->
|
||||
<section class="section hero" id="hero">
|
||||
<header>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="hugo lamy" id="name" class="title">
|
||||
<!--
|
||||
HERO SECTION
|
||||
-->
|
||||
<section class="section hero" id="hero">
|
||||
<header>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="hugo lamy" id="name" class="title">
|
||||
<span aria-hidden="true" class="pre pre_small">
|
||||
|
||||
|
||||
@@ -93,9 +40,10 @@
|
||||
|
||||
|
||||
</span>
|
||||
</h1>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="programmeur informatique" id="title" class="title">
|
||||
</h1>
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="programmeur informatique" id="title" class="title">
|
||||
<span aria-hidden="true" class="pre">
|
||||
<span class="fr">
|
||||
|
||||
@@ -112,38 +60,38 @@
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</h1>
|
||||
</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>
|
||||
<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 margin_bottom_small"
|
||||
aria-label="banner delimitation in ASCII art"
|
||||
></div>
|
||||
</section>
|
||||
<div class="mouse"><div class="frames mouse_1 pre"></div></div>
|
||||
<div
|
||||
class="banner banner_size_3 banner_speed_30 grid_full_width"
|
||||
aria-label="banner delimitation in ASCII art"
|
||||
></div>
|
||||
</section>
|
||||
|
||||
<!--
|
||||
CV
|
||||
-->
|
||||
<section id="cv" class="section">
|
||||
<header>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="curriculum vitae">
|
||||
|
||||
<!--
|
||||
CV
|
||||
-->
|
||||
<section id="cv" class="section">
|
||||
<header>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="curriculum vitae">
|
||||
<span aria-hidden="true" class="pre">
|
||||
<span class="fr en">
|
||||
|
||||
@@ -591,7 +539,7 @@
|
||||
|
||||
<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 margin_bottom_small"
|
||||
class="banner banner_size_2 banner_reverse banner_speed_40 grid_full_width"
|
||||
aria-label="banner delimitation in ASCII art"
|
||||
></div>
|
||||
</section>
|
||||
@@ -622,7 +570,7 @@
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<div class="margin_bottom_big">
|
||||
<div class="">
|
||||
<p>
|
||||
<span class="fr">code-sources de tous les projets : </span>
|
||||
<span class="en">source code for all projects : </span>
|
||||
@@ -635,7 +583,7 @@
|
||||
></a>
|
||||
</div>
|
||||
|
||||
<h2 class="margin_bottom_big">
|
||||
<h2 class="">
|
||||
<span class="fr">quelques exemples de projets réalisés :</span>
|
||||
<span class="en">some examples of completed projects :</span>
|
||||
</h2>
|
||||
@@ -775,5 +723,3 @@
|
||||
|
||||
<div class="mouse"><div class="frames mouse_4 pre"></div></div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 231 B |
|
Before Width: | Height: | Size: 234 B After Width: | Height: | Size: 234 B |
|
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 504 B |
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 9.2 MiB |
|
Before Width: | Height: | Size: 938 KiB After Width: | Height: | Size: 938 KiB |
|
Before Width: | Height: | Size: 5.3 MiB After Width: | Height: | Size: 5.3 MiB |
61
src/modules/hero.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<section class="section hero" id="hero">
|
||||
<header>
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="hugo lamy" id="name" class="title">
|
||||
<span aria-hidden="true" class="pre pre_small">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
<span aria-hidden="true" class="pre pre_small">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
<h1 aria-label="programmeur informatique" id="title" class="title">
|
||||
<span aria-hidden="true" class="pre">
|
||||
<span class="fr">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
<span class="en">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<p class="subtitle">
|
||||
<span class="fr">
|
||||
Bonjour, je suis un développeur inventif, méthodique, et passionné par
|
||||
l'informatique, et plus particulièrement le libre et l'open source.
|
||||
J'aime explorer de nouvelles solutions techniques et comprendre les
|
||||
systèmes en profondeur :-]
|
||||
</span>
|
||||
<span class="en">
|
||||
Hello, I am a creative, methodical developer with a passion for computer
|
||||
science, particularly free and open-source software. I enjoy exploring
|
||||
new technical solutions and gaining a deep understanding of systems :-]
|
||||
</span>
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div class="mouse"><div class="frames mouse_1 pre"></div></div>
|
||||
<div
|
||||
class="banner banner_size_3 banner_speed_30 grid_full_width"
|
||||
aria-label="banner delimitation in ASCII art"
|
||||
></div>
|
||||
</section>
|
||||
101
src/styles/banners.css
Normal file
@@ -0,0 +1,101 @@
|
||||
.banner {
|
||||
width: 100%;
|
||||
--base_banner_height: 24px;
|
||||
--banner_height: var(--base_banner_height); /*default*/
|
||||
--base_dot_size: 4.2vw;
|
||||
--dot_size: var(--base_dot_size); /*default*/
|
||||
height: min(var(--dot_size), var(--banner_height));
|
||||
|
||||
background-image: url(../docs/banners/banner_1.svg); /*default*/
|
||||
background-size: contain;
|
||||
background-repeat: repeat;
|
||||
background-position-x: 0%;
|
||||
|
||||
animation-duration: 10s; /*default*/
|
||||
animation-name: slide_svg;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: linear;
|
||||
animation-direction: normal;
|
||||
}
|
||||
@keyframes slide_svg {
|
||||
from {
|
||||
background-position-x: 0%;
|
||||
}
|
||||
to {
|
||||
background-position-x: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* speeds
|
||||
*
|
||||
*/
|
||||
.banner_pause {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.banner_reverse {
|
||||
animation-direction: reverse;
|
||||
}
|
||||
.banner_speed_10 {
|
||||
animation-duration: 10s;
|
||||
}
|
||||
.banner_speed_20 {
|
||||
animation-duration: 20s;
|
||||
}
|
||||
.banner_speed_30 {
|
||||
animation-duration: 30s;
|
||||
}
|
||||
.banner_speed_40 {
|
||||
animation-duration: 40s;
|
||||
}
|
||||
.banner_speed_50 {
|
||||
animation-duration: 50s;
|
||||
}
|
||||
|
||||
/*
|
||||
* sizes
|
||||
*
|
||||
*/
|
||||
.banner_size_0 {
|
||||
background-image: url(../docs/banners/banner_0.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_00 {
|
||||
background-image: url(../docs/banners/banner_00.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_1 {
|
||||
background-image: url(../docs/banners/banner_1.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_2 {
|
||||
background-image: url(../docs/banners/banner_2.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 2);
|
||||
--dot_size: calc(var(--base_dot_size) * 2);
|
||||
}
|
||||
.banner_size_3 {
|
||||
background-image: url(../docs/banners/banner_3.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 3);
|
||||
--dot_size: calc(var(--base_dot_size) * 3);
|
||||
}
|
||||
.banner_size_4 {
|
||||
background-image: url(../docs/banners/banner_4.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 4);
|
||||
--dot_size: calc(var(--base_dot_size) * 4);
|
||||
}
|
||||
.banner_size_5 {
|
||||
background-image: url(../docs/banners/banner_5.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 5);
|
||||
--dot_size: calc(var(--base_dot_size) * 5);
|
||||
}
|
||||
|
||||
/* specific banners */
|
||||
#top_banner {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
48
src/styles/elements/hero.css
Normal file
@@ -0,0 +1,48 @@
|
||||
#hero {
|
||||
min-height: 100vh;
|
||||
grid-template-columns: 1fr auto 1fr;
|
||||
/*
|
||||
* WIP : trying to find a solution to have both qualities :
|
||||
* - elements are spread across the page vertically ('hugo lamy developpeur' is not compacted on top)
|
||||
* - the details element 'voir le cv' don't jump when we unroll it
|
||||
*
|
||||
grid-template-rows: 1fr auto 1fr;
|
||||
grid-template-rows: auto auto 1fr;
|
||||
*/
|
||||
grid-template-rows: 50vh 1fr;
|
||||
|
||||
.title {
|
||||
/*
|
||||
older safari doesn't not support flex gap
|
||||
I could use a workaround :
|
||||
https://stackoverflow.com/questions/65452057/flexbox-gap-workaround-for-safari
|
||||
but it doesn't work with wrap
|
||||
so instead I make them in columns and add a margin
|
||||
|
||||
gap: 10px 30px;
|
||||
*/
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
> *:first-child {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
&#name {
|
||||
margin: 30px 0px 20px 0px;
|
||||
}
|
||||
|
||||
&#title {
|
||||
margin: 20px 0px 20px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
max-width: 700px;
|
||||
margin: 0px auto;
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 607 B After Width: | Height: | Size: 607 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 612 B |
248
src/styles/global_style.css
Normal file
@@ -0,0 +1,248 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* RESET CSS *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
body * {
|
||||
margin: 0px;
|
||||
}
|
||||
input,
|
||||
button,
|
||||
textarea,
|
||||
select {
|
||||
/* Remove built-in form typography styles */
|
||||
font: inherit;
|
||||
}
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
img,
|
||||
picture,
|
||||
video,
|
||||
canvas,
|
||||
svg {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
li,
|
||||
p,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
/* Avoid text overflows
|
||||
overflow-wrap: break-word;
|
||||
*/
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
/* style details elements */
|
||||
details summary {
|
||||
cursor: pointer;
|
||||
}
|
||||
details summary > * {
|
||||
/* allow to put h1 or anything inside the summary without breaking the line */
|
||||
display: inline;
|
||||
}
|
||||
script,
|
||||
style {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* GLOBAL CSS *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
:root {
|
||||
--base_font_size: 62.5%;
|
||||
}
|
||||
html {
|
||||
font-size: var(--base_font_size);
|
||||
}
|
||||
body {
|
||||
overflow-x: clip;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
|
||||
/* https://css-tricks.com/slow-movement/#h-you-can-implement-native-smooth-scrolling-in-css */
|
||||
/* Animate scrolling only if users don’t prefer reduced motion */
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Add some spacing between the target and the top of the viewport */
|
||||
:target {
|
||||
scroll-margin-top: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* TEXT CSS *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
@font-face {
|
||||
font-family: "notomono";
|
||||
src: url("./fonts/notomono/NotoMono-Dot.woff") format("woff");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
body,
|
||||
pre {
|
||||
font-family: "notomono", monospace;
|
||||
font-size: 1.5rem;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@media screen and (min-width: 500px) {
|
||||
html {
|
||||
font-size: calc(var(--base_font_size) * 1.2);
|
||||
}
|
||||
}
|
||||
ul {
|
||||
display: block;
|
||||
list-style-type: "• ";
|
||||
padding-left: 25px;
|
||||
/*
|
||||
list-style-position: inside;
|
||||
*/
|
||||
list-style-position: outside;
|
||||
}
|
||||
li {
|
||||
display: list-item;
|
||||
}
|
||||
li::marker {
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
a:empty::after {
|
||||
content: attr(href);
|
||||
}
|
||||
h1 {
|
||||
margin: 30px 0px;
|
||||
font-size: 2.25rem;
|
||||
}
|
||||
h2 {
|
||||
margin: 30px 0px;
|
||||
font-size: 2rem;
|
||||
}
|
||||
h3 {
|
||||
margin: 20px 0px;
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
h4 {
|
||||
margin: 20px 0px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
h5 {
|
||||
margin: 10px 0px;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
h6 {
|
||||
margin: 10px 0px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.pre,
|
||||
pre {
|
||||
display: flex;
|
||||
white-space: pre;
|
||||
line-height: 0.8;
|
||||
font-size: min(2.1vw, 1rem);
|
||||
}
|
||||
.pre_small {
|
||||
font-size: min(1.5vw, 0.7rem);
|
||||
}
|
||||
|
||||
a {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* SECTIONS GLOBAL CSS *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
section {
|
||||
display: grid;
|
||||
margin: 0px;
|
||||
width: 100vw;
|
||||
grid-template-columns: auto auto auto;
|
||||
grid-auto-rows: auto;
|
||||
grid-gap: 10px;
|
||||
gap: 10px;
|
||||
min-height: 100vh;
|
||||
justify-items: center;
|
||||
text-align: center;
|
||||
|
||||
> * {
|
||||
grid-column: 2 / span 1;
|
||||
}
|
||||
|
||||
> .grid_full_width {
|
||||
grid-column: 1 / span 3;
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
place-content: center;
|
||||
|
||||
h1 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
article {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.banner {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
.banner {
|
||||
width: 100%;
|
||||
--base_banner_height: 24px;
|
||||
--banner_height: var(--base_banner_height); /*default*/
|
||||
--base_dot_size: 4.2vw;
|
||||
--dot_size: var(--base_dot_size); /*default*/
|
||||
height: min(var(--dot_size), var(--banner_height));
|
||||
|
||||
background-image: url(../../docs/banners/banner_1.svg); /*default*/
|
||||
background-size: contain;
|
||||
background-repeat: repeat;
|
||||
background-position-x: 0%;
|
||||
|
||||
animation-duration: 10s; /*default*/
|
||||
animation-name: slide_svg;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: linear;
|
||||
animation-direction: normal;
|
||||
}
|
||||
@keyframes slide_svg {
|
||||
from {background-position-x: 0%;}
|
||||
to {background-position-x: 100%;}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* speeds
|
||||
*
|
||||
*/
|
||||
.banner_pause {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.banner_reverse {
|
||||
animation-direction: reverse;
|
||||
}
|
||||
.banner_speed_10 {
|
||||
animation-duration: 10s;
|
||||
}
|
||||
.banner_speed_20 {
|
||||
animation-duration: 20s;
|
||||
}
|
||||
.banner_speed_30 {
|
||||
animation-duration: 30s;
|
||||
}
|
||||
.banner_speed_40 {
|
||||
animation-duration: 40s;
|
||||
}
|
||||
.banner_speed_50 {
|
||||
animation-duration: 50s;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* sizes
|
||||
*
|
||||
*/
|
||||
.banner_size_0 {
|
||||
background-image: url(../../docs/banners/banner_0.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_00 {
|
||||
background-image: url(../../docs/banners/banner_00.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_1 {
|
||||
background-image: url(../../docs/banners/banner_1.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 1);
|
||||
--dot_size: calc(var(--base_dot_size) * 1);
|
||||
}
|
||||
.banner_size_2 {
|
||||
background-image: url(../../docs/banners/banner_2.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 2);
|
||||
--dot_size: calc(var(--base_dot_size) * 2);
|
||||
}
|
||||
.banner_size_3 {
|
||||
background-image: url(../../docs/banners/banner_3.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 3);
|
||||
--dot_size: calc(var(--base_dot_size) * 3);
|
||||
}
|
||||
.banner_size_4 {
|
||||
background-image: url(../../docs/banners/banner_4.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 4);
|
||||
--dot_size: calc(var(--base_dot_size) * 4);
|
||||
}
|
||||
.banner_size_5 {
|
||||
background-image: url(../../docs/banners/banner_5.svg);
|
||||
--banner_height: calc(var(--base_banner_height) * 5);
|
||||
--dot_size: calc(var(--base_dot_size) * 5);
|
||||
}
|
||||
|
||||
|
||||
/* specific banners */
|
||||
#top_banner {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
#hero {
|
||||
min-height: 100vh;
|
||||
grid-template-columns: 1fr auto 1fr;
|
||||
/*
|
||||
* WIP : trying to find a solution to have both qualities :
|
||||
* - elements are spread across the page vertically ('hugo lamy developpeur' is not compacted on top)
|
||||
* - the details element 'voir le cv' don't jump when we unroll it
|
||||
*
|
||||
grid-template-rows: 1fr auto 1fr;
|
||||
grid-template-rows: auto auto 1fr;
|
||||
*/
|
||||
grid-template-rows: 50vh 1fr;
|
||||
}
|
||||
#hero .subtitle {
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
max-width: 700px;
|
||||
margin: 0px auto;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
|
||||
#name {
|
||||
margin:30px 0px 20px 0px;
|
||||
}
|
||||
#title {
|
||||
margin:20px 0px 20px 0px;
|
||||
}
|
||||
.title {
|
||||
/*
|
||||
older safari doesn't not support flex gap
|
||||
I could use a workaround :
|
||||
https://stackoverflow.com/questions/65452057/flexbox-gap-workaround-for-safari
|
||||
but it doesn't work with wrap
|
||||
so instead I make them in columns and add a margin
|
||||
|
||||
gap: 10px 30px;
|
||||
*/
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.title > *:first-child {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
body * {
|
||||
margin: 0px;
|
||||
}
|
||||
input, button, textarea, select {
|
||||
/* Remove built-in form typography styles */
|
||||
font: inherit;
|
||||
}
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
img, picture, video, canvas, svg {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
li, p, h1, h2, h3, h4, h5, h6 {
|
||||
/* Avoid text overflows
|
||||
overflow-wrap: break-word;
|
||||
*/
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
/* style details elements */
|
||||
details summary {
|
||||
cursor: pointer;
|
||||
}
|
||||
details summary > * {
|
||||
/* allow to put h1 or anything inside the summary without breaking the line */
|
||||
display: inline;
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
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,31 +0,0 @@
|
||||
: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;
|
||||
}
|
||||
script, style {
|
||||
display: none;
|
||||
}
|
||||
pre {
|
||||
margin: 10px 0px;
|
||||
}
|
||||
|
||||
/* https://css-tricks.com/slow-movement/#h-you-can-implement-native-smooth-scrolling-in-css */
|
||||
/* Animate scrolling only if users don’t prefer reduced motion */
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Add some spacing between the target and the top of the viewport */
|
||||
:target {
|
||||
scroll-margin-top: 0px;
|
||||
}
|
||||
}
|
||||
@@ -1,60 +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;
|
||||
}
|
||||
/*
|
||||
*/
|
||||
@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: 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, pre {
|
||||
display: flex;
|
||||
white-space: pre;
|
||||
line-height: 0.8;
|
||||
font-size: min(2.1vw, 1.0rem);
|
||||
}
|
||||
.pre_small {
|
||||
font-size: min(1.5vw, 0.7rem);
|
||||
}
|
||||
|
||||
a {
|
||||
word-break: break-all;
|
||||
}
|
||||