Compare commits

...
Sign in to create a new pull request.

105 commits

Author SHA1 Message Date
9b56967ff3 Merge pull request 'Ajout du bon lien vers la feuille des comptes' (#52) from 51-lien-feuille-de-compte into main
Reviewed-on: interhack/2026.camp.public.website#52
2026-03-30 09:07:36 +00:00
0d01d75539 Merge branch 'main' into 51-lien-feuille-de-compte 2026-03-26 17:39:55 +00:00
ed579ebcfb Merge pull request 'Ajout d'un fichier d'action pour CI pour générer l'image docker du site web automatiquement' (#32) from feat/ci-build into main
Reviewed-on: interhack/2026.camp.public.website#32
2026-03-24 18:29:18 +00:00
Hadrien
fa03cf79cc fix(ci): curl flags 2026-03-24 19:21:47 +01:00
Hadrien
738cde0f4a fix(ci): build guide.html 2026-03-24 19:16:19 +01:00
d8edb61bbf Ajout d'un fichier d'action pour CI
fix(ci): don't run on docker

Revert "fix(ci): don't run on docker"

This reverts commit 3e833a5960d7fdf01df031d81d9ae271e04c7671.

fix(ci): use podman

fix(ci): podman username opt

fix(ci): podman, defaulting on not stdin password

Revert "fix(ci): podman, defaulting on not stdin password"

This reverts commit a7a86ff25a24ebd8c56246cd2ece91fdff805f2e.
2026-03-24 19:03:31 +01:00
774137a9e0 Ajout du bon lien vers la feuille des comptes 2026-03-23 12:01:07 +01:00
a4fc96fdeb lien matrix dans section participants 2026-03-17 11:38:10 +01:00
3d72b8a4aa Merge pull request 'Ajout de nouveaux montants de don et d'une info sur les virements' (#50) from 36-boutons-dons into main
Reviewed-on: interhack/2026.camp.public.website#50
2026-03-03 09:58:45 +00:00
8355692aef Corrections de typos suite aux retours de @adag 2026-03-02 19:11:52 +01:00
6f8de1836e Ajout de nouveaux montants de don et d'une info sur les virements 2026-03-02 19:11:52 +01:00
8a4d86ade4 Merge pull request 'Ajouter un évènement en .ics sur le site pour que les gens puisse ajouter le Camp à leurs calendriers' (#49) from feat/22-ics-calendrier into main
Reviewed-on: interhack/2026.camp.public.website#49
2026-03-02 18:10:57 +00:00
9b45750378 Ajout de l'adresse postale sur suggestion de ada 2026-02-24 11:34:54 +01:00
6566d085a6 Correction d'une typo 2026-02-20 15:31:56 +01:00
2d232ae212 Correction des titres, centrage du lien vers l'évènement ics 2026-02-20 15:29:16 +01:00
1451d97a40 Ajout d'un lien vers un évènement .ics, mise en forme des titres 2026-02-20 15:29:00 +01:00
b6c0ed7a58 Ajout d'un évènement .ics 2026-02-20 15:28:50 +01:00
055eee34e0 modif texteexplicatif dons 2026-02-12 17:28:49 +01:00
9522700204 ajout d'un outil thunometre pour les dons lies aux inscriptions 2026-02-12 17:16:01 +01:00
7e3ddb83d0 Merge pull request 'retire le timestamp de la MAJ du guide du footer' (#44) from maj-guide-div into main
Reviewed-on: interhack/2026.camp.public.website#44
Reviewed-by: Nono <nono@noreply.interhacker.space>
Reviewed-by: kholah <kholah@alternatique.fr>
2026-02-12 13:19:07 +00:00
c65a063124 retire le timestamp de la MAJ du guide du footer 2026-02-12 13:18:53 +00:00
28c72626b7 Merge pull request 'Corrections d'erreurs sur la page principale' (#45) from feat/add-formulaire-inscription into main
Reviewed-on: interhack/2026.camp.public.website#45
Reviewed-by: kholah <kholah@alternatique.fr>
2026-02-12 13:18:40 +00:00
ffbc59d362 Corrections d'erreurs 2026-02-12 14:00:28 +01:00
e2619bbe91 Merge pull request 'Fix #30 : Mise en page des barres de progressions' (#31) from progression into main
Reviewed-on: interhack/2026.camp.public.website#31
Reviewed-by: VincentP <vincent-peugnet@riseup.net>
2026-02-12 12:37:23 +00:00
9847d7c527 Activer la barre de progression 2026-02-12 13:36:08 +01:00
744dd42c48 Ajout d'un grandient pour la barre de progression 2026-02-12 13:36:08 +01:00
9e7e781c36 Mise en page du HTML des barres de progressions 2026-02-12 13:36:05 +01:00
ce0020b3ff Ajout d'un CSS pour centrer les barres de progrès 2026-02-12 13:35:36 +01:00
1a40be3526 Merge pull request 'Ajout d'un lien vers le formulaire d'inscription' (#42) from feat/add-formulaire-inscription into main
Reviewed-on: interhack/2026.camp.public.website#42
Reviewed-by: kholah <kholah@alternatique.fr>
2026-02-12 12:30:55 +00:00
d8c5d1d576 Ajout d'un lien vers le formulaire d'inscription 2026-02-09 11:53:12 +01:00
a3c6e8893f Merge pull request 'Repasser la jauge attendu à 200 personnes' (#39) from 34-jauge-200 into main
Reviewed-on: interhack/2026.camp.public.website#39
2026-02-03 12:28:55 +00:00
a64f91606a Repasser la jauge attendu à 200 personnes 2026-02-03 12:28:45 +00:00
e9dcacf319 Merge pull request 'Ajout de la section des dons' (#40) from 36-boutons-dons into main
Reviewed-on: interhack/2026.camp.public.website#40
2026-02-03 12:28:22 +00:00
fc3a5eb9d1 Ajout d'une option pour les dons 2026-01-30 18:27:56 +01:00
fa058dadbd Ajout d'un curseur sur les boutons 2026-01-30 18:27:45 +01:00
40b2b2fcf7 Change la façon dont les feux d'artifices apparaissent 2026-01-30 18:18:46 +01:00
c47bd42d46 Ajout d'un effet pour le passage sur les boutons de don 2026-01-30 12:35:15 +01:00
f7c88f2a69 Ajout du CSS des dons 2026-01-30 12:35:09 +01:00
e2b073704d Ajout de la section des dons 2026-01-30 12:34:52 +01:00
Pierre de Lacroix
aa404a10ff
add contact page to container image 2026-01-29 16:37:47 +01:00
473a84cd3e Merge pull request 'Ajout de la page contact' (#28) from fougere/2026.camp.public.website:feat/contact-page into main
Reviewed-on: interhack/2026.camp.public.website#28
Reviewed-by: Nono <nono@noreply.interhacker.space>
2026-01-29 14:11:32 +00:00
b2bedeb068 Merge branch 'main' into feat/contact-page 2026-01-29 14:11:05 +00:00
4309e5ae21 Merge pull request 'Add background to titles for better contrast' (#29) from titles-contrast into main
Reviewed-on: interhack/2026.camp.public.website#29
Reviewed-by: Nono <nono@noreply.interhacker.space>
2026-01-27 22:29:33 +00:00
072905184d Merge pull request 'Ajout du logo de la French Data Network' (#21) from feat/add-logos into main
Reviewed-on: interhack/2026.camp.public.website#21
Reviewed-by: Fougère <folgere@tutamail.com>
2026-01-27 22:29:08 +00:00
faac34187b Merge branch 'main' into feat/add-logos 2026-01-27 19:03:17 +00:00
0143d7a661 Correction du lien du matrix 2026-01-27 19:50:51 +01:00
Pierre de Lacroix
8fc42a390b
add background to titles for better contrast 2026-01-25 13:59:58 +01:00
Pierre de Lacroix
bfa57e3fc8
add aria-hidden to stickers 2026-01-25 13:32:08 +01:00
Pierre de Lacroix
fc5ae9031c
fix invisible links (closes #26) 2026-01-25 13:02:56 +01:00
1f72a3a976 Ajout de la page contact 2026-01-24 15:15:53 +01:00
2ae53d4997 Merge pull request 'add progression system' (#25) from progression into main
Reviewed-on: interhack/2026.camp.public.website#25
2026-01-22 23:04:39 +00:00
Pierre de Lacroix
e18381fc17
plug progression system to camp-api 2026-01-23 00:03:47 +01:00
d3d1672b2f add progression system 2026-01-22 19:45:13 +01:00
6c26735680 Merge pull request '- Modification des tailles et espacements des titres' (#23) from fougere/2026.camp.public.website:fix/guide-style into main
Reviewed-on: interhack/2026.camp.public.website#23
Reviewed-by: Nono <nono@noreply.interhacker.space>
2026-01-22 11:21:32 +00:00
b9fbe5f681 Ajout du doctype sur index.html pour corriger l'espacement entre titre principal et le sous-titre 2026-01-20 20:00:19 +01:00
6ea6888c46 Correction du centrage du titre des participant.e.s 2026-01-20 19:25:12 +01:00
0c22455783 - Modification des tailles et espacements des titres
- Réduction de la taille des légendes d'images
- Ajout d'un fond derrière les balises <code> pour mettre en valeur le matrix
- Masquage des stickers quand la largeur de la fenêtre est inférieure à 500px (mobile)
2026-01-17 23:40:17 +01:00
ef2193ceae Ajout du logo de la French Data Network 2026-01-13 12:43:08 +01:00
e7d4435002 Merge pull request 'Ajout du logo du LoL' (#20) from feat/add-logos into main
Reviewed-on: interhack/2026.camp.public.website#20
Reviewed-by: VincentP <vincent-peugnet@riseup.net>
2026-01-06 13:21:06 +00:00
d8af8caace Ajout du LoL 2026-01-06 13:39:02 +01:00
c7dd800859 Ajout du logo du LoL 2026-01-06 13:36:31 +01:00
651b726862 Merge pull request 'Mise à jour du nouveau design :D' (#16) from feat/new-design into main
Reviewed-on: interhack/2026.camp.public.website#16
Reviewed-by: VincentP <vincent-peugnet@riseup.net>
2025-12-29 16:08:26 +00:00
131f0ecdb6 Remove old css asset 2025-12-29 17:07:00 +01:00
f5f4e6d8aa Remove call to guide.css that doesn't exists anymore 2025-12-29 16:33:27 +01:00
ee9dd6bdc4 empêche la page de déborder horizontalement 2025-12-28 15:54:16 +01:00
378d7521ed ajuste la taille de la section contenant le texte
réduit la largeur max pour éviter d'avoir des super longues lignes à lire.
réduit un peu la police pour que ça soit moins énorme.
2025-12-28 15:53:23 +01:00
e2ae37d9f9 Ajustements suite au retour de Vincent
- taille de la police des logos
- Commentaires en trop
- Classes liées à la suppression des stickers
2025-12-23 18:45:37 +01:00
aa94638ac8 Suppression de la classe sticker 2025-12-23 18:45:20 +01:00
63af8d89f5 retire l'ombre et la transparence des nav, footer et aside
c'était à l'époque du papier, maintenant c'est caduc
2025-12-20 17:45:05 +01:00
6d108c74e5 recentre les liens du footer
la marge à droite marchait pour le nav, mais pas pour le footer où les liens étaient décallés
2025-12-20 17:39:03 +01:00
6fb923d8ae empêche les stickers de dépasser à droite
suite à l'augmentation de leur taille
2025-12-20 17:33:13 +01:00
84cd5dc2f7 maison partout 2025-12-20 17:18:13 +01:00
f04afb1b5a répare l'affichage du fond du poster 2025-12-20 17:12:47 +01:00
6ff0b2ef88 Adjust z-indexes and add nice button class 2025-12-19 17:07:02 +01:00
cebb060352 Add favicon 2025-12-19 17:06:50 +01:00
8b022848a6 Add padding for nav 2025-12-19 12:30:11 +01:00
b967d8c0b5 Update HTML pages 2025-12-19 12:28:11 +01:00
8cd02cdb76 Update CSS 2025-12-19 12:28:01 +01:00
9b307813d6 Smaller step size, add random rotation, remove z-index increments 2025-12-19 12:27:07 +01:00
bbf60b8ae8 organize assets folder 2025-12-18 18:37:14 +01:00
8481dab297 use new stickers 2025-12-18 18:29:42 +01:00
4e0dd99eaa Update assets 2025-12-18 17:48:37 +01:00
ef8e90eeb0 Merge pull request 'fix menu order' (#17) from fix/menu-order into main
Reviewed-on: interhack/2026.camp.public.website#17
Reviewed-by: Nono <nono@noreply.interhacker.space>
2025-12-18 16:48:24 +00:00
e598dd9a0e fix menu order 2025-12-18 17:46:53 +01:00
09eaf52d8d Merge pull request 'Ajout d'une page d'information pratiques' (#11) from feat/infos-pratiques into main
Reviewed-on: interhack/2026.camp.public.website#11
Reviewed-by: lateralus23 <pierrell@gmx.com>
2025-12-18 16:26:44 +00:00
eb9e3a510a Remove guide.html 2025-12-18 17:24:27 +01:00
2201f44165 Add gitignore 2025-12-18 17:24:08 +01:00
30a4d20c62 Update commetn 2025-12-18 17:23:44 +01:00
4af3c1ae27 Update README 2025-12-18 17:21:31 +01:00
cc3a26c787 Ajout du fichier guide.html généré dans l'image Docker 2025-12-18 17:19:51 +01:00
c18d25924a Update README 2025-12-18 17:02:38 +01:00
389b4d4c82 Ajout d'un avertissement. 2025-12-18 17:02:38 +01:00
95a4dee4f0 Remove patch file 2025-12-18 17:02:38 +01:00
838d8ffa9a Ajout d'un CSS pour les photos de l'antenne 2025-12-18 17:02:38 +01:00
f124120eb6 Suppression de l'ancienne page d'infos pratiques 2025-12-18 17:02:38 +01:00
f3e4293ff5 Application du patch de EpicKiwi 2025-12-18 17:02:38 +01:00
774f9b9218 Ajout d'une page d'information pratiques 2025-12-18 17:02:38 +01:00
79964790f0 Merge pull request 'Mise à jour du poster' (#12) from feat/update-poster into main
Reviewed-on: interhack/2026.camp.public.website#12
Reviewed-by: VincentP <vincent-peugnet@riseup.net>
2025-12-18 15:51:17 +00:00
a2d9c576a3 Update poster 2025-12-18 16:50:18 +01:00
106122bf61 Mise à jour du poster 2025-12-18 16:46:47 +01:00
cbbd772edb Merge pull request 'Ajouter les logos et liens vers les hackerspace / hackergroups participant·es' (#9) from feat/logo-et-liens into main
Reviewed-on: interhack/2026.camp.public.website#9
2025-12-18 15:45:16 +00:00
8ae67f3474 Update lien bib 2025-12-18 16:42:58 +01:00
99408db356 Ajout de datapaulette 2025-12-18 15:21:04 +00:00
a38c762d88 Ajout des logos des hackerspaces participants 2025-12-18 15:21:04 +00:00
51bb3e2b74 Merge pull request 'Ajustements sur le CSS' (#10) from feat/css-ajustements into main
Reviewed-on: interhack/2026.camp.public.website#10
2025-12-11 16:49:52 +00:00
47 changed files with 889 additions and 117 deletions

View file

@ -0,0 +1,32 @@
on: [push]
jobs:
build:
runs-on: docker
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Pandoc
run: |
apt-get update
apt-get install -y pandoc
- name: Generate guide.html
run: bash update-guide.sh
- name: Install Podman
run: |
apt-get update
apt-get install -y podman
- name: Podman Login
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | podman login git.interhacker.space --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build Container Image
run: |
podman build -t git.interhacker.space/interhack/camp-website-2026:latest .
- name: Push Container Image
run: |
podman push git.interhacker.space/interhack/camp-website-2026:latest

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
guide.html

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 /usr/share/nginx/html COPY index.html poster.html guide.html contact.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

View file

@ -1,6 +1,28 @@
# Interhack Camp Website 2026 # Interhack Camp Website 2026
## Build the Docker image ## How to deploy :
### generate statuses PDF
Statuses are stored in [this online pad](https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw).
PDF can be generated thanks to `pandoc` and the good old `curl` this way:
```sh
curl -s https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw/download | pandoc -V geometry:margin=3cm -o assets/Camp-Interhack_Statuts.pdf
```
### Generation de la page Guide.
La page Guide est générée depuis un Hedgedocs, en markdown, via le fichier update-guide.sh qui utilise le fichier guide.template.html. Le contenu de la page est donc un HTML basique in fine.
```sh
bash update-guide.sh
```
### Build the Docker image
Please generate
We use Docker for deploying on the Interhack infra. Until we have a proper CI, we need to build manually. We use Docker for deploying on the Interhack infra. Until we have a proper CI, we need to build manually.
@ -28,13 +50,3 @@ docker push git.interhacker.space/interhack/camp-website-2026:latest
The pull process is triggered every five minutes. The pull process is triggered every five minutes.
So you may wait at least this amount of time before the website is up-to-date! So you may wait at least this amount of time before the website is up-to-date!
(and Ctrl + Shift + R is useful to nuke cache) (and Ctrl + Shift + R is useful to nuke cache)
## generate statuses PDF
Statuses are stored in [this online pad](https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw).
PDF can be generated thanks to `pandoc` and the good old `curl` this way:
```sh
curl -s https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw/download | pandoc -V geometry:margin=3cm -o assets/Camp-Interhack_Statuts.pdf
```

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

39
assets/camp-interhack.ics Normal file
View file

@ -0,0 +1,39 @@
BEGIN:VCALENDAR
X-LOTUS-CHARSET:UTF-8
VERSION:2.0
PRODID:ZMS-Berlin
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
METHOD:REQUEST
BEGIN:VEVENT
UID:ics.terminsysteme.de1769434840
DTSTAMP:20260126T144040
CLASS:PUBLIC
DTSTART;TZID=Europe/Berlin:20260702T100000
DTEND;TZID=Europe/Berlin:20260705T230000
LOCATION:15 route de Saint Dolay 44530 Sévérac | 47.5437595, -2.0916116
SUMMARY:Camp Interhack
DESCRIPTION: Le Camp Interhack 2026 est un événement festif de hacking ! Le hack cest le détournement des machines, des pratiques et des systèmes (au sens large) qui nous entourent. De la musique à la couture en passant par linformatique et léléctronique mais aussi les structure sociales, les institutions et les organisations politiques, venez hacker le monde avec nous. https://camp.interhacker.space \n\n
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT1440M
DESCRIPTION:Erinnerung
END:VALARM
END:VEVENT
END:VCALENDAR

Binary file not shown.

BIN
assets/fonts/segoesc.ttf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
assets/logos/fdn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
assets/logos/fuz.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

16
assets/logos/hackstub.svg Normal file
View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" height="789.98999" width="898.789" id="logo" sodipodi:docname="logo.svg" inkscape:version="0.92.1 r15371">
<metadata id="metadata41">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs39"/>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1051" id="namedview37" showgrid="false" inkscape:snap-page="true" inkscape:snap-bbox="true" inkscape:bbox-nodes="true" inkscape:zoom="0.855" inkscape:cx="500" inkscape:cy="406.43275" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="logo"/>
<style type="text/css" id="style2"><![CDATA[ polygon { fill:#ffffff; stroke-width:0; } ]]></style>
<path d="M 435.52926,-1.1488281e-4 404.34957,17.999885 V 133.40419 l -137.20703,80.65234 -0.10351,-0.0566 -15.24805,9.08203 -15.58203,9.1582 v 0.11915 l -0.0996,0.0605 0.23633,17.40039 0.14453,18.41992 0.10742,0.0605 0.002,0.11914 15.58789,8.7207 15.6211,8.85938 0.10351,-0.0605 136.4375,76.33985 v 80.66015 l -137.24219,81.09961 -0.0684,-0.0391 -17.12891,10.20117 -13.74024,8.11914 v 0.0625 l -0.0605,0.0371 0.25,18.31836 0.17969,17.57227 0.0586,0.0332 0.002,0.0762 15.86524,8.87696 15.42383,8.70312 0.0644,-0.0371 105.50586,59.0332 -135.43946,81.58399 0.66993,36 31.50976,17.41015 181.21875,-109.16015 0.14258,-0.084 15.14838,-8.74603 v -0.27734 l 0.24023,-0.14258 -0.002,-0.10547 0.0918,-0.0547 -0.33008,-17.70508 v -175.2012 l 64.91992,-38.36133 136.80078,79.79883 v 0.18945 l 15.69922,8.96876 15.24023,8.89062 0.16016,-0.0918 0.16016,0.0918 15.23437,-8.88672 15.70508,-8.97266 v -0.18945 l 137.0606,-79.95117 31.09961,-18.14062 -0.16016,-36 -167.91992,-95.95118 v -115.9082 l -31.17969,-18 -31.17969,18 v 116.09375 l -0.0801,0.0469 0.0801,18 v 139.5781 l -105.82617,-61.73242 -0.004,-0.29688 -15.45898,-8.72265 -15.37109,-8.9668 -0.25782,0.14844 -0.26172,-0.14844 -15.14843,8.95117 -15.5918,8.90821 -0.002,0.30664 -33.71875,19.92578 v -44.36914 l 0.24023,-0.14258 -0.24023,-17.64063 V 209.48622 l 135.12114,76.51367 31.0293,-18.25977 -0.30078,-36 -138.76563,-78.57812 101.05664,-59.402345 -0.28125,-36 -31.31836,-17.75977 -96.54101,56.74805 V 17.999885 Z M 404.34957,205.73817 v 85.08984 l -74.16211,-41.49609 z m -372.820304,26.26172 -31.17968777,18 V 383.85731 L -3.0767578e-5,401.36903 0.34957823,401.57997 v 194.41992 l 31.17968777,18 31.179686,-18 V 402.41786 l 75.640618,-41.65039 v 123.65625 l -0.35937,0.21679 0.35937,17.51954 v 17.83984 l 0.3711,0.21289 0.008,0.41797 15.30664,8.42383 15.49414,8.94531 0.36914,-0.21289 0.37109,0.20312 15.10938,-9.14062 15.32989,-8.84961 v -0.42383 l 146.57422,-88.66797 15.21679,-8.55859 0.008,-0.65039 0.56054,-0.33984 -0.35742,-17.45704 0.19922,-17.54296 -0.56641,-0.33594 -0.0137,-0.6543 -15.30078,-8.42187 -146.32031,-86.71289 v -0.23438 l -15.42188,-8.9043 -15.02734,-9.08593 -0.1582,0.0859 -0.16211,-0.0957 -0.20704,0.11719 -0.20312,-0.11719 -15.45898,8.92578 -91.361328,50.3086 v -81.23435 z m 699.179684,129.72852 74.46679,42.55078 -74.46679,43.43945 z m -530,0.98828 70.1289,41.55859 -70.1289,42.42383 z m 203.64062,152.64648 v 85.46484 l -74.28906,-41.5664 z" id="polygon4" style="fill:#ffffff;fill-opacity:1" inkscape:connector-curvature="0"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
assets/logos/lebib.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
assets/logos/lqdn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

BIN
assets/stickers/ecran.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

64
contact.html Normal file
View file

@ -0,0 +1,64 @@
<!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,62 +1,143 @@
/* Primary Font */
@font-face { @font-face {
font-family: Banquise; font-family: MonTrappist;
src: url(../assets/Banquise-Regular.woff); src: url(../assets/fonts/MonTrappist-Black.woff);
} }
/* Secondary Font */
@font-face { @font-face {
font-family: Dymo; font-family: Segoesc;
src: url(../assets/Dymo.ttf); src: url(../assets/fonts/segoesc.ttf);
} }
@font-face { :root {
font-family: Erika; --primary-bg-color: black; /* global scope */
src: url(../assets/Erika-Type.ttf); --accent-violet: #8800FF;
--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 {
max-width: 100%;
} }
a { a {
text-decoration: none; color: inherit;
}
nav a, footer a {
color: black; color: black;
text-decoration: none;
} }
main {
/* background-color: #413f43;*/
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: Banquise; font-family: MonTrappist;
color: white; color: white;
z-index: 2; z-index: 20;
}
main h1 span, main h2 span, main h3 {
background-color: #000000b8;
padding: auto;
} }
main h1 { main h1 {
font-size: 8em; position: relative;
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: center;
}
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: #d7d7d7; background: var(--accent-violet);
background: url(../assets/paper.avif);
padding: 5px; padding: 5px;
font-family: Erika; font-family: MonTrappist;
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;
} }
nav a.current { nav a.current {
@ -67,17 +148,95 @@ footer a:hover, nav a:hover {
transform: rotate(-2deg); transform: rotate(-2deg);
} }
footer { footer {
display: block; display: block;
text-align: center; text-align: center;
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
align-items: end;
} }
@media (max-width: 600px) { @media (max-width: 600px) {
footer { footer {
flex-direction: column; flex-direction: column;
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;
}
.center {
display: flex;
justify-content: center;
align-items: center;
}
@media (max-width: 500px) {
/* Hide stickers on mobile */
.randomStart {
display: none;
} }
} }

15
css/contact.css Normal file
View file

@ -0,0 +1,15 @@
#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: 150px; max-width: 200px;
max-height: 150px; max-height: 200px;
position: absolute; position: absolute;
filter: saturate(2); z-index: 1;
} }

View file

@ -1,43 +1,123 @@
main {
display: block;
color: black;
overflow: hidden;
width: 100%;
min-height: 1000px;
}
main h1 { .logo {
width: 100%;
height: 100%;
max-width: 7em ;
padding: 0.2em;
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
margin: 1em;
z-index: 2;
position: relative; position: relative;
text-align: center;
margin: auto;
width: 100%;
font-size: clamp(4em, 14vw, 8em);
margin-top: 5%;
} }
main h2 { /* Section des participants */
margin: 4% auto;
text-align: center; .participants {
font-size: clamp(2.5em, 5vw, 4em); display: flex;
justify-content: center;
align-items: center;
height: 200px;
} }
main p { #participe > div.txt {
margin: 1%; display: flex;
padding: 1%; flex-direction: row;
background: white; flex-wrap: wrap;
background: url(../assets/notebook.jpg); justify-content: space-evenly;
/* border: solid 1px; */
opacity: 0.92;
display: inline-block;
} }
section { #participe p {
max-width: 1400px;
font-size: 1.5em;
text-align: center; text-align: center;
font-family: Erika; }
margin: auto;
margin-bottom: 100px;
columns: 560px; /* Section des dons */
padding: 2%;
#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,7 +4,6 @@ body {
} }
aside { aside {
background: url(../assets/notebook.jpg);
width: fit-content; width: fit-content;
margin-top: 10px; margin-top: 10px;
} }
@ -16,6 +15,7 @@ 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 {

80
guide.template.html Normal file
View file

@ -0,0 +1,80 @@
<!--
ATTENTION : CETTE PAGE EST UN TEMPLATE, UTILISÉ PAR LE FICHIER UPDATE-GUIDE.SH
NE PAS MODIFIER À LA MAIN POUR LE CONTENUE, ÇA SERA ÉCRASÉ.
BISOUS
-->
<!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/drag.css">
<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>
</head>
<body id="page-guide">
<nav>
<a href="index.html">maison</a>
<a href="guide.html" class="current">guide</a>
<a href="poster.html">poster</a>
<a href="contact.html">contact</a>
</nav>
<main>
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
<h1>
<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 -->
</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>
<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>

0
guide.tmp.md Normal file
View file

View file

@ -1,4 +1,5 @@
<html lang="en"> <!DOCTYPE html>
<html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -7,37 +8,35 @@
<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>
<title>Camp Interhack 2026</title> <script src="js/progress.js" defer></script>
<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">home</a> <a href="index.html" class="current">maison</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" src="assets/stickers/arbre-hetre.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" 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" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt=""> <img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" 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 class="draggable">Camp</span> <span id="camp" class="draggable">camp</span>
<span class="draggable">Interhack</span> <br>
<span class="draggable">2026</span> <span id="interhack" class="draggable">interhack</span>
</h1> </h1>
<h2> <h2>
@ -83,6 +82,110 @@
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>
<p class="center">
<a href="assets/camp-interhack.ics">📅 Ajouter l'évènement à son calendrier (.ics)</a>
</p>
</section>
<section id="progress">
<h3>
<span>Où en est-on ?</span>
</h3>
<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>
<section id="don">
<h3>
<span>Faire un don</span>
</h3>
<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>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c9959-fa30-7eb5-add2-91ce73d6e5eb?resource_id=019c9959-fa31-7e72-b2c2-c5f5c9b7c398"><button>150€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995d-49cf-72c0-8197-0b279947316c?resource_id=019c995d-49cf-7a7b-aee0-8a2742135921"><button>200€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995e-92e1-77cf-a530-4212996c2e6d?resource_id=019c995e-92e1-7d2e-bb19-513b48ac4645"><button>250€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-4754-7924-b6db-805a35c6ab0b?resource_id=019c995f-4755-78e5-989c-964ada8e12a1"><button>310€</button></a>
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-ecad-79c0-8c78-4144e9af77c8?resource_id=019c995f-ecae-7a72-82bb-6274f4a9d2e2"><button>550€</button></a>
</div>
<hr>
<div>
<p>Si vous préférez faire un virement, demandez-nous l'IBAN sur <code>orga [arobase] camp.interhacker.space</code>. Nous payons <a href="https://www.mollie.com/fr/pricing"></a>autour de ~2% de frais</a> lors des paiements par carte bancaire.</p>
</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/camp/fCKWivmj4bCX/Budget/p/2">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>
<section id="participe">
<h3>
<span>Iels y participent</span>
</h3>
<div class="participants">
<a href="https://lqdn.fr">
<img class="logo" src="assets/logos/lqdn.png" alt="La Quadrature Du Net">
</a>
<a href="https://datapaulette.org/">
<img class="logo" src="assets/logos/datapaulette.jpg" alt="Datapaulette">
</a>
<a href="https://lebib.org"><img class="logo" src="assets/logos/lebib.png" alt="Le Bib Net"></a>
</div>
<div class="participants">
<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>
<div class="txt">
<p>et bien d'autres !<br> Rejoignez le canal Matrix sur <code>#interhack:matrix.interhacker.space</code></p>
</div>
</section> </section>
</main> </main>
<footer> <footer>
@ -101,4 +204,5 @@
</div> </div>
</footer> </footer>
</body> </body>
</html> </html>

View file

@ -1,5 +1,6 @@
const stepSize = 100; const stepSize = 1;
const main = document.querySelector('main'); const main = document.querySelector('main');
const draggables = document.querySelectorAll(".draggable"); const draggables = document.querySelectorAll(".draggable");
const randomStarts = document.querySelectorAll(".randomStart"); const randomStarts = document.querySelectorAll(".randomStart");
@ -19,8 +20,6 @@ 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;
@ -63,13 +62,14 @@ function activateDraggables() {
} }
function randomizeDragables() { function randomizeDragables() {
maxX = main.offsetWidth - 150; maxX = main.offsetWidth - 250;
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";
} }
} }

31
js/pop.js Normal file
View file

@ -0,0 +1,31 @@
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);
});
});

91
js/progress.js Normal file
View file

@ -0,0 +1,91 @@
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,4 +1,5 @@
<html lang="en"> <!DOCTYPE html>
<html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -7,34 +8,56 @@
<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">home</a> <a href="index.html">maison</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>
<aside> <aside>
<a href="javascript:if(window.print)window.print()" class="print">🖨️ imprimer</a> <a href="javascript:if(window.print)window.print()" class="print">🖨️ imprimer</a>
<section>
<p>
Vous pouvez arranger vous mêmes votre affiche en bougeant les informations et les autocollants !
</p>
</section>
</aside> </aside>
<main> <main>
<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/ecran.png" alt="">
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt=""> <img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt=""> <img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt=""> <img class="draggable randomStart" src="assets/stickers/tracteur.png" 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>
<span class="draggable text">Interhack</span> <span class="draggable text">Interhack</span>
<span class="draggable">2 au 5 Juillet</span>
<span class="draggable">2026</span> <span class="draggable">2026</span>
</h1> </h1>
<h2>
<span class="draggable">à l'Antenne</span>
<span class="draggable">15 route de Saint Dolay 44530 Sévérac</span>
</h2>
<h2>
<span class="draggable">camp.interhacker.space</span>
</h2>
</main> </main>
<aside>Malheureusement, ce générateur ne fonctionne pas sur mobile pour le moment. <br> <a href="https://git.interhacker.space/interhack/2026.camp.public.website/issues/6">Aidez-nous à le réparer ?</a></aside>
</body> </body>
</html> </html>

25
update-guide.sh Executable file
View file

@ -0,0 +1,25 @@
#!/bin/bash
GUIDE_EDGEDOC_URL="https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA"
DATE_CMD="date --utc '+%d/%m/%Y %H:%I UTC'"
echo "Mise a jour du guide dans guide.html a partir du edgedoc"
echo "$GUIDE_EDGEDOC_URL"
set -e
curl --silent --fail "$GUIDE_EDGEDOC_URL/download" > guide.tmp.md
pandoc --from markdown --to html guide.tmp.md > guide.tmp.html
cat guide.template.html \
| sed '/EDGEDOC/{
s/<!-- *EDGEDOC[^-]*-->//;
r guide.tmp.html
}' \
| sed -e "/DATE/{
s/<!-- *DATE[^-]*-->//;
n;
e $DATE_CMD
}" \
> guide.html
rm guide.tmp.md guide.tmp.html