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>
This commit is contained in:
+54
-15
@@ -1,40 +1,79 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
:root {
|
||||
--color-navy: #0f2748;
|
||||
--color-gold: #c9a227;
|
||||
--color-ivory: #f4ecd8;
|
||||
--color-ink: #2a2116;
|
||||
--ink: #0a1b33;
|
||||
--ink-2: #0f2748;
|
||||
--marble: #f4ecd8;
|
||||
--marble-2: #e9dec2;
|
||||
--gold: #c9a227;
|
||||
--gold-bright: #e7c560;
|
||||
--oxblood: #a5342a;
|
||||
--sea: #2e6e7e;
|
||||
--olive: #5e6b3b;
|
||||
--text-marble: #2a2116;
|
||||
--text-mut: #7a6a4c;
|
||||
|
||||
--background: var(--color-ivory);
|
||||
--foreground: var(--color-ink);
|
||||
--background: var(--ink);
|
||||
--foreground: var(--marble);
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--color-navy: var(--color-navy);
|
||||
--color-gold: var(--color-gold);
|
||||
--color-ivory: var(--color-ivory);
|
||||
--color-ink: var(--color-ink);
|
||||
--color-ink: var(--ink);
|
||||
--color-ink-2: var(--ink-2);
|
||||
--color-marble: var(--marble);
|
||||
--color-marble-2: var(--marble-2);
|
||||
--color-gold: var(--gold);
|
||||
--color-gold-bright: var(--gold-bright);
|
||||
--color-oxblood: var(--oxblood);
|
||||
--color-sea: var(--sea);
|
||||
--color-olive: var(--olive);
|
||||
--color-text-marble: var(--text-marble);
|
||||
--color-text-mut: var(--text-mut);
|
||||
--color-background: var(--background);
|
||||
--color-foreground: var(--foreground);
|
||||
--font-sans: var(--font-geist-sans);
|
||||
--font-mono: var(--font-geist-mono);
|
||||
|
||||
--font-heading: var(--font-cinzel);
|
||||
--font-serif: var(--font-cormorant);
|
||||
--font-sans: var(--font-manrope);
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--background);
|
||||
background:
|
||||
radial-gradient(ellipse 80% 50% at 20% -10%, color-mix(in srgb, var(--ink-2) 75%, transparent) 0%, transparent 60%),
|
||||
radial-gradient(ellipse 70% 60% at 100% 110%, color-mix(in srgb, var(--sea) 30%, transparent) 0%, transparent 65%),
|
||||
var(--ink);
|
||||
background-attachment: fixed;
|
||||
color: var(--foreground);
|
||||
font-family: var(--font-sans), Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
*:focus-visible {
|
||||
outline: 2px solid var(--color-gold);
|
||||
outline: 2px solid var(--gold-bright);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
/* Carte "marbre" : surface claire avec léger grain, bordure dorée fine. */
|
||||
.marble-surface {
|
||||
background:
|
||||
radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--marble-2) 65%, transparent) 0%, transparent 42%),
|
||||
radial-gradient(circle at 82% 88%, color-mix(in srgb, var(--marble-2) 55%, transparent) 0%, transparent 48%),
|
||||
linear-gradient(150deg, var(--marble) 0%, var(--marble) 55%, var(--marble-2) 100%);
|
||||
color: var(--text-marble);
|
||||
}
|
||||
|
||||
/* Frise à méandre (motif grec), séparateur horizontal discret. */
|
||||
.meander-divider {
|
||||
height: 10px;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='10' viewBox='0 0 32 10'%3E%3Cpath d='M0 8 H6 V2 H16 V8 H22 V2 H32' fill='none' stroke='%23C9A227' stroke-width='1.3'/%3E%3C/svg%3E");
|
||||
background-repeat: repeat-x;
|
||||
background-position: center;
|
||||
background-size: 32px 10px;
|
||||
opacity: 0.45;
|
||||
}
|
||||
|
||||
@keyframes points-flash {
|
||||
0% {
|
||||
background-color: color-mix(in srgb, var(--color-gold) 55%, transparent);
|
||||
background-color: color-mix(in srgb, var(--gold-bright) 55%, transparent);
|
||||
}
|
||||
100% {
|
||||
background-color: transparent;
|
||||
|
||||
Reference in New Issue
Block a user