ka-ui — design system commun Groupe KA
Identité « éditorial sharp » partagée par les 12 plateformes de l'écosystème
(groupe-ka, trouve-ka, lou-ka, immo-ka, vrai-prix, auto-ka, fabri-ka, food-ka,
resto-ka, sorti-ka, crea-ka, api-ka). Repo canonique : spbgit →
https://git.spboucher.ai/ka-ui (bare : M3U96a:~/srv/git/ka-ui.git).
Contenu
| Fichier | Rôle |
|---|---|
tokens.css |
Tokens + socle de composants communs (typo, grille, boutons, cartes, chips, champs, badge Groupe KA, footer, tableaux responsive). Seules les variables --accent* changent d'un site à l'autre. |
accents.css |
Palette de référence : le bloc :root de chaque marque. |
ecosystem.json |
Infos centralisées : raison sociale, courriels de contact + rôles, avertissement d'agrégateur, pages légales du hub, liste des 12 sites (domaine, wordmark, accent, tagline), liens additionnels du footer. |
react/KaFooter.tsx |
Footer commun (fond encre) consommant ecosystem.json. |
react/GroupeKaBadge.tsx |
Badge « Un service Groupe KA » cliquable → hub (header). |
sync.sh |
Redistribue les fichiers vendorés dans les 12 apps SUR LES NŒUDS. |
Principes
- Design system identique partout : papier
#f5f3ee, encre#141814, Space Grotesk (titres) / Inter (texte) / JetBrains Mono (étiquettes), bordures encre + ombres décalées, rayons 10/6 px, grain de film. - Un seul degré de liberté par site : l'accent (
--accent,--accent-soft,--accent-deep,--on-accent). Alias rétro-compat :--lime → var(--accent). - Breakpoints communs : 360 / 768 / 1024 / 1440 px, mobile-first, zones
tactiles ≥ 44 px, safe-areas iOS,
overflow-x: clipsur body. - Logo Groupe KA : wordmark typographique « Groupe KA » (KA sur puce encre,
teinté accent) — déclinaison claire (
.gk-badge) et sombre (.gk-badge--dark, footer encre). Toujours cliquable vers https://www.groupe-ka.com. Zone de protection : ≥ 8 px autour du badge, jamais moins haut que 30 px. - Titres SEO : « {Marque} — Un service Groupe KA ».
- KA ID : la connexion de chaque site passe par
/api/auth/ka/login(redirection versgroupe-ka.com/sso/authorize) ; la création de compte se fait sur le hub (groupe-ka.com/connexion). Registre des clients autorisés :groupe-ka/src/lib/sso.ts(+ secretsKA_SSO_SECRET_<CLIENT>dans le .env du hub).
Modifier les infos de contact (courriels, mentions, sites)
- Éditer
ecosystem.jsondans ce repo (une seule source de vérité). - Committer/pousser, puis exécuter
./sync.shdepuis le laptop : il rsynctokens.css+ecosystem.json(+ composants) dans le dossier vendoré de chaque app sur son nœud (frontend/src/ka/pour les apps Vite,src/ka/pour les apps Next). - Rebuilder chaque app touchée (
npm run builddu frontend) etpm2 restart <app>— voir~/Desktop/cluster-skill/KA-REMOTE-DEV.md.
Ajouter un futur site à l'écosystème
- Ajouter son entrée dans
ecosystem.json→sites[](id, wordmark, domaine, accent choisi dans une teinte libre de la roue, tagline) et son bloc dansaccents.css. - Dans la nouvelle app : importer
tokens.css, coller son bloc:rootd'accent, monterKaFooter+GroupeKaBadge, titre « {Marque} — Un service Groupe KA ». - KA ID : ajouter le client dans
groupe-ka/src/lib/sso.ts+ secretKA_SSO_SECRET_<CLIENT>dans le .env du hub ET de l'app ; implémenter/api/auth/ka/login|callback(modèle :creaka/auth.pypour FastAPI,vrai-prix/src/lib/ka-auth.tspour Next). ./sync.shajoutera le site aux footers des autres apps au prochain rebuild (la liste vient d'ecosystem.json).