4f31e98079da139f7165b275f17dbabfd9c922dc
.upload-form et .welcome-modal déclarent `display: flex` en dur — une
déclaration `display` en CSS auteur passe TOUJOURS devant la règle
[hidden] { display: none } du navigateur (l'origine auteur l'emporte sur
l'origine user-agent dans la cascade, indépendamment de la spécificité).
Résultat concret :
- form.hidden = true/false (JS) ne masquait jamais réellement le
formulaire, resté affiché en permanence superposé aux états
chargement/erreur/succès depuis le commit initial (9b14619).
- welcomeModal.hidden = true (clic sur "C'est parti") mettait bien l'état
à jour mais la modale ne disparaissait jamais visuellement — signalé
par Kévin après test réel.
- Même bug sur .preview dans le générateur QR (src/admin/qrcode/).
Fix : règles explicites .upload-form[hidden], .welcome-modal[hidden],
.preview[hidden] { display: none }, spécificité plus élevée que la règle
display de base donc gagnent correctement la cascade. La galerie admin
n'avait pas ce bug (aucun display explicite sur ses éléments togglés).
photobooth-qr
Galerie photo événementielle par QR code : les invités d'un événement scannent un QR code, uploadent leurs photos depuis leur téléphone (sans compte, sans app), et l'organisateur récupère toutes les photos dans une galerie admin exportable en ZIP.
Objectif
- V1 : usage personnel (test grandeur nature sur mes propres événements).
- V2 / V3 : produit vendu à des clients (mariages, événementiel).
Stack
- Supabase — base de données Postgres + Storage.
- Front — HTML/CSS/JS léger, mobile-first, sans framework lourd.
- Pas d'app native, pas de compte invité.
Documentation
docs/cahier-des-charges.md— spécifications fonctionnelles.docs/architecture.md— schéma de flux général.docs/modele-donnees.md— schéma des tables Supabase.docs/rgpd.md— mention légale et politique de conservation.docs/decisions.md— journal des décisions actées.
Lancer en local
À compléter au fur et à mesure du développement.
# 1. Copier les variables d'environnement
cp .env.example .env
# puis remplir .env avec les vraies valeurs Supabase
# 2. Installer les dépendances (si un tooling est ajouté)
# npm install
# 3. Lancer le front en local
# (à définir : serveur statique simple, ex. npx serve src/)
Statut
Projet en phase de cadrage — structure et documentation en place, développement pas encore commencé.
Languages
JavaScript
25.8%
HTML
20.8%
CSS
20.5%
TypeScript
17.2%
PLpgSQL
15.7%