9.7 KiB
Design System - Sokko G
Ce document est la reference visuelle du projet Sokko G. Toute nouvelle interface doit rester coherente avec le theme Nebula Command actuel.
1. Vision
Sokko G est une webapp gaming locale, pensee pour rester ouverte sur un second ecran pendant une session. L'interface doit etre sombre, lisible, dense sans etre surchargee, et suffisamment immersive pour evoquer une ambiance nebuleuse premium.
Principes directeurs :
- priorite a la lisibilite pendant de longues sessions ;
- pas de style RGB agressif ;
- violet et indigo pour la profondeur et les interactions ;
- dore pour les accents de hierarchie, les eyebrows, les focus et certaines bordures ;
- cyan conserve comme token secondaire, mais non dominant ;
- les effets lumineux doivent rester contenus.
2. Tokens
Les tokens source sont dans website/src/styles/_tokens.scss. Ne pas dupliquer les couleurs dans les composants.
Couleurs principales :
--color-bg-page: #070913;
--color-bg-deep: #050711;
--color-bg-sidebar: #0b0e1b;
--color-bg-surface: #101426;
--color-bg-surface-alt: #151a30;
--color-bg-elevated: #1a2038;
--color-bg-hover: #202745;
--color-primary: #8b5cf6;
--color-primary-hover: #9f7aea;
--color-primary-active: #7347dc;
--color-primary-soft: rgba(139, 92, 246, 0.14);
--color-primary-border: rgba(139, 92, 246, 0.45);
--color-accent-gold: #f6c453;
--color-accent-cyan: #22d3ee;
--color-accent-pink: #d946ef;
--color-accent-indigo: #6366f1;
--color-text-primary: #f5f7ff;
--color-text-secondary: #b4bdd3;
--color-text-muted: #7d879f;
--color-border: rgba(150, 165, 205, 0.14);
--color-border-hover: rgba(150, 165, 205, 0.28);
Rayons :
--radius-sm: 6px--radius-md: 10px--radius-lg: 14px--radius-xl: 18px--radius-pill: 999px
Animations :
--duration-fast: 120ms--duration-normal: 180ms--ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1)
3. Fond Nebula
Le fond global est defini dans website/src/styles/_nebula.scss.
Regles :
- fond de page tres sombre avec nebuleuses violettes, indigo, rose et leger accent dore ;
- etoiles statiques, reparties de facon non alignee ;
- pas d'animation permanente de fond ;
- le contenu reste prioritaire sur l'ambiance.
Ne pas ajouter d'orbes decoratifs supplementaires. Si une section a besoin de profondeur, utiliser les fonds semi-transparents et les bordures existantes.
4. Typographie
Police principale :
font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
Regles :
- pas de letter-spacing negatif ;
- corps de texte entre 14 et 16 px ;
- titres de cartes/modules entre 15 et 18 px ;
- titres de page avec
clampdeja defini dans_home.scss; - paragraphs limites visuellement, pas de longs blocs sans respiration ;
- les
<i>doivent etre en italique, pas utilises comme gris decoratif.
5. Heroes
Les heroes de la page d'accueil et des pages jeux utilisent le meme style via .hero et .game-hero.
Caracteristiques :
- fond commun nebula sombre ;
- overlay sombre pour garder le texte lisible ;
- bordure gradient subtile dore/violet clair ;
border-radius: var(--radius-xl);box-shadow: var(--shadow-md);- pas de background inline sur les heroes de jeux.
Les pages jeux doivent heriter du hero commun. Si un jeu a une image, elle doit etre utilisee dans les cards ou les covers, pas comme remplacement complet du hero commun sauf decision explicite.
6. Cards
Les cards representent les elements repetes : toolboxes, jeux, categories, monstres, faune.
Style courant :
- fond sombre
rgba(16, 20, 38, 0.88); - bordure gradient fine, majoritairement doree avec une petite presence cyan ;
- support optionnel de
corner-shape: scoopquand le navigateur le supporte ; - pas de translation au hover pour les cards principales ;
- hover en violet/violet clair avec glow contenu.
La bordure haute/basse interne d'une cover doit rester doree quand elle separe une image du contenu.
Eviter les cards dans des cards. Les sections de page doivent rester des layouts ou panneaux, pas des empilements de cartes decoratives.
7. Modules Toolbox
Les modules sont des panneaux de travail, pas des cards classiques.
Style courant :
- fond semi-transparent
rgba(16, 20, 38, 0.42); - bordure neutre tres discrete ;
- accent dore leger en bas/droite ;
- hover violet/violet clair moins intense que les cards ;
- pas de mouvement au hover ;
- contenu interne au-dessus des pseudo-bordures via
z-index.
Le mot visible cote utilisateur est outil, pas module. Le terme module reste acceptable uniquement dans le code.
8. Boutons
Primary
Les boutons primary sont plus contrastes que les boutons standards.
Style :
- fond violet/indigo sombre ;
- bordure doree ;
- hover plus lumineux avec bordure doree plus nette ;
- glow violet/dore contenu ;
- pas de
brightness()global ; - pas de translation verticale.
Boutons standards
Hover :
- fond nebula plus lumineux ;
- bordure violet clair ;
- glow violet tres discret ;
- pas d'accent dore systematique.
Ghost
Hover minimal :
- leger fond violet transparent ;
- texte plus clair ;
- pas de glow.
Danger
Reserve aux actions destructrices.
- couleur rouge au repos ;
- hover rouge sombre, bordure rouge, texte/icones blancs ;
- confirmation en modale pour les actions irreversibles.
Boutons icones
Les icones utilisent currentColor via .ui-icon.
- taille habituelle : 20 px ;
- bouton : 40 x 40 px ;
- hover neutre : icone violet clair
#c4b5fd+ leger glow ; - hover danger : icone blanche + glow rouge discret ;
- utiliser les SVG de
website/public/static/icons.
9. Formulaires Et Checkbox
Inputs et textareas :
- fond sombre ;
- bordure fine ;
- focus dore via
:focus-visible; - placeholders en
--color-text-muted.
Checkbox :
- style custom global ;
- format carre strict ;
- fond non coche legerement eclaire ;
- bordure dore/violet ;
- etat coche avec gradient dore/violet et coche blanche ;
- spacing adapte dans les filtres.
10. Navigation
Sidebar :
- fond sombre, stable ;
- icones SVG pour Accueil, Toolboxes et Jeux ;
- navigation active en violet soft ;
- le logo controller garde le gradient de l'ancien badge et une rotation au hover.
Le nom de marque affiche Sokko en blanc et G en dore. Au hover, Sokko anime vers le dore de droite a gauche puis revient au hover out.
11. Filtres Et Tableaux
Filtres :
- chips compactes ;
- checkbox, icone puis texte ;
- spacing lisible : checkbox pas collee au bord, icone proche du texte ;
- reset avec bouton icone
rubber.
Tableaux :
- pas de scroll horizontal pour les tableaux de degats MHWilds ;
- cellules compactes ;
- bordures fines ;
- lisibilite prioritaire sur la decoration.
12. Toolboxes
Les toolboxes sont locales et stockees dans le navigateur.
Regles UI :
- pas de champ description ;
- image de jeu si associee a un jeu ;
- icone editable si toolbox libre ;
- action importer/exporter clairement identifiee ;
- quota localStorage visible en bas de page/panneau ;
- import/export global disponibles.
Les cards toolbox doivent garder une taille compacte. L'image/icone de cover est cliquable.
13. Donnees Jeux
Le contenu editorial editable doit rester dans :
website/public/data/site.jsonpour les textes generaux ;website/public/data/games.jsonpour la liste des jeux ;website/public/data/mhwilds/*.jsonpour les donnees MHWilds.
Les retours a la ligne \n du JSON doivent etre rendus correctement. Le JSX ne doit pas contenir de contenu editorial long si une entree JSON existe deja.
14. Modales Et Drawer
Modales :
- fond floute mais pas trop opaque ;
- panneau centre ;
- fermeture au clic exterieur quand l'action le permet ;
- boutons icones pour fermer/zoomer quand approprie.
Drawer toolbox :
- panneau lateral redimensionnable ;
- overlay floute leger ;
- les actions internes ne doivent pas fermer le drawer sauf action explicite.
15. Scrollbars
Les scrollbars reprennent l'ancien rendu :
::-webkit-scrollbar {
width: 6px;
height: 6px;
background-color: transparent;
}
::-webkit-scrollbar-track {
background-color: transparent;
box-shadow: none;
}
::-webkit-scrollbar-thumb {
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.5, rgb(79, 26, 114)),
color-stop(1, rgb(44, 1, 135))
);
border-radius: 10px;
}
Ne pas ajouter de rail noir visible ni de double bordure pres des panneaux.
16. Images Et Assets
Regles :
- les pages jeux et toolboxes associees utilisent les images de jeu en cover ;
- les images de jeu doivent etre rangees par jeu dans
website/public/static/img/games/<game-id>/; - utiliser
card-cover.pngpour les cards ethero-bg.pngpour le futur fond de hero ; - declarer ces images dans
games.jsonviaimages.cardCoveretimages.heroBg; - les toolboxes libres utilisent une icone de
website/public/static/img/toolbox-icons; toolbox.pngest l'icone par defaut ;- les categories de jeu utilisent des images representatives, entieres et bien cadrees ;
- eviter les images trop grandes dans les cards.
17. Accessibilite
Minimum attendu :
- focus visible dore ;
- boutons reels pour les actions ;
- liens reels pour la navigation ;
- labels explicites ou
aria-labelpour les boutons icones ; - contraste suffisant ;
- modales avec
role="dialog"etaria-modal="true"; - ne pas transmettre une information uniquement par couleur.
18. A Eviter
- accents dores partout ;
- hover trop lumineux sur tous les elements ;
- mouvements verticaux sur les cards/modules principaux ;
- background inline qui remplace le theme commun ;
- descriptions de toolbox ;
- alertes navigateur pour confirmations ou creation ;
- gros blocs explicatifs visibles dans l'app ;
- scroll horizontal sur les tableaux de donnees critiques.