Compare commits

..

No commits in common. "main" and "fix/menu-order" have entirely different histories.

42 changed files with 279 additions and 625 deletions

View file

@ -1,6 +1,6 @@
FROM docker.io/nginx:1.29-alpine FROM docker.io/nginx:1.29-alpine
COPY index.html poster.html guide.html contact.html /usr/share/nginx/html COPY index.html poster.html guide.html /usr/share/nginx/html
COPY assets /usr/share/nginx/html/assets COPY assets /usr/share/nginx/html/assets
COPY css /usr/share/nginx/html/css COPY css /usr/share/nginx/html/css
COPY js /usr/share/nginx/html/js COPY js /usr/share/nginx/html/js

Binary file not shown.

BIN
assets/Dymo.ttf Normal file

Binary file not shown.

BIN
assets/Erika-Type.ttf Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Binary file not shown.

View file

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View file

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View file

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
assets/notebook.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
assets/paper.avif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/stickers/bac-e2.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
assets/stickers/clef.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

BIN
assets/stickers/ecran.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

BIN
assets/stickers/foin.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,64 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/contact.css">
<link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script>
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
<title>Camp Interhack 2026 Contact</title>
</head>
<body>
<nav>
<a href="index.html">maison</a>
<a href="guide.html">guide</a>
<a href="poster.html">poster</a>
<a href="contact.html" class="current">contact</a>
</nav>
<main>
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
<h1>
<span id="camp" class="draggable">camp</span>
<br>
<span id="interhack" class="draggable">interhack</span>
<span class="draggable">contact</span>
</h1>
<h2>
</h2>
<section id="contact">
<div>
<h3>Mail :</h3>
<a href="mailto:orga@camp.interhacker.space">orga@camp.interhacker.space</a>
</div>
<div>
<h3>Matrix :</h3>
<a href="https://matrix.to/#/#camp-space:matrix.interhacker.space" class="matrix-link">#interhack:matrix.interhacker.space</a>
</div>
</section>
</main>
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>
<a href="https://interhacker.space">accueil</a>
<a href="https://wiki.interhacker.space">wiki</a>
</div>
<div>
<h2>Site Web</h2>
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
</div>
</footer>
</body>
</html>

View file

@ -1,31 +1,21 @@
/* Primary Font */
@font-face { @font-face {
font-family: MonTrappist; font-family: Banquise;
src: url(../assets/fonts/MonTrappist-Black.woff); src: url(../assets/Banquise-Regular.woff);
} }
/* Secondary Font */
@font-face { @font-face {
font-family: Segoesc; font-family: Dymo;
src: url(../assets/fonts/segoesc.ttf); src: url(../assets/Dymo.ttf);
} }
:root { @font-face {
--primary-bg-color: black; /* global scope */ font-family: Erika;
--accent-violet: #8800FF; src: url(../assets/Erika-Type.ttf);
--accent-yellow: #ffbf3e;
--accent-orange: #FF4E00 ;
--accent-minor-blue: #33D8D8;
--text-color-primary: #FFFFFF;
} }
html, body { html, body {
height: 100%;
margin: 0; margin: 0;
font-family: "Verdana", "Helvetica", "Arial", sans-serif;
color: var(--text-color-primary);
background: var(--primary-bg-color);
overflow-x: hidden; /* empêche les stickers de déborder horizontalement */
} }
img { img {
@ -33,110 +23,45 @@ img {
} }
a { a {
color: inherit; text-decoration: none;
color: black;
} }
nav a, footer a { main {
color: black; /* background-color: #413f43;*/
text-decoration: none; background: #058C9E;
background: radial-gradient(at left top, #058C9E, #BC5180);
/* background-repeat: no-repeat;
background-size: cover; */
} }
main h1, main h2, main h3 { main h1, main h2, main h3 {
font-family: MonTrappist; font-family: Banquise;
color: white; color: white;
z-index: 20; z-index: 2;
}
main h1 span, main h2 span, main h3 {
background-color: #000000b8;
} }
main h1 { main h1 {
position: relative; font-size: 8em;
text-align: center;
margin: auto;
width: 50%;
font-size: clamp(4em, 14vw, 8em);
margin-top: 5%;
max-width: 1400px;
}
main h2 {
position: relative;
margin: 12% auto 5% auto;
text-align: center;
font-size: clamp(1.5em, 12vw, 4em);
font-family: segoesc;
}
main h2:first-of-type {
font-size: clamp(1.5em, 5vw, 5em);
margin: 1em auto 0.5em auto;
}
main h3 {
position: relative;
margin: auto;
width: 100%;
font-size: clamp(1.8em, 3vw, 4em);
margin-top: 5%;
margin-bottom: 2%;
font-weight: lighter;
text-align: center;
}
main section h3 {
text-align: left;
}
main h4 {
margin: 0.8em 0;
}
main p {
margin: 0 0 min(1em, 2%) 1%;
display: inline-block;
z-index: 3;
}
main p:last-child {
margin-bottom: 0;
}
section {
position: relative;
max-width: 900px;
font-size: 1.5em;
line-height: 1.3em;
margin: auto;
margin-bottom: 100px;
padding: 2%;
padding-left: min(1em, 2%);
z-index: 1000;
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
background-color: #000000b8;
}
section :is(h1, h2, h3, h4, h5, h6) {
line-height: 1em;
} }
nav, footer, aside { nav, footer, aside {
background: var(--accent-violet); background: #d7d7d7;
background: url(../assets/paper.avif);
padding: 5px; padding: 5px;
font-family: MonTrappist; font-family: Erika;
z-index: 10000; z-index: 10000;
position: relative; position: relative;
} opacity: 0.95;
box-shadow: 0px 0px 10px #00000070;
nav {
padding-left: 10%;
} }
nav a, footer a, aside a { nav a, footer a, aside a {
font-family: Dymo;
font-size: 3em; font-size: 3em;
display: inline-block; display: inline-block;
margin: 0.1em 0.3em; margin-right: 1em;
} }
nav a.current { nav a.current {
@ -147,6 +72,8 @@ footer a:hover, nav a:hover {
transform: rotate(-2deg); transform: rotate(-2deg);
} }
footer { footer {
display: block; display: block;
text-align: center; text-align: center;
@ -161,75 +88,3 @@ footer {
align-items: center; align-items: center;
} }
} }
main > img {
object-fit: scale-down;
}
figcaption {
font-size: 0.6em;
line-height: initial;
}
.btn-nice {
color: #FFFFFF;
text-shadow: -2px 2px 0px var(--accent-orange), -4px 4px 0px var(--accent-violet);
color: var(--accent-yellow);
font-size: 1.2em;
text-align: center;
margin: auto;
position: relative;
display: block;
font-weight: bold;
}
#camp {
font-family: segoesc;
float: left;
margin-left: 10%;
}
#interhack {
text-shadow: -5px 5px 0px var(--accent-orange), -10px 10px 0px var(--accent-violet);
color: var(--accent-yellow);
margin-right: 10%;
}
#progress {
display: block;
text-align: center;
}
#gauge-bar {
float: left;
}
#fundraising-bar {
float: left;
}
code {
background: #ffffff1f;
padding: 0.2em 0.4em;
border-radius: 0.2em;
margin-right: 0.5ex;
}
.btn-nice code {
background: none;
padding: 0;
margin-right: 0;
}
div#maj-guide {
text-align: center;
margin: 2em 1em;
}
@media (max-width: 500px) {
/* Hide stickers on mobile */
.randomStart {
display: none;
}
}

View file

@ -1,15 +0,0 @@
#contact {
display: flex;
align-items: last baseline;
gap: 2em;
justify-content: space-between;
}
h1 span:nth-of-type(n+3) {
position: relative;
text-align: center;
font-size: clamp(1.5rem, 5vw, 5rem);
font-family: segoesc;
display: block;
margin: 1em auto 0.5em auto;
}

View file

@ -1,10 +1,10 @@
main img.draggable { main img.draggable {
max-width: 200px; max-width: 150px;
max-height: 200px; max-height: 150px;
position: absolute; position: absolute;
z-index: 1; filter: saturate(2);
} }

112
css/guide.css Normal file
View file

@ -0,0 +1,112 @@
body {
background-image: radial-gradient(at left top, #058C9E, #BC5180);
background-repeat: no-repeat;
background-attachment: fixed;
}
main {
width: 100%;
max-width: 800px;
margin-left: auto;
margin-right: auto;
background: none;
padding-bottom: 100px;
font-family: Erika;
line-height: 1.5;
}
main > * {
width: 100%;
background: linear-gradient(to top, rgba(255,255,255,0.5)), url(../assets/notebook.jpg), white;
box-sizing: border-box;
margin: 0;
background-size: 100% auto;
padding-bottom: 1em;
filter: drop-shadow(5px 3px 2px #000000b7);
padding-left: 15px;
padding-right: 15px;
z-index: 1;
position: relative;
max-width: 100%;
}
main > img {
object-fit: scale-down;
}
main > .sticker {
background: none;
z-index: 0;
}
main > *.draggable:not(.sticker) {
&:not(h2) {
width: 100%;
}
&:not(h1):not(h2):hover {
animation: none;
}
}
main ul,
main ol,
main dl {
padding-left: calc(1em + 15px);
}
main h1 {
text-align: center;
font-size: 4rem;
}
main h1,
main h2 {
background: none;
padding-top: 1.5em;
padding-left: 0;
padding-right: 0;
}
@media screen and (max-width: 800px) {
main h2 {
padding-left: 1em;
}
}
main h1 + *,
main h2 + * {
padding-top: 1em;
}
main h1 small {
display: block;
background: url(../assets/notebook.jpg);
color: black;
font-family: Erika;
font-size: 2.5rem;
width: fit-content;
max-width: 90%;
margin-left: auto;
margin-right: auto;
transform: translateY(-0.3em) rotate(-2deg);
}
main pre {
white-space: pre-wrap;
}
main a {
text-decoration: underline;
color: teal;
}
main a:visited {
color: rebeccapurple;
}
footer {
padding: 1em;
}

View file

@ -1,9 +1,63 @@
main {
display: block;
color: black;
overflow: hidden;
width: 100%;
min-height: 1000px;
}
main h1 {
position: relative;
text-align: center;
margin: auto;
width: 100%;
font-size: clamp(4em, 14vw, 8em);
margin-top: 5%;
}
main h2 {
position: relative;
margin: 4% auto;
text-align: center;
font-size: clamp(2.5em, 5vw, 4em);
}
main h3 {
position: relative;
text-align: center;
margin: auto;
width: 100%;
font-size: clamp(2em, 4vw, 4em);
margin-top: 5%;
}
main p {
margin: 1%;
padding: 1%;
background: white;
background: url(../assets/notebook.jpg);
/* border: solid 1px; */
opacity: 0.92;
display: inline-block;
z-index: 3;
}
section {
max-width: 1400px;
font-size: 1.5em;
text-align: center;
font-family: Erika;
margin: auto;
margin-bottom: 100px;
padding: 2%;
}
.logo { .logo {
width: 100%; width: 100%;
height: 100%; height: 100%;
max-width: 7em ; max-width: 7em ;
padding: 0.2em; padding: 0.2em;
background-color:rgba(99, 99, 99, 0.2);
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
margin: 1em; margin: 1em;
z-index: 2; z-index: 2;
@ -16,94 +70,3 @@
align-items: center; align-items: center;
height: 200px; height: 200px;
} }
/* Section des dons */
#don > div {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
}
#don button {
flex-grow: 1;
width: 3em;
color: white;
font-size: 2em;
border: none;
font-family: MonTrappist;
margin: 0.2em;
padding: 0.3em;
background: var(--primary-bg-color);
background: linear-gradient(0deg,rgba(136, 0, 255, 1) 0%, rgba(255, 191, 62, 1) 50%, rgba(255, 78, 0, 1) 100%);
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
cursor: pointer;
}
#don > hr {
margin-top: 1em;
}
#don p {
text-align: justify;
text-align: center;
}
@keyframes bang {
from {
transform: translate3d(0,0,0);
opacity: 1;
}
}
.btn-pop i {
/* position: ; */
display:run-in;
left: 0px;
top: 0px;
width: 1px;
height: 1px;
background: red;
opacity: 0;
}
/* Barre de progression */
.progression {
animation: 3s loadbar;
width:auto;
background-color: white;
display: inline-block;
padding: 0.7em 0.5em 0.5em 0.5em;
text-wrap: nowrap;
}
@keyframes loadbar {
0% { width:0%; }
}
.bar {
width : 50%;
margin : auto;
border : 2px solid white;
display: inline-block;
}
.progression > span {
display: inline-block;
width: 100%;
font-family: MonTrappist;
font-size : 1.5em;
}
.lessthanhalf span {
padding-left: 100%;
color: white;
padding-left: calc(100% + 1em);
}
.morethanhalf {
text-align : end;
background: linear-gradient(90deg,rgba(136, 0, 255, 1) 0%, rgba(255, 78, 0, 1) 42%, rgba(255, 191, 62, 1) 100%);
}

View file

@ -4,6 +4,7 @@ body {
} }
aside { aside {
background: url(../assets/notebook.jpg);
width: fit-content; width: fit-content;
margin-top: 10px; margin-top: 10px;
} }
@ -15,7 +16,6 @@ main {
box-shadow: 5px 5px 5px #00000085; box-shadow: 5px 5px 5px #00000085;
margin: 50px auto; margin: 50px auto;
position: relative; position: relative;
background: var(--primary-bg-color);
} }
@page { @page {

View file

@ -13,53 +13,35 @@ BISOUS
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/base.css"> <link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/guide.css">
<link rel="stylesheet" href="css/drag.css"> <link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script> <script src="js/drag.js" defer></script>
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
<title>Guide Interhack Camp 2026</title> <title>Guide Interhack Camp 2026</title>
</head> </head>
<body id="page-guide"> <body id="page-guide">
<nav> <nav>
<a href="index.html">maison</a> <a href="index.html">home</a>
<a href="guide.html" class="current">guide</a> <a href="guide.html" class="current">guide</a>
<a href="poster.html">poster</a> <a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav> </nav>
<main> <main>
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<h1> <img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<span id="camp" class="draggable">camp</span>
<br>
<span id="interhack" class="draggable">interhack</span>
</h1>
<h2>
<span class="draggable">Informations pratiques</span>
</h2>
<section>
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA --> <!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
</section>
<div id="maj-guide">
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
</div>
</main> </main>
<footer> <footer>
<div> <div>
@ -75,6 +57,9 @@ BISOUS
<h2>Site Web</h2> <h2>Site Web</h2>
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a> <a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
</div> </div>
<div>
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
</div>
</footer> </footer>
</body> </body>
</html> </html>

View file

@ -1,5 +1,4 @@
<!DOCTYPE html> <html lang="en">
<html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -8,35 +7,38 @@
<link rel="stylesheet" href="css/home.css"> <link rel="stylesheet" href="css/home.css">
<link rel="stylesheet" href="css/drag.css"> <link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script> <script src="js/drag.js" defer></script>
<script src="js/progress.js" defer></script> <title>Camp Interhack 2026</title>
<script src="js/pop.js" defer></script>
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
<title>Camp Interhack</title>
</head> </head>
<body> <body>
<nav> <nav>
<a href="index.html" class="current">maison</a> <a href="index.html" class="current">home</a>
<a href="guide.html">guide</a> <a href="guide.html">guide</a>
<a href="poster.html">poster</a> <a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav> </nav>
<main> <main>
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
<h1> <h1>
<span id="camp" class="draggable">camp</span> <span class="draggable">Camp</span>
<br> <span class="draggable">Interhack</span>
<span id="interhack" class="draggable">interhack</span> <span class="draggable">2026</span>
</h1> </h1>
<h2> <h2>
@ -82,93 +84,27 @@
collective.<br> collective.<br>
Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de
chacun·es.</p> chacun·es.</p>
<p>
<h3>
<a class="btn-nice" href="https://grist.interhacker.space/o/camp/forms/jhWe1wCu16LGEu81RTn3Um/4">S'inscrire</a>
</h3>
</p>
</section> </section>
<h3>
<span>Où en est-on ?</span>
</h3>
<section id="progress">
<p>Il y a</p>
<div class="places">
<span class="bar">
<span id="gauge-bar" style="width:0" class="progression lessthanhalf">
<span id="gauge-text">?/200</span>
</span>
</span>
</div>
<p>places déjà réservées.</p>
<br>
<p>Et nous avons reçu</p>
<div class="places">
<span class="bar">
<span id="fundraising-bar" style="width:0" class="progression lessthanhalf">
<span id="fundraising-text">? %</span>
</span>
</span>
</div>
<p>des dons dont nous avons besoin.</p>
</section>
<h3>
<span>Faire un don</span>
</h3>
<section id="don">
<p>Nous avons besoin de sous avant le débût du Camp pour financer l'achat de fournitures, payer la réservation du lieu et monter la logistique.</p>
<div>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a8-c97f-784c-ab19-841c0700837d?resource_id=019c09a8-c976-797d-b213-4ac052e5d786"><button>5€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-76e2-7086-9b69-436a09ff801d?resource_id=019c09a9-76db-7325-b239-f0f80d056b74"><button>1€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-f4d1-7cf5-a1b0-eff390954dd0?resource_id=019c09a9-f4cb-7335-9fa4-6b599f072969"><button>10€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09aa-85db-7edd-9508-f6b7f03e1594?resource_id=019c09aa-85d4-7a19-889b-6c09cd7e4ae5"><button>20€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-25d1-724a-9156-a8af734ddcc6?resource_id=019c09ab-25c8-7e9c-a0b0-72655c28b87e"><button>40€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-9f99-72fa-8151-0722830429a8?resource_id=019c09ab-9f93-78cb-9825-11af0c12f080"><button>50€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c0ff1-9272-7c10-b8b0-22c0fdc9f080?resource_id=019c0ff1-926d-7146-a0c4-5056a719e7ea"><button>75€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ac-a6b9-76e9-9988-fe53c940ff06?resource_id=019c09ac-a6b3-735a-a13b-11d1698ba31a"><button>100€</button></a>
</div>
<hr>
<div>
<p>Nous estimons avoir un budget de 10 000 ~ 15 000€ et être autour de 200 personnes, et aurons donc besoin d'au moins autant pour que le camp soit à l'équilibre.</p>
<a href="https://grist.interhacker.space/o/docs/pUsyFia9Papk/Untitled-document">Voir le détail des comptes</a>
</div>
<hr>
<div>
<p>Si tu ne sais pas quel prix libre donner, et/ou que tu veux de l'aide pour définir un prix libre juste et éclairé pour ta participation au camp, voici un thunomètre rapide qui peut répondre au besoin.</p>
<a href="assets/Thunometre-participanxes.pdf">Thunomètre</a>
</div>
</section>
<h3> <h3>
<span>Iels y participent</span> <span>Iels y participent</span>
</h3> </h3>
<div class="participants"> <section class="participants">
<a href="https://lqdn.fr"> <a href="https://lqdn.fr">
<img class="logo" src="assets/logos/lqdn.png" alt="La Quadrature Du Net"> <img class="logo" src="assets/lqdn.png" alt="La Quadrature Du Net">
</a> </a>
<a href="https://datapaulette.org/"> <a href="https://datapaulette.org/">
<img class="logo" src="assets/logos/datapaulette.jpg" alt="Datapaulette"> <img class="logo" src="assets/datapaulette.jpg" alt="Datapaulette">
</a> </a>
<a href="https://lebib.org"><img class="logo" src="assets/logos/lebib.png" alt="Le Bib Net"></a> <a href="https://lebib.org"><img class="logo" src="assets/lebib.png" alt="Le Bib Net"></a>
</div> </section>
<section class="participants">
<a href="https://hackstub.eu/"><img class="logo" src="assets/hackstub.svg" alt="La Hackstub"></a>
<a href="https://fuz.re"><img class="logo" src="assets/fuz.png" alt="Le Fuz"></a>
<div class="participants"> </section>
<a href="https://hackstub.eu/"><img class="logo" src="assets/logos/hackstub.svg" alt="La Hackstub"></a>
<a href="https://fuz.re"><img class="logo" src="assets/logos/fuz.png" alt="Le Fuz"></a>
<a href="https://labolyon.fr/"><img class="logo" src="assets/logos/lol_logo_txt.png" alt="Le Laboratoire Ouvert Lyonnais"></a>
<a href="https://fdn.fr/"><img class="logo" src="assets/logos/fdn.png" alt="La French Data Network"></a>
</div>
</main> </main>
<footer> <footer>
<div> <div>
@ -186,5 +122,4 @@
</div> </div>
</footer> </footer>
</body> </body>
</html> </html>

View file

@ -1,6 +1,10 @@
const stepSize = 1; const stepSize = 100;
const main = document.querySelector('main'); const main = document.querySelector('main');
for(let guideDraggable of document.querySelectorAll("#page-guide main > *")) {
guideDraggable.classList.add("draggable");
}
const draggables = document.querySelectorAll(".draggable"); const draggables = document.querySelectorAll(".draggable");
const randomStarts = document.querySelectorAll(".randomStart"); const randomStarts = document.querySelectorAll(".randomStart");
@ -20,6 +24,8 @@ function stepedSize(n) {
function move(e) { function move(e) {
e.preventDefault(); e.preventDefault();
let target = e.target; let target = e.target;
target.style['z-index'] = zIndex;
zIndex++;
target.moving = true; target.moving = true;
@ -62,14 +68,13 @@ function activateDraggables() {
} }
function randomizeDragables() { function randomizeDragables() {
maxX = main.offsetWidth - 250; maxX = main.offsetWidth - 150;
maxY = main.offsetHeight - 150; maxY = main.offsetHeight - 150;
for (var randomStart of randomStarts) { for (var randomStart of randomStarts) {
randX = Math.floor(Math.random() * maxX); randX = Math.floor(Math.random() * maxX);
randY = Math.floor(Math.random() * maxY); randY = Math.floor(Math.random() * maxY);
randomStart.style.left = randX + "px"; randomStart.style.left = randX + "px";
randomStart.style.top = randY + "px"; randomStart.style.top = randY + "px";
randomStart.style.rotate = Math.floor(Math.random() * 61) - 30 + "deg";
} }
} }

View file

@ -1,31 +0,0 @@
document.querySelectorAll('button').forEach(function(button) {
button.addEventListener('mouseenter', function() {
function random(max) {
return Math.random() * (max - 0) + 0;
}
var c = document.createDocumentFragment();
for (var i = 0; i < 100; i++) {
var styles = 'position: absolute;' +
'left: ' + (random(100)) + '30%;' + // Limit the position to within the button
'top: ' + (random(60)) + '30%;' + // Limit the position to within the button
'width: 3px; height: 6px; ' + // Increase size
'transform: translate(-50%, -50%) rotate(' + random(360) + 'deg);' +
'background: hsla(' + random(360) + ', 100%, 50%, 1);' +
'animation: bang 2000ms ease-out forwards;' +
'opacity: 0;' +
'z-index: 10;'; // Set a high z-index
var e = document.createElement("i");
e.style.cssText = styles;
c.appendChild(e);
}
button.appendChild(c);
setTimeout(() => {
// Create an array of the <i> elements to remove
let childrenToRemove = Array.from(button.querySelectorAll('i'));
// Remove each <i> element
childrenToRemove.forEach(child => button.removeChild(child));
}, 3000);
});
});

View file

@ -1,91 +0,0 @@
const gauge_url = "https://api.camp.interhacker.space/api/gauge"
const fundraising_url = "https://api.camp.interhacker.space/api/fundraising"
const gaugeMax = 200;
const fundraisingTotalMax = 20000;
async function getGauge() {
// // REMOVE WHEN SIGNUP FORM IS OPEN
// return 0;
try {
const response = await fetch(gauge_url);
if (!response.ok) {
throw new Error(`Response status: ${response.status}`);
}
const result = await response.json();
return result.gauge
} catch (error) {
console.error(error.message);
return null;
}
}
async function getFundraisingTotal() {
try {
const response = await fetch(fundraising_url);
if (!response.ok) {
throw new Error(`Response status: ${response.status}`);
}
const result = await response.json();
return result.total
} catch (error) {
console.error(error.message);
return null;
}
}
function percentRatio(ratio) {
return Math.floor(ratio * 100);
}
function setAboveHalf(ratio, element) {
if (ratio > 0.5) {
element.classList.remove("lessthanhalf");
element.classList.add("morethanhalf");
}
}
async function setGauge() {
const gauge = await getGauge();
if (gauge !== null) {
const gaugeBar = document.getElementById("gauge-bar");
const gaugeText = document.getElementById("gauge-text");
const gaugeRatio = gauge / gaugeMax;
gaugeBar.style.setProperty("width", percentRatio(gaugeRatio) + "%");
gaugeText.innerText = gauge + " / " + gaugeMax;
setAboveHalf(gaugeRatio, gaugeBar);
}
}
async function setFundraisingTotal() {
const fundraising_total = await getFundraisingTotal();
if (fundraising_total !== null) {
const fundraisingBar = document.getElementById("fundraising-bar");
const fundraisingText = document.getElementById("fundraising-text");
const fundraisingRatio = fundraising_total / fundraisingTotalMax;
fundraisingBar.style.setProperty("width", percentRatio(fundraisingRatio) + "%");
fundraisingText.innerText = percentRatio(fundraisingRatio) + " %";
setAboveHalf(fundraisingRatio, fundraisingBar);
}
}
async function setProgress() {
setGauge();
setFundraisingTotal();
}
document.addEventListener("DOMContentLoaded", setProgress);

View file

@ -1,5 +1,4 @@
<!DOCTYPE html> <html lang="en">
<html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -8,16 +7,14 @@
<link rel="stylesheet" href="css/poster.css"> <link rel="stylesheet" href="css/poster.css">
<link rel="stylesheet" href="css/drag.css"> <link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script> <script src="js/drag.js" defer></script>
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
<title>Camp Interhack 2026 Poster</title> <title>Camp Interhack 2026 Poster</title>
</head> </head>
<body> <body>
<nav> <nav>
<a href="index.html">maison</a> <a href="index.html">home</a>
<a href="guide.html">guide</a> <a href="guide.html" >guide</a>
<a href="poster.html" class="current">poster</a> <a href="poster.html" class="current">poster</a>
<a href="contact.html">contact</a>
</nav> </nav>
@ -32,11 +29,14 @@
<main> <main>
<img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt=""> <img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt=""> <img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt=""> <img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt=""> <img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
<h1> <h1>
<span class="draggable text">Camp</span> <span class="draggable text">Camp</span>