Commit Graph

4 Commits

Author SHA1 Message Date
Valentin ROBIN a807c4c85e Nouveau logo L'Agora (favicon, header, login, signup, classement)
Remplace le laurier dessiné à la main par le logo fourni (badge circulaire
« L'Agora ») comme identité visuelle principale : favicon (icon.png),
icône iOS (apple-icon.png, remplace icon.svg), marque du header, page
login, page signup, et grand format en en-tête du classement.

- components/agora-logo.tsx : composant partagé, `unoptimized` sur
  next/image — l'optimiseur d'images de Next.js aplatit systématiquement
  la transparence de ce fichier (PNG ou WebP) lors du redimensionnement
  à la volée, donc on sert l'asset statique tel quel.
- Asset retravaillé (public/logo-agora.webp) : le fichier fourni n'avait
  pas de vraie transparence (damier dessiné en dur, y compris dans les
  zones "vides" de l'illustration) et le cercle était mal centré dans
  son canevas carré (anneau doré rogné en haut). Recadré, recentré avec
  une marge uniforme, fond extérieur en transparence réelle, fond
  intérieur aplati en blanc crème (#F4ECD8, le token "marble" existant)
  pour se fondre dans les cartes marbre de l'app.
- Header : bandeau renommé « LE TRIBUNAL » → « L'AGORA » (à gauche) ;
  les icônes du menu déroulant restent inchangées (icônes distinctes
  par page, nécessaires pour s'y retrouver).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 18:07:19 +02:00
Valentin ROBIN 5cb19caec2 Boutons de points compacts unifiés + page Le Calendrier des Dieux
Boutons de validation des points :
- Les icônes ✓/✕ étaient trop grandes (40px) et dupliquées entre le
  podium et le reste du classement. Factorisées dans un composant
  partagé PointsConfirmControls (32px, icône 16px, olive/oxblood,
  aria-label + tooltip), utilisé à l'identique par JudgePointControls
  sur le podium ET dans la liste.

Nouvelle page /calendrier — "Le Calendrier des Dieux" :
- Modèle de données : days (date, dieu, domaine), events (titre, type,
  heure, lieu, created_by forcé par trigger), settings (ligne unique,
  date du Tribunal). RLS : lecture ouverte à tout authentifié, écriture
  (insert/update/delete) réservée au rôle judge par policies dédiées —
  jamais un simple masquage des boutons côté client.
- 8 préréglages de divinités (Dionysos, Arès, Athéna, Aphrodite, Hermès,
  Poséidon, Hadès, Zeus) avec domaine, couleur d'accent et emblème SVG ;
  un Archonte peut aussi saisir une divinité libre.
- Bannière avec compte à rebours avant la date du Tribunal, éditable par
  les Archontes. Journées en cartes (jour courant mis en évidence,
  jours passés estompés, jour du Tribunal en accent oxblood), liste
  d'événements avec icône par type (activité/défi/épreuve/tribunal).
  Mode édition (ajout/modification/suppression avec confirmation)
  réservé aux Archontes. Realtime sur les trois tables.
- Ajouté au menu déroulant du header, route protégée par le proxy.

Rendu des icônes dynamiques (GodEmblem, EventTypeIcon) via branchement
JSX explicite plutôt que variable de composant résolue à l'exécution,
pour respecter react-hooks/static-components.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 21:13:53 +02:00
Valentin ROBIN 0ea6a36189 Corrections UI, refonte podium, page Roulette, navigation en menu unique
Upload de photo (signup + profil) :
- Remplace le contrôle natif du navigateur par un composant entièrement
  en français : input masqué (sr-only) déclenché par un vrai bouton
  (icône appareil photo + « Choisir une photo »/« Changer ma photo »),
  nom du fichier sélectionné affiché (tronqué) avec une croix pour le
  retirer, « Aucune photo sélectionnée » sinon.

Header : plus jamais masqué sur mobile
- "LE TRIBUNAL" et le chip utilisateur (photo + pseudo + points) restent
  visibles à toutes les tailles, y compris 320px — tailles de police et
  troncature au lieu de `hidden`. Vérifié sans débordement horizontal à
  320/375/414/768px.

Navigation : tout dans le menu déroulant
- Retire les onglets du header (ne garde que logo + chip). Le menu
  déroulant du chip contient désormais toutes les pages (Le Classement,
  La Roulette, Le Crieur, Mon profil, Le Conseil des Archontes si juge)
  avec une icône chacune (components/icons.tsx), fermeture au clic
  extérieur et à Échap, entrée de la page courante surlignée,
  déconnexion séparée en oxblood.

Podium :
- Contrôles de points en icônes ✓/✕ rondes (40×40, olive/oxblood) sous
  la carte du membre, aria-label + tooltip — uniquement sur le podium,
  le reste du classement garde ses contrôles textuels.
- Refonte visuelle : socles marbre veiné avec arête lumineuse
  (.pedestal-marble), chiffres romains gravés (toRoman(), .engraved),
  couronne de laurier + halo doré sur le 1er, accents argent/bronze sur
  2e/3e, points en gros chiffres dorés, animation d'entrée décalée par
  socle (~600ms, respecte prefers-reduced-motion).

Nouvelle page /roulette :
- Tirage aléatoire uniforme calculé avant l'animation (le random ne sert
  qu'à choisir, l'animation ne fait que le mettre en scène). Carrousel
  horizontal des avatars avec décélération (cubic-bezier long), repère
  central doré, révélation finale (couronne + halo + zoom) avec le
  pseudo en Cinzel. Filtre Citoyens/tous, bouton Rejouer, dernier élu
  affiché, prefers-reduced-motion affiche le résultat directement.
  Route protégée par le proxy comme les autres pages.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 20:44:32 +02:00
Valentin ROBIN 9f4e58019b Refonte visuelle : direction artistique Grèce antique
Remplace le thème générique (tokens navy/gold/ivory re-thématisables par
édition) par une direction artistique fixe et codée en dur : tribunal
égéen de nuit — marbre, or, mer sombre, sceaux de cire.

Fondations (globals.css, layout.tsx) :
- Polices next/font/google : Cinzel (titres, tracking large), Cormorant
  Garamond (citations italiques), Manrope (interface).
- Nouveaux tokens couleur : ink/ink-2 (fond mer de nuit), marble/marble-2
  (surfaces claires), gold/gold-bright (accents), oxblood (blâmes/erreurs),
  olive (honneurs/succès), sea, text-marble/text-mut (texte sur marbre —
  jamais de doré en texte courant, contraste insuffisant).
- Classes utilitaires : .marble-surface (texture par dégradés, pas
  d'image de bruit), .meander-divider (frise à méandre grecque en SVG
  data-URI).

Composants d'ornement (aucune image bitmap) :
- components/laurel-wreath.tsx : couronne de laurier calculée par
  trigonométrie (deux arcs symétriques de feuilles), réutilisée en logo,
  favicon (icon.svg régénéré avec les mêmes coordonnées) et couronne du
  rang 1 du podium.
- components/diamond-divider.tsx : séparateur ◆ avec filets dégradés.

Header global (components/header.tsx, remplace nav-bar.tsx) :
- Logo laurier + "LE TRIBUNAL" à gauche (cliquable vers le leaderboard).
- Chip utilisateur à droite : avatar (bordure dorée), pseudo, badge de
  rôle (Archonte/Citoyen), points de gloire, menu déroulant (Mon profil,
  Le Conseil des Archontes si juge, Se déconnecter).
- Onglets L'Agora / Le Crieur, frise à méandre en séparateur.
- Responsive : nom du site et pseudo masqués sous le breakpoint sm,
  l'avatar reste toujours visible.

Vocabulaire diégétique (toujours avec le terme fonctionnel à côté) :
juges → Archontes, membres → Citoyens, leaderboard → L'Agora, journal →
Le Crieur (décrets avec sceau de cire oxblood), points positifs/négatifs
→ Honneurs/Blâmes, points → gloires, section admin → Le Conseil des
Archontes.

Avatar : bordure dorée, couleur de fallback dérivée d'un hash du pseudo
(au lieu d'une couleur fixe).

Toutes les pages (login, signup, leaderboard/podium, journal, admin,
profil) sont passées sur les nouveaux tokens/polices/vocabulaire.

README.md et CLAUDE.md : section "Ré-thématisation" remplacée par
"Direction artistique" documentant la palette, les polices et les
ornements ; toute mention du système de re-thème par édition retirée.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 13:13:54 +02:00