Files
annu-kute-ced/doc2sveltekit-transition/charte-oki-design-system.md
T
sucupira d6efb6736f Réécriture SvelteKit statique (Svelte 5 runes + TS, adapter-static)
- Données PeerTube (GADE), Castopod (KUTE) et Mastodon (BOKANTE) bakées au
  build via +page.server.ts (throttle + retry 429 + déduplication)
- Charte OKI complÚte : tokens, thÚme sombre par défaut (clair opt-in,
  anti-FOUC), Archivo/Inter self-hébergées, flag-bar, sprite SVG (zéro emoji
  en interface, zéro Font Awesome/CDN)
- i18n FR/EN par routage [[locale]], bundles JSON, hreflang, %lang% serveur
- Pages : accueil, /video/[uuid] (embed, téléchargements, partage,
  commentaires, JSON-LD VideoObject), /categories/[id], /recherche (index
  JSON baké, recherche client), /direct (live + annonce multi-fuseaux),
  /dons, /mentions-legales, /offline + 404 krĂ©yĂČl
- Motion gwoka : KineticText (scrub view()), ScrollProgressBar, FlagChip,
  reveal syncopé, View Transitions, gate prefers-reduced-motion unique
- PWA : manifest + Workbox generateSW (fallback /offline/), registerSW
  statique
- Sécurité : CSP par page en <meta> (SHA-256 des inline via
  scripts/postbuild-csp.mjs) + headers globaux (_headers Cloudflare et
  .htaccess o2switch), redirections des anciennes URLs PHP
- Doc : docs/DEPLOIEMENT-SVELTEKIT.md
2026-07-23 00:49:02 -04:00

13 KiB
Raw Blame History

CHARTE OKI — DESIGN SYSTEM & HARMONISATION MULTI-PROJETS

ORGANISATION KA INTERNATIONALE · appliquer la recette SvelteKit avec la marque OKI

Nature de ce document : rĂ©fĂ©rence de marque opĂ©rationnelle, destinĂ©e aux humains et aux agents de code. Il consolide le BRAND.md existant (valeurs mesurĂ©es sur o-k-i.net, juillet 2026 — source canonique pour couleurs, typo, voix) et y ajoute les tokens prĂȘts Ă  l'emploi, les rĂšgles de motion, l'iconographie SVG, et la matrice d'application projet par projet. En cas de conflit : ce document prime sur la recette gĂ©nĂ©rique pour tout ce qui touche Ă  la marque ; la recette prime pour tout ce qui touche Ă  la mĂ©thode technique.


1. IDENTITÉ EN UNE PHRASE

Un studio web militant caribĂ©en dont la marque est un drapeau panafricain — noir, or, vert, rouge — posĂ© sur un fond presque noir, en capitales Archivo. La marque est afrofuturiste caribĂ©enne : un drapeau, pas une charte corporate.

Trois conséquences non négociables :

  1. Le thÚme sombre est l'identité par défaut ; le clair est une variante opt-in (html.light-theme) qui assombrit les accents pour rester WCAG AA.
  2. L'or porte toute l'interaction — c'est la seule couleur d'action.
  3. Angles nets partout — aucune forme organique, aucune bulle trùs arrondie.

2. TOKENS — PRÊTS À L'EMPLOI

2.1 Couleurs (mesurées sur le site réel)

:root {
  /* ── Noyau (thĂšme sombre = dĂ©faut) ── */
  --noir-oki:        #0D0D0D;  /* background */
  --noir-profond:    #1A0F1A;  /* surface */
  --blanc-creme:     #FFF8E7;  /* foreground */
  --line:            rgba(255, 255, 255, 0.10); /* filets — jamais de gris plein */
  --or-oki:          #FDB813;  /* accent : SEULE couleur d'action */
  --rouge-oki:       #FF1654;  /* signal, ponctuation — jamais un lien/bouton */
  /* ── Étendue (parcimonie : dĂ©corations et sĂ©mantique) ── */
  --vert-oki:        #00D66C;  /* succĂšs, validation, dons mensuels */
  --turquoise-caraibes: #00CED1;
  --jaune-soleil:    #FFD700;
  --orange-flamme:   #FF6B35;
  --violet-nuit:     #6B2D5C;
  --bleu-ocean:      #0077BE;
  --or-clair:        #FFE066;  /* survol des boutons */
  --gris-sombre:     #2D1B2E;
  /* ── SĂ©mantique dĂ©rivĂ©e ── */
  --muted:           color-mix(in srgb, var(--blanc-creme) 70%, transparent);
  --card-bg:         rgba(255, 255, 255, 0.03);
}

RÚgles d'usage (mesurées, à faire respecter) :

  • Texte secondaire = blanc crĂšme Ă  70–85 % d'opacitĂ©, pas une couleur dĂ©diĂ©e.
  • Filets = blanc Ă  10 %, jamais de gris plein.
  • Rouge = signaler · Vert = valider · Or = agir. Ne jamais permuter ces rĂŽles.

2.2 Typographie

:root {
  --font-display: 'Archivo', 'Arial Black', sans-serif;   /* 600–900, TITRES + BOUTONS */
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif; /* 400–800 */
}
  • Titres h1–h4 : Archivo, MAJUSCULES, letter-spacing: -0.01em.
  • Boutons : Archivo 700, uppercase, letter-spacing: 0.03em, bordure 2 px.
  • Corps : Inter, line-height: 1.5. Graisses minimales : 400 body / 600 display (lisibilitĂ© Ă©crans bas de gamme).
  • Self-hĂ©bergement obligatoire : woff2 dans fonts/ + fonts/fonts.css, font-display: swap. Aucun appel Google Fonts (contradiction avec la doctrine souverainetĂ© — bug en cours de correction sur o-k-i.net).

2.3 Formes, espacements, layout

:root {
  --radius-sm: 3px;   /* boutons, tags, badges */
  --radius-md: 6px;   /* cartes — jamais plus */
  --border-card: 1px solid var(--line);
  --border-btn:  2px solid var(--or-oki);
  --space-1: 0.75rem; --space-2: 1rem; --space-3: 1.5rem; --space-4: 2rem; --space-5: 4rem;
  --container: 1200px;
}
  • Sections : padding: var(--space-5) var(--space-4) · Grille : repeat(auto-fit, minmax(300px, 1fr)).
  • Carte OKI canonique : fond blanc 3 %, liserĂ© gauche 4 px d'accent (vert ou or), survol translateY(-2px Ă  -4px) + bordure d'accent.
  • Tag OKI canonique : fond or 8 % + bordure or 1 px, rayon 3 px.

2.4 La flag-bar — signature n°1

Bandeau 6 px, 4 segments francs : noir 0–25 % · or 25–50 % · vert 50–75 % · rouge 75–100 %. ArrĂȘts nets, jamais de dĂ©gradĂ©.

.flag-bar {
  height: 6px;
  background: linear-gradient(to right,
    var(--noir-oki) 0 25%, var(--or-oki) 25% 50%,
    var(--vert-oki) 50% 75%, var(--rouge-oki) 75% 100%);
}

Placement : bord infĂ©rieur de la navigation fixe ; peut ponctuer un hĂ©ros ou un pied de page. Une occurrence visible par Ă©cran maximum. C'est l'Ă©lĂ©ment le plus reconnaissable de la marque — le diluer, c'est le tuer.

2.5 Logotype

Monogramme « OKI » : arche or, point vert, accent rouge sur noir. Fichier canonique logos/favicon-1.png (512×512, transparent — aussi og:image et apple-touch-icon) ; dĂ©clinaisons logos/favicon-0.ico, assets/maskable_oki.png. Les logos/header-img-* sont des marques de partenaires (JoukawouvĂš, Aktivist Vybz, cyber-mawonaj, KA UBUNTU) : provenance conservĂ©e, ne jamais les utiliser comme logo OKI.


3. MOTION OKI — LES CADENCES GWOKA

La marque ne bouge pas comme une startup : elle pulse comme un ka. Tokens obligatoires dans tout projet OKI animé :

:root {
  --ease-ka:      cubic-bezier(0.22, 1, 0.36, 1);  /* temps fort : attaque franche, longue tenue */
  --ease-syncope: cubic-bezier(0.65, 0, 0.35, 1);  /* contretemps : symétrique, urgent */
  --dur-tanbou:   120ms;   /* double-croche — micro-interactions, hovers */
  --dur-mesure:   480ms;   /* une mesure — entrĂ©es de section */
  --dur-phrase:   960ms;   /* deux mesures — transitions de page */
}

RĂšgles de motion :

  1. Le stagger de marque OKI est syncopĂ© (3+3+2), pas linĂ©aire : dĂ©lais [0, 120, 300, 360, 600, 660, 900, 960] ms pour 8 Ă©lĂ©ments. C'est subtil — c'est le but : le rythme est une identitĂ©, pas un effet.
  2. Uniquement transform + opacity (recette P3/budgets).
  3. prefers-reduced-motion : gate unique au provider, contenu statique complet (le site actuel n'a aucune garde — à corriger partout).
  4. Durées toujours lues depuis les tokens, jamais hardcodées.

4. ICONOGRAPHIE — LA RÈGLE « ZÉRO EMOJI EN PRODUCTION »

Le site actuel utilise des emojis (âœŠđŸżđŸ”“đŸ€đŸżđŸ›Ąïž) : rendu dĂ©pendant de l'OS, incohĂ©rent avec la prĂ©cision du drapeau. Tout projet harmonisĂ© remplace les emojis par le set SVG OKI.

Spécifications du set :

  • ViewBox 24×24, stroke 2 px, angles nets (pas de courbes organiques), une seule couleur : currentColor (or par dĂ©faut sur noir).
  • Remplissage rĂ©servĂ© aux pictogrammes ≀ 16 px.
  • Grille de nommage en KA : les fichiers portent des noms krĂ©yĂČl.

Set initial Ă  produire (correspondances avec l'existant) :

Fichier Sujet Remplace / usage
ka.svg tambour ka icĂŽne maĂźtresse, 404, loader
lambi.svg conque lambi communication, annonces, « bĂČkaz »
zetwal.svg étoile 4 branches navigation, favoris, instances fédivers
mawon.svg silhouette/brisure de chaßne stylisée souveraineté, valeurs
lakanmou.svg flamme engagement, dons ponctuels
jaden.svg pousse/jardin solidarité, lakou, projets
kannen.svg canne à sucre stylisée patrimoine, histoire
lanme.svg vague ocĂ©an, liens internationaux, RĂ©union↔Gwada
glo.svg poing levĂ© gĂ©omĂ©trique ✊🏿 — luttes, tarifs solidaires
kle.svg clĂ©/cadenas ouvert 🔓 — libertĂ©, open-source
pawol.svg bulle de parole angulaire langues, traduction, PAWÒL-NU
mizik-note.svg note de musique MIZIK, DJANGOKAM

Chaque picto livrĂ© en <symbol> dans un sprite icons.svg + usage <svg><use href="icons.svg#ka"/></svg> (une seule requĂȘte, stylable en CSS).


5. VOIX & TON (canonique, reprise du BRAND.md)

Vouvoiement direct et empathique, phrases courtes. On parle d'abord de la cause du visiteur — « Vous luttez, vous organisez, vous mobilisez » — puis de l'outil. La technique sert la lutte, jamais l'inverse.

  • À dire : sur mesure · tarifs adaptĂ©s Ă  vos moyens · organisations engagĂ©es · transition numĂ©rique · Ă©cosystĂšme numĂ©rique libre · Ă  la hauteur.
  • À Ă©viter : « template gĂ©nĂ©rique », jargon corporate/marketing, « clĂ© en main », startup-speak.
  • Piliers : ORGANISATION KA · INTERNATIONALE · Des solutions pour chaque besoin · Le budget ne doit jamais ĂȘtre un frein.
  • Langues : FR par dĂ©faut ; le KA (krĂ©yĂČl) en signature, titres de sections symboliques et microcopy (404, loader, remerciements) ; EN en version dĂ©diĂ©e. Attribut lang correct Ă  chaque bascule.

6. IMAGERIE (canonique)

Illustration numérique afrofuturiste caribéenne : scÚnes au coucher de soleil, personnages caribéens, pochettes musicales typographiées. Couleurs chaudes saturées sur fonds sombres. Jamais de photo de banque d'images corporate, jamais d'illustration générique de startup, jamais d'icÎne ou de logo en guise d'image. Formats : AVIF/WebP, self-hébergés, loading="lazy" hors LCP.


7. MATRICE D'APPLICATION PAR PROJET

Harmoniser ≠ tout refaire : chaque plateforme a un canal de personnalisation officiel. N'UTILISER QUE ces canaux (jamais de fork pour du style).

Projet Logiciel Canal de theming Application OKI
o-k-i.net SvelteKit (migration en cours) Natif Référence absolue : tokens §2, flag-bar, village SVG, KineticText gwoka
BOKANTE Mastodon CSS personnalisé admin + custom.css Variables Mastodon remappées sur tokens OKI : fond --noir-oki, accent --or-oki, boutons Archivo uppercase ; logo colonne = monogramme OKI ; flag-bar en haut de la colonne de composition
GADE PeerTube ThĂšme CSS admin (champ « CSS personnalisĂ© ») MĂȘmes remappages ; player : contrĂŽles or sur noir ; page À-propos = texte marque (« vidĂ©os sans algorithme, dĂ©diĂ©es aux cultures afro-diasporiques »)
NIYAJ Nextcloud App Theming officielle Couleur primaire #FDB813, fond sombre, logo + slogan « Votre cloud, vos données » ; favicon OKI
MIZIK Funkwhale custom.css admin Fond --noir-oki, accents or, player accentué or ; typographie : Inter si surchargeable, sinon systÚme
KUTE App PHP maison Natif Appliquer les tokens §2 en entier — c'est un projet first-party, aucune excuse de ne pas ĂȘtre au niveau d'o-k-i.net
LABOLA Forgejo/Gitea custom/templates + custom/public/css ThĂšme sombre OKI, accent or ; logo forge = monogramme ; ne pas toucher aux templates Go au-delĂ  du header/footer (fragile aux upgrades)
PAWÒL-NU / djangokam.pawol.nu / nyyoka.pawol.nu Selon stack Natif Charte complĂšte + libertĂ© artistique accrue (pochettes, kinetic type poussĂ©) : c'est la vitrine culturelle, le motion peut y ĂȘtre plus riche qu'ailleurs
fediverse.o-k-i.net Statique Natif Constellation zétwal : chaque instance = étoile SVG reliée, hover/focus = éclat or + label ; DOM/SVG léger uniquement
[monogramme OKI] Un service libre opéré par ORGANISATION KA INTERNATIONALE · o-k-i.net
  • flag-bar 6 px au-dessus du footer. Une seule ligne, --muted, lien or. C'est le fil rouge qui fait l'Ă©cosystĂšme.

RĂšgles cross-projets

  1. Un domaine, une famille : *.o-k-i.net = écosystÚme fédivers et outils ; pawol.nu = projets culturels/musicaux. Ne pas mélanger.
  2. Chaque service porte un nom KA + le nom du logiciel en sous-titre (pattern existant : « BOKANTE — Mastodon », « NIYAJ — Nextcloud »). Ne jamais masquer le logiciel sous-jacent : la transparence est un pilier.
  3. Favicon = monogramme OKI partout (déclinaisons ico/png/maskable).
  4. og:image par service : monogramme sur --noir-oki + nom du service en Archivo or.
  5. Toute nouvelle page statique du réseau démarre du template o-k-i.net (tokens inclus), jamais de zéro.

8. CHECKLIST D'HARMONISATION D'UN PROJET (DoD marque)

  • ThĂšme sombre par dĂ©faut, clair opt-in contrastĂ© AA.
  • Tokens §2 importĂ©s (pas de valeur recopiĂ©e Ă  la main — un fichier oki-tokens.css partagĂ©).
  • Or = seule couleur d'action ; rouge/vert dans leurs rĂŽles sĂ©mantiques.
  • Archivo/Inter self-hĂ©bergĂ©es, zĂ©ro fonte externe.
  • Flag-bar prĂ©sente, segments francs, ≀ 1 par Ă©cran.
  • ZĂ©ro emoji en interface (set SVG §4).
  • Tokens motion §3 + gate prefers-reduced-motion.
  • Footer fĂ©dĂ©rĂ© + monogramme + favicon OKI.
  • Voix conforme §5 (test : aucune occurrence de « clĂ© en main », « solution innovante », « disruptive »).
  • ZĂ©ro requĂȘte tierce au chargement (fonts, CDN, analytics) — vĂ©rifiĂ© onglet rĂ©seau.
  • Nom KA + logiciel en sous-titre visible en page d'accueil du service.